banana-image-mcp
v1.1.0
Published
An MCP server for generating blog cover images using Google Gemini AI, with WebP conversion and Qiniu CDN upload
Downloads
39
Maintainers
Readme
banana-image-mcp
An MCP (Model Context Protocol) server for image generation, processing, and CDN upload. Powered by Google Gemini AI, Sharp, and Qiniu Cloud.
Features
- Generate images from text prompts using Google Gemini AI
- Upload local or remote images to Qiniu CDN
- Automatic conversion to WebP format with compression
- Date-prefixed filenames with customizable upload paths
- Temporary files are cleaned up automatically
Quick Start
Using npx (recommended)
No installation needed — configure directly in your MCP client:
{
"mcpServers": {
"banana-image": {
"command": "npx",
"args": ["-y", "banana-image-mcp"],
"env": {
"GEMINI_API_KEY": "your-gemini-api-key",
"QINIU_ACCESS_KEY": "your-qiniu-access-key",
"QINIU_SECRET_KEY": "your-qiniu-secret-key",
"QINIU_BUCKET": "your-bucket-name",
"QINIU_CDN_DOMAIN": "https://your-cdn-domain.com"
}
}
}
}Global installation
npm install -g banana-image-mcpThen configure in your MCP client:
{
"mcpServers": {
"banana-image": {
"command": "banana-image-mcp",
"env": {
"GEMINI_API_KEY": "your-gemini-api-key",
"QINIU_ACCESS_KEY": "your-qiniu-access-key",
"QINIU_SECRET_KEY": "your-qiniu-secret-key",
"QINIU_BUCKET": "your-bucket-name",
"QINIU_CDN_DOMAIN": "https://your-cdn-domain.com"
}
}
}
}Upgrade
# npx users: just clear the cache to get the latest version
npx clear-npx-cache && npx -y banana-image-mcp
# Global installation users
npm update -g banana-image-mcpConfiguration file location
- Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.json - Claude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.json
Environment Variables
| Variable | Description |
|---|---|
| GEMINI_API_KEY | Google Gemini API key for image generation |
| QINIU_ACCESS_KEY | Qiniu cloud access key |
| QINIU_SECRET_KEY | Qiniu cloud secret key |
| QINIU_BUCKET | Qiniu storage bucket name |
| QINIU_CDN_DOMAIN | CDN domain for generated image URLs |
Getting API Keys
Google Gemini API Key:
- Visit Google AI Studio
- Create or get an API key
Qiniu Cloud:
- Register at Qiniu Cloud
- Create a storage bucket
- Get AccessKey and SecretKey from your account settings
- Configure a CDN domain
Tools
generate_blog_cover
Generate a blog cover image (1792x1024), convert to WebP, and upload to Qiniu CDN.
| Parameter | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Text prompt describing the image to generate |
| slug | string | Yes | Slug identifier for the filename (prefixed with date) |
| path | string | No | Upload directory path (default: blog-cover) |
Returns:
{
"url": "https://your-cdn-domain.com/blog-cover/20260321-my-post.webp"
}generate_image
Generate an image using Gemini AI (original size), convert to WebP, and upload to Qiniu CDN.
| Parameter | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Text prompt describing the image to generate |
| slug | string | Yes | Slug identifier for the filename (prefixed with date) |
| path | string | No | Upload directory path (default: aigc/image) |
Returns:
{
"url": "https://your-cdn-domain.com/aigc/image/20260321-my-image.webp"
}upload_image
Upload a local file or remote URL image to Qiniu CDN, with automatic WebP conversion.
| Parameter | Type | Required | Description |
|---|---|---|---|
| source | string | Yes | Local file path or HTTP/HTTPS URL of the image |
| slug | string | Yes | Slug identifier for the filename (prefixed with date) |
| path | string | No | Upload directory path (default: images) |
Returns:
{
"url": "https://your-cdn-domain.com/images/20260321-my-photo.webp"
}Architecture
prompt → Google Gemini API (PNG) → Sharp (WebP) → Qiniu CDN → URL
source (local/remote) ─────────→ Sharp (WebP) → Qiniu CDN → URL- Image generation: Google Gemini 3.1 Flash Image Preview
- Image processing: Sharp (WebP conversion, optional resize)
- Cloud storage: Qiniu CDN
License
MIT
