Skip to main content
Glama

NanoBanana MCP

npm MCP Gemini License

MCP server that brings Gemini's image generation and editing capabilities to Claude Desktop, Claude Code, and Cursor. Supports Nano Banana 2 (Flash) and Nano Banana Pro models.

Features

  • Image Generation - Create 2K images from text prompts

  • Image Editing - Transform images with natural language instructions

  • Session Consistency - Maintain style/character across generations

  • Runtime Model Switching - Switch between Flash and Pro models without restart

  • Multi-turn Chat - Conversational context with image support

Related MCP server: nb-mcp

Quick Start

Prerequisites

Add to Claude Code

claude mcp add nanobanana-mcp -- npx -y @ycse/nanobanana-mcp \
  -e "GOOGLE_AI_API_KEY=your_api_key"

Add to Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "nanobanana-mcp": {
      "command": "npx",
      "args": ["-y", "@ycse/nanobanana-mcp"],
      "env": {
        "GOOGLE_AI_API_KEY": "your_api_key"
      }
    }
  }
}

Add to Cursor

Create or edit .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "nanobanana-mcp": {
      "command": "npx",
      "args": ["-y", "@ycse/nanobanana-mcp"],
      "env": {
        "GOOGLE_AI_API_KEY": "your_api_key"
      }
    }
  }
}

See Cursor MCP Documentation for more details.

Tools

Tool

Purpose

set_aspect_ratio

Required. Set aspect ratio before image generation

set_model

Switch between flash/pro models at runtime

gemini_generate_image

Generate images from text prompts

gemini_edit_image

Edit images with natural language

gemini_chat

Multi-turn conversation with images

get_image_history

View session image history

clear_conversation

Reset session context

set_aspect_ratio (Required)

Must be called before generating or editing images.

Valid ratios: 1:1, 9:16, 16:9, 3:4, 4:3, 3:2, 2:3, 5:4, 4:5, 21:9

set_model

Switch models per-session without restarting:

Value

Model

Description

flash

gemini-3.1-flash-image-preview

Nano Banana 2 - Faster (default)

pro

gemini-3-pro-image-preview

Nano Banana Pro - Higher quality

gemini_generate_image

{
  prompt: string;              // Image description
  aspect_ratio?: string;       // Override session ratio
  output_path?: string;        // Save path (default: ~/Documents/nanobanana_generated/)
  conversation_id?: string;    // Session ID
  use_image_history?: boolean; // Use previous images for consistency
  reference_images?: string[]; // Reference images for style
}

gemini_edit_image

{
  image_path: string;          // File path, "last", or "history:N"
  edit_prompt: string;         // Edit instructions
  aspect_ratio?: string;       // Override session ratio
  output_path?: string;        // Save path
  conversation_id?: string;    // Session ID
  reference_images?: string[]; // Style references
}

Slash Commands

Claude Code

npx @ycse/nanobanana-mcp --install-commands claude-code
# Or manually:
# mkdir -p ~/.claude/commands
# cp commands/claude-code/*.md ~/.claude/commands/

Cursor

npx @ycse/nanobanana-mcp --install-commands cursor
# Or manually:
# mkdir -p .cursor/commands
# cp commands/cursor/*.md .cursor/commands/

See Cursor Slash Commands for more details.

Available Commands

/nb-flash  - Switch to Flash model (faster)
/nb-pro    - Switch to Pro model (higher quality)

Usage Examples

Basic Generation

1. Set aspect ratio: set_aspect_ratio("16:9")
2. Generate: "A cyberpunk cityscape at sunset"

Character Consistency

// First image
{ prompt: "A red-hat cat", conversation_id: "cat" }

// Second image - same character
{ prompt: "The cat taking a nap", conversation_id: "cat", use_image_history: true }

Edit with History Reference

// Edit the last generated image
{ image_path: "last", edit_prompt: "Change hat to blue" }

// Edit specific image from history
{ image_path: "history:0", edit_prompt: "Add sunglasses" }

Switch Models Mid-Session

// Start with Flash for quick iterations
set_model({ model: "flash" })
{ prompt: "Draft concept art" }

// Switch to Pro for final render
set_model({ model: "pro" })
{ prompt: "Final polished version", use_image_history: true }

Configuration

Environment Variables

Variable

Required

Description

GOOGLE_AI_API_KEY

Yes

Google AI API key

NANOBANANA_MODEL

No

Default model (gemini-3.1-flash-image-preview or gemini-3-pro-image-preview)

Output Location

Generated images save to ~/Documents/nanobanana_generated/:

  • Generated: generated_[timestamp].png

  • Edited: [original]_edited_[timestamp].png

Development

git clone https://github.com/YCSE/nanobanana-mcp.git
cd nanobanana-mcp
npm install
npm run dev      # Development mode with hot reload
npm run build    # Production build
npm run start    # Run compiled server

Troubleshooting

Image generation fails:

  • Verify API key is valid

  • Check quota at Google AI Studio

  • Ensure set_aspect_ratio was called first

Tools not showing:

  1. Restart Claude Desktop/Code

  2. Check config file syntax

  3. Verify npx -y @ycse/nanobanana-mcp runs without errors

License

MIT

Available Tools

7 tools
clear_conversationB

Clear conversation history for a specific conversation ID

ParametersJSON Schema
NameRequiredDescriptionDefault
conversation_idYesThe conversation ID to clear

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a destructive action ('clear') but does not state whether the operation is irreversible, affects persistent storage, requires specific permissions, or what the outcome will be. This is a significant gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the action and object directly. Every word adds value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description still omits critical behavioral context such as permanence of deletion, side effects on active chat sessions, or whether any confirmation is required. The lack of annotations and output schema places the burden on the description, which does not meet it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, as the only parameter (conversation_id) is described as 'The conversation ID to clear'. The tool description adds no additional semantic detail beyond referencing 'a specific conversation ID', which matches the schema. Thus the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Clear') and the resource ('conversation history') with a specific scope ('for a specific conversation ID'). It is unambiguous and distinguishes itself from sibling tools, which handle image generation, chat, and model settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (call this when you need to clear a conversation's history) but provides no explicit guidance on when to use it versus alternatives or any exclusions. Since no sibling performs a similar function, explicit alternative guidance is not necessary, but the description still lacks any context about prerequisites or suitability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gemini_chatA

Chat with Gemini 3.1 Flash model. Supports multi-turn conversations with up to 10 reference images.

ParametersJSON Schema
NameRequiredDescriptionDefault
imagesNoArray of image paths to include in the chat (max 10). Supports file paths, 'last', or 'history:N' references.
messageYesThe message to send to Gemini
system_promptNoOptional system prompt to guide the model's behavior
conversation_idNoOptional conversation ID for maintaining context and accessing image history

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses multi-turn support and image limit, but omits return format, authentication/rate limits, and side effects. For an external API call, this is a partial disclosure; not misleading but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that immediately identifies the action and resource. It adds two key capabilities without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so the description should clarify what the tool returns (e.g., text response), but it does not. It also lacks practical guidance on using conversation_id for multi-turn beyond the schema, leaving gaps for a 4-parameter tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline 3. The description adds context like 'multi-turn' (relating to conversation_id) and 'reference images,' but these are largely redundant with the schema's own parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Chat with Gemini 3.1 Flash model.' It uses a specific verb and resource, and the mention of multi-turn and reference images distinguishes it from sibling image generation/editing and conversation management tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: this is the chat tool. However, there is no explicit guidance on when to use it versus siblings like clear_conversation or set_model, nor prerequisites for multi-turn (e.g., conversation_id). The description implies but does not instruct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gemini_edit_imageB

Edit or modify existing images based on prompts. Supports session history references ('last' or 'history:N') and image consistency features.

ParametersJSON Schema
NameRequiredDescriptionDefault
image_pathYesPath to the original image. Use 'last' for most recent generated image, or 'history:N' (e.g., 'history:0') to reference by index
edit_promptYesInstructions for how to edit the image
output_pathNoOptional output path. If not provided, saves to ~/Documents/nanobanana_generated/
aspect_ratioNoAspect ratio for the edited image. Overrides session setting if provided.
conversation_idNoSession ID for accessing image history and maintaining consistency
reference_imagesNoAdditional reference images for style consistency (max 10). Supports file paths, 'last', or 'history:N' references.
enable_google_searchNoEnable Google Search for real-world reference grounding

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing behavioral traits. It mentions session history references and 'image consistency features,' but doesn't explain what the tool returns, whether the original image is modified or a new file is created, or any side effects like default save location (which appears only in the schema). This is insufficient for a tool that modifies files.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is just two sentences, front-loaded with the core purpose and followed by a useful capability note. There is no wasted wording, and it avoids repeating schema details. It's concise and directly readable, though the phrase 'image consistency features' is slightly vague but not excessive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters) and absence of an output schema, the description should explain return values and behavioral outcomes, but it doesn't. It also leaves 'image consistency features' undefined, forcing the agent to infer from the schema. Missing information about default output behavior and effects on the original image makes the description incomplete for safe autonomous use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameter meanings are already documented. The description's mention of history references and consistency adds no new information beyond the schema's detailed parameter descriptions. Baseline 3 is appropriate because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's purpose: 'Edit or modify existing images based on prompts.' The verb 'edit/modify' plus the resource 'existing images' distinguishes it from sibling gemini_generate_image, which creates new images. It also mentions key capabilities like history references, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage—edit existing images when you have a prompt—but provides no explicit guidance on when to use this tool versus alternatives like gemini_generate_image or gemini_chat. It doesn't state exclusions or name alternative tools for different scenarios, so guidance is only implied, not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gemini_generate_imageB

Generate images using Gemini's image generation capabilities. Supports session-based image consistency for maintaining style/character across multiple generations.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDescription of the image to generate
output_pathNoOptional path where to save the generated image. If not provided, saves to ~/Documents/nanobanana_generated/
aspect_ratioNoAspect ratio for the generated image. Overrides session setting if provided.
conversation_idNoSession ID for maintaining image history and consistency across generations
reference_imagesNoArray of file paths to reference images for style/character consistency
use_image_historyNoIf true, includes previous generated images from this session for style/character consistency
enable_google_searchNoEnable Google Search for real-world reference grounding

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of disclosing side effects and behaviors. It fails to mention that the tool saves images to disk (defaulting to ~/Documents/nanobanana_generated/), any network/API usage, authentication requirements, or return values. It only mentions session-based consistency, which is a feature but not a behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences that front-load the core purpose. Every word adds value, and there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite a 7-parameter schema and no output schema, the description does not explain the tool's overall behavior (e.g., where the generated image goes, what the tool returns, or how the session mechanism operates). The session consistency mention is a start, but the description is too sparse for the complexity involved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all seven parameters are already documented in the schema. The description adds no new parameter-level semantics beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates images via Gemini, and mentions a key differentiator (session-based image consistency) that distinguishes it from siblings like gemini_chat or gemini_edit_image. The verb and resource are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for generating new images and optionally using session consistency, but it does not explicitly address when to use this tool versus alternatives like gemini_edit_image or gemini_chat. No exclusion criteria or alternative recommendations are given, so usage guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_image_historyA

Get the list of generated/edited images in a session for reference

ParametersJSON Schema
NameRequiredDescriptionDefault
conversation_idYesThe session ID to get image history for

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of behavioral disclosure. It states the tool retrieves a list ('Get the list'), which suggests a read-only operation, but it does not explicitly confirm it has no side effects, or describe output details or limitations. The behavior is basic but adequately conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It communicates the essential purpose in eleven words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description provides enough information: it tells the user what the tool returns (a list of images) and the scope (session). No significant gaps are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes the only parameter (conversation_id), and the description does not add any new details about format or semantics beyond confirming it is session-based. With 100% schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' and the resource 'list of generated/edited images in a session'. This clearly distinguishes it from sibling tools like gemini_generate_image or gemini_edit_image.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for reference' implies a use case of retrieving past images, but it does not explicitly state when to prefer this tool over others or mention alternatives/exclusions. The usage context is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_aspect_ratioA

Set the aspect ratio for subsequent image generation and editing in this session. Must be called before generating/editing images if a specific ratio is desired.

ParametersJSON Schema
NameRequiredDescriptionDefault
aspect_ratioYesThe aspect ratio to use for image generation/editing
conversation_idNoSession ID to apply this setting to (default: 'default')

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the session-scoped effect and the ordering requirement, but does not clarify behavior like overriding previous settings, persistence across sessions, or the relationship between 'session' and the conversation_id parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the verb and key resource, followed immediately by the usage rule. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter tool with a fully described schema, the description covers core purpose and usage timing. Minor ambiguity exists around 'session' vs conversation_id and default ratio behavior, but overall it is sufficiently complete for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: both parameters have descriptions, and aspect_ratio has a detailed enum. The description adds no additional parameter semantics, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Set the aspect ratio for subsequent image generation and editing in this session.' It uses a specific verb and resource, and distinguishes itself from sibling tools like set_model and the actual image generation/editing tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is given: 'Must be called before generating/editing images if a specific ratio is desired.' This states when to use the tool and the condition under which it applies, though it does not mention alternatives or explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_modelA

Set the Gemini model for this session. 'flash' for faster generation (default), 'pro' for higher quality.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesModel to use: 'flash' (gemini-3.1-flash-image-preview) or 'pro' (gemini-3-pro-image-preview)
conversation_idNoSession ID to apply this setting to (default: 'default')

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the behavioral disclosure burden. It states the action ('set') but omits any side effects, persistence, session scope semantics, or whether changing the model affects existing conversations. The word 'session' hints at scope but lacks explicit detail, leaving the agent to infer the behavioral contract.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. The first sentence immediately identifies the action and scope; the second adds necessary selection guidance. No words are wasted, and the structure is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter tool with full schema coverage, the description is mostly adequate. However, it lacks any mention of return value or confirmation, and without annotations it does not address persistence or side effects. Given the low complexity, this is a moderate gap; the description is complete enough to use but not fully self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter semantics are already well-documented. The description adds value by clarifying the trade-off between 'flash' and 'pro' (speed vs. quality), which supplements the schema's enum descriptions. However, it does not mention the conversation_id parameter or its default, but since the schema covers that and the description's 'for this session' hints at it, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Set') and resource ('the Gemini model for this session'), making the tool's purpose immediately obvious. It distinguishes itself from sibling tools like gemini_chat or gemini_generate_image by focusing on session-level configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to choose each model value: 'flash' for faster generation and 'pro' for higher quality, which is directly actionable for the primary parameter. However, it does not explicitly mention alternatives like set_aspect_ratio or when not to use this tool, though that context is somewhat implied by the sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv1.1.1
    • First observedclear_conversation
    • First observedgemini_chat
    • First observedgemini_edit_image
    • First observedgemini_generate_image
    • First observedget_image_history
    • First observedset_aspect_ratio
    • First observedset_model

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: retrieving history, chatting, generating images, editing images, clearing conversation, and setting session parameters. There is no functional overlap between generate and edit, and chat is text-focused while image tools are visual. Even the history and clear tools are unambiguous (images vs. conversation).

Naming Consistency3/5

Most tools follow a verb_noun pattern (get_image_history, clear_conversation, set_aspect_ratio, set_model), but three tools are prefixed with 'gemini_' (gemini_chat, gemini_generate_image, gemini_edit_image), creating an inconsistency in form. The verbs are clear, but the prefix usage is not uniform, and 'gemini_chat' reads more as a noun phrase than a verb_noun command.

Tool Count5/5

Seven tools is a well-scoped count for a server focused on image generation/editing and session management. Each tool serves a necessary function without redundancy or bloat, fitting comfortably within the ideal 3-15 range.

Completeness4/5

The surface covers the main lifecycle for image work: generate (create), edit (update), view history (read), and session management. The only minor gap is the lack of an explicit delete/image removal tool and no way to view conversation history outside of image history, but these are workarounds in most use cases.

Maintenance

ActivityInactive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers