KOF Nano Banana MCP Server
# KOF Nano Banana MCP Server π
MCP server for Gemini native image generation (Nano Banana). Part of the [KeepOnFirst Agentic Workflow](https://github.com/keeponfirst/keeponfirst-agentic-workflow-starter).
English | [ηΉι«δΈζ](README_zh-TW.md)
## β οΈ Important: Billing Required
**Note: The Gemini API Free Tier does NOT support image generation models.**
To use this MCP server, you must provide an API key from a Google Cloud project with billing enabled.
## Features
- **Generate images** using Gemini 2.5 Flash Image or Gemini 3 Pro Image
- **Process queue** of prompt files with validation and dry-run support
- **YAML frontmatter** support for prompt configuration
- **Cross-IDE compatible** - works with any MCP-enabled client
## β Support this project
If this project helps you, you can support development here:
<a href="https://www.buymeacoffee.com/keeponfirst" target="_blank">
<img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" height="45" />
</a>
## Installation
### Option 1: Use via npx (Recommended)
If you have published this package or use it locally:
```json
{
"mcpServers": {
"nanobanana": {
"command": "npx",
"args": ["-y", "@keeponfirst/kof-nanobanana-mcp"],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}
```
### Option 2: Local Development
```bash
cd kof-nanobanana-mcp
npm install
npm run build
```
Then configure absolute path in your MCP config (see Configuration section).
## Configuration
### 1. Get a Gemini API Key
1. Go to [Google AI Studio](https://aistudio.google.com/apikey)
2. Create an API key
3. **IMPORTANT**: Ensure your project has billing enabled. These models are paid-only.
### 2. Add to MCP Config
Add to your MCP configuration file (e.g., `~/.gemini/antigravity/mcp_config.json`):
```json
{
"servers": {
"nanobanana": {
"command": "node",
"args": ["/path/to/kof-nanobanana-mcp/dist/index.js"],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}
```
## Tools
### `nanobanana_generate_image`
Generate a single image.
**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `prompt` | string | β
| Image description (10-5000 chars) |
| `output_path` | string | β
| Path to save the image |
| `model` | string | β | `gemini-2.5-flash-image` (default) or `gemini-3-pro-image-preview` |
| `aspect_ratio` | string | β | `1:1`, `16:9`, `9:16`, `4:3`, `3:4` |
| `overwrite` | boolean | β | Overwrite existing file (default: false) |
**Example:**
```json
{
"prompt": "A modern flat illustration of three AI robots working together on code",
"output_path": "assets/generated/workflow-hero.png",
"model": "gemini-2.5-flash-image",
"aspect_ratio": "16:9"
}
```
### `nanobanana_list_queue`
List and validate prompt files in the queue.
**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `queue_dir` | string | β | Queue directory (default: `nanobanana/queue`) |
| `validate` | boolean | β | Validate files (default: true) |
| `check_conflicts` | boolean | β | Check if outputs exist (default: true) |
### `nanobanana_process_queue`
Batch process all prompt files.
**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `queue_dir` | string | β | Queue directory (default: `nanobanana/queue`) |
| `validate_only` | boolean | β | Only validate, no generation |
| `dry_run` | boolean | β | Preview without API calls |
| `overwrite` | string | β | `skip`, `overwrite`, or `rename` |
## Prompt File Format
Create `.md` files in `nanobanana/queue/` with YAML frontmatter:
```markdown
---
output_path: assets/generated/workflow-hero.png
model: gemini-2.5-flash-image
aspect_ratio: 16:9
overwrite: false
---
# Workflow Hero Image
Create a modern, sleek hero illustration showing three AI agents
working together in a software development workflow.
## Style Guidelines
- Style: Flat illustration with gradients
- Color palette: Deep purple (#6B46C1) to blue (#3B82F6)
- Background: Subtle gradient
```
## Pricing Reference
| Model | Price per Image |
|-------|-----------------|
| Gemini 2.5 Flash Image | ~$0.039 (1024x1024) |
| Gemini 3 Pro Image (2K) | ~$0.134 |
| Gemini 3 Pro Image (4K) | ~$0.24 |
## License
MIT
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose with no overlap: generate_image creates individual images, list_queue inspects pending files, and process_queue batch processes the queue. The descriptions reinforce these separate functions, making misselection unlikely.
All tools follow a perfect verb_noun pattern with the 'nanobanana_' prefix: generate_image, list_queue, process_queue. This consistent naming convention makes the tool set predictable and easy to understand.
Three tools is ideal for this server's focused scope of image generation queue management. Each tool earns its place by covering distinct aspects of the workflow: single generation, queue inspection, and batch processing.
The tool set covers the core image generation workflow well with generation, inspection, and processing capabilities. A minor gap exists in not providing tools for managing completed images or modifying queue entries, but agents can work around this with file system operations.