Nano Banana MCP Server
The Nano Banana MCP Server provides AI agents with access to the Nano Banana image generation model line on RunAPI, enabling image creation, editing, task management, and pricing lookups.
text_to_image– Generate images usingnano-banana,nano-banana-2, ornano-banana-pro, with control over aspect ratio (including ultra-wide formats like1:4,8:1), output format (png,jpeg,jpg), and output resolution (1k,2k,4k).edit_image– Submit image editing tasks using thenano-banana-editmodel, with options for aspect ratio and output format.get_task– Fetch the current status and result payload (including output URLs) for an existing task by providing its task ID and action type.check_pricing– Look up the current pricing snapshot for any Nano Banana model and endpoint — no API key required.Flexible execution: Both creation tools support a
waitparameter to either poll until completion or return immediately with a task ID for later retrieval, with configurabletimeout_msandpoll_interval_ms. Creating and polling tasks requires aRUNAPI_API_KEY.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Nano Banana MCP Servergenerate a text-to-image of a dragon"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Why This Package?
@runapi.ai/nano-banana-mcp is a focused Model Context Protocol server for the Nano Banana model line on RunAPI.
It gives MCP-compatible assistants direct access to 2 endpoints and 5 model variants without loading the full RunAPI catalog.
Use this per-model server when an agent should stay scoped to Nano Banana. Use @runapi.ai/mcp when one assistant should discover every RunAPI model line.
Related MCP server: GPT Image MCP Server
Install
Add it to Claude Code:
claude mcp add nano-banana -s user -- npx -y @runapi.ai/nano-banana-mcpUse project scope when the server should be shared with a repository:
claude mcp add nano-banana -s project -- npx -y @runapi.ai/nano-banana-mcpCodex, Cursor, Windsurf, VS Code, Roo Code, and other MCP hosts can use the same stdio command:
{
"mcpServers": {
"nano-banana": {
"command": "npx",
"args": ["-y", "@runapi.ai/nano-banana-mcp"]
}
}
}check_pricing works before sign-in. For task creation and status polling, ask your assistant to call the login tool. It opens a browser login and saves credentials to ~/.config/runapi/config.json, the same file used by runapi login.
Headless and CI hosts can still set RUNAPI_API_KEY before starting the MCP host.
Ready-made examples are in examples/ for Claude, Cursor, Windsurf, VS Code, and Roo Code.
Tools
Tool | Auth | Purpose |
| Yes | Create a Nano Banana edit image task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Create a Nano Banana text to image task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Fetch the current status and latest payload for an existing task. |
| No | Look up current pricing for a Nano Banana model and endpoint. |
Models
Nano Banana covers 5 model variants across 2 endpoints. Each tool accepts the models listed for it:
Tool | Models |
|
|
|
|
Model availability can change between releases. Use check_pricing or the Nano Banana model page for the current catalog view.
Agent Prompts
Ask your assistant in natural language; it can inspect pricing, create the task, and return the task id plus output URLs.
Create a task
Run a Nano Banana edit image task with RunAPI.The assistant can call check_pricing, then edit_image, and return the task id, status, and output URLs.
Submit without waiting
Create the task but don't wait for it to finish.The assistant calls the create tool with wait: false and returns the task id. Check on it later with get_task.
Check pricing before creating
Check current Nano Banana pricing, then create the task if it matches my request.The assistant calls check_pricing and can link to the Nano Banana model page for the canonical catalog entry.
Configuration
The server resolves auth in this order:
RUNAPI_API_KEYenvironment variable, useful for headless and CI hosts~/.config/runapi/config.json, created by the MCPlogintool orrunapi loginNo key, which still allows
check_pricing
The config file is normally managed by login. A pre-provisioned headless config can use:
{
"apiKey": "your_runapi_key"
}Do not commit real API keys.
Links
Resource | URL |
Nano Banana model page | |
npm package | |
GitHub repository | |
RunAPI MCP overview | |
RunAPI docs |
License
Licensed under the Apache License, Version 2.0.
Available Tools
4 toolscheck_pricingA
Look up RunAPI pricing for the nano-banana model line.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model slug. Defaults to the line's primary model. | |
| action | No | Endpoint name. Defaults to the endpoint that offers the model. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. 'Look up pricing' clearly indicates a read-only operation, and the tool appears safe and non-destructive. However, it does not mention any additional traits like rate limits or authentication requirements, but for a simple lookup, this level of transparency is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence that fully communicates the tool's purpose without any extraneous words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool is a simple lookup with no output schema, the combination of a clear description and a well-defined schema provides sufficient context for an AI agent to use the tool. The only missing element is usage guidelines, but for this low complexity, the overall completeness is high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with each parameter having its own description and enum values. The tool description does not add any additional meaning beyond what the schema already provides, so 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: looking up RunAPI pricing for the nano-banana model line. The verb 'look up' and the specific resource 'pricing for the nano-banana model line' make the purpose unambiguous, and it distinguishes this tool from siblings like edit_image, get_task, and text_to_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. Users must infer from the tool name and context, but there is no explicit 'when to use' or 'consider using X instead' information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_imageB
Create a Nano Banana task on RunAPI (edit image). Returns a task id, status, and output URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| aspect_ratio | No | ||
| output_format | No | ||
| wait | No | Poll until the task reaches a terminal status. | |
| timeout_ms | No | ||
| poll_interval_ms | No | ||
| model | No | RunAPI model slug for this model line. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions returning a task id and status, implying async behavior, but does not explain the task lifecycle, how to provide an input image (missing from schema), or the role of parameters like wait and timeout_ms. No annotations exist to supplement this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently communicates the primary action and return value. No extraneous information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an async task-based tool with 6 parameters, the description is too minimal. It omits crucial details like how to provide the image, how to use polling/wait mechanisms, and what the output URLs represent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (2 of 6 parameters have descriptions). The description adds no parameter-level information, so it fails to compensate for the low coverage. The lack of an image input parameter in the schema is puzzling and not addressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a Nano Banana task for editing images, distinguishing it from sibling tools like text_to_image which generates new images. The verb 'Create' and resource 'edit image' 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives like text_to_image or get_task. The description only states what it does, not the context or prerequisites for using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskB
Fetch the current status and latest result payload for a nano-banana task.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task id returned when the task was created. | |
| action | Yes | Endpoint the task was created on. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a read-only fetch but does not disclose error handling, prerequisites, or what happens if the task_id is invalid. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with key action and resource. No unnecessary words, perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with no output schema, the description provides basic return info (status, payload) but lacks details on error responses or interpretation. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both task_id and action. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch', the resource 'task', and what is returned ('current status and latest result payload'). It effectively distinguishes from sibling tools (check_pricing, edit_image, text_to_image) which are for other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The context is implied (after creating a task), but no disclaimers or comparisons to siblings are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_to_imageC
Create a Nano Banana task on RunAPI (text to image). Returns a task id, status, and output URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| aspect_ratio | No | ||
| output_format | No | ||
| output_resolution | No | ||
| wait | No | Poll until the task reaches a terminal status. | |
| timeout_ms | No | ||
| poll_interval_ms | No | ||
| model | No | RunAPI model slug for this model line. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states it creates a task and returns outputs, but does not mention that the operation is asynchronous (implied by task id), whether it is destructive, or any side effects like cost. The polling behavior via 'wait' parameter is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single sentence containing a parenthetical. It is front-loaded with the primary action. While not verbose, it lacks structure, but for a short description, it is adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no output schema, and complex nested behavior (async task creation with polling), the description is far too sparse. It does not explain how to use the returned task id, what status results look like, or how the polling parameters interact. The description is incomplete for effective agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29% (2 of 7 parameters described). The tool description adds no additional meaning to any parameter. It fails to compensate for the low coverage, leaving agents uninformed about crucial parameters like aspect_ratio, output_format, and output_resolution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), the resource ('a Nano Banana task on RunAPI'), and context ('text to image'). It also mentions return values. However, it does not differentiate from the sibling 'edit_image', which could be confused for a similar image creation tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'edit_image' or 'get_task'. There are no prerequisites, required parameters, or context indicating typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct function: pricing lookup, text-to-image generation, image editing, and task status retrieval. No overlap in purpose.
All tool names follow a consistent verb_noun snake_case pattern (e.g., check_pricing, edit_image), making them predictable and easy to understand.
With 4 tools covering pricing, two image generation types, and task monitoring, the count is well-scoped for the server's purpose without being excessive or insufficient.
The tool surface covers the core workflows (text-to-image, editing, and task retrieval) but lacks task lifecycle management like cancellation or listing, though this is a minor gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate images, video & speech with Nano Banana, Veo, Omni and Gemini TTS. Pay as you go.
130+ AI models for image, video, music, and audio — 18 model families, one RunAPI account.
Run 100+ AI models — image, video, audio, 3D — through one API with pay-per-use billing.
Generate AI images and videos (Flux, Nano Banana, Kling, Veo, 48+ models), refunds on failure.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables creating, polling, and checking pricing for Seedream image generation tasks (edit and text-to-image) through a single RunAPI API key.673Apache 2.0
- AlicenseBqualityAmaintenanceEnables creating and managing GPT Image tasks (edit and text-to-image) via RunAPI, with options to poll status and check pricing.5107Apache 2.0
- AlicenseBqualityAmaintenanceEnables AI image and video generation tasks (text-to-image, image-to-video, edit, upscale, etc.) via RunAPI, with support for polling and pricing lookups.10142Apache 2.0
- AlicenseAqualityAmaintenanceEnables background removal and upscaling of images using Recraft models via RunAPI, with task polling and pricing lookup.568Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/runapi-ai/nano-banana-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server