Gemini MCP Server
Provides access to Google's Gemini API for conversational AI interactions and image generation using Nano Banana, supporting multi-turn conversations, configurable context, and automated model selection for text-heavy images.
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., "@Gemini MCP Servergenerate an infographic about renewable energy sources"
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.
Gemini MCP Server
An MCP (Model Context Protocol) server that provides access to Google's Gemini API. Drop-in alternative to Codex MCP with matching interface.
Features
gemini - Start a new Gemini conversation with configurable context
gemini-reply - Continue multi-turn conversations
gemini-image - Generate images using Nano Banana (Gemini's native image generation)
gemini-video-generate - Start video generation with Veo 3.1
gemini-video-check - Check video generation status and retrieve completed videos
Related MCP server: NanoBanana MCP
Installation
npm install
npm run buildConfiguration
Create a .env file or set environment variables:
# Required: Your Google Gemini API key
GEMINI_API_KEY=your_api_key_here
# Optional: Override the model (default: gemini-3-pro-preview)
GEMINI_MODEL=gemini-3-pro-previewGet your API key from Google AI Studio.
Usage with Claude Code
Add to your MCP settings (~/.claude/mcp.json):
{
"mcpServers": {
"gemini": {
"command": "node",
"args": ["/path/to/gemini-mcp/dist/index.js"],
"env": {
"GEMINI_API_KEY": "your_api_key_here"
}
}
}
}Tools
gemini
Start a new conversation with Gemini.
Parameters:
prompt(required) - The initial promptcwd- Working directory contextsandbox- Access policy: "read-only", "workspace-write", or "danger-full-access"base-instructions- Override default system instructionsdeveloper-instructions- Additional context for the model
Returns: Response text and a conversationId for follow-up.
gemini-reply
Continue an existing conversation.
Parameters:
conversationId(required) - ID from a previous gemini callprompt(required) - Your follow-up message
gemini-image
Generate images using Nano Banana, Google's native image generation built into Gemini.
Models:
Nano Banana (
gemini-2.5-flash-image) - Fast, cost-effective (~$0.04/image), good for most use casesNano Banana Pro (
gemini-3-pro-image-preview) - Advanced model with better text rendering, ideal for infographics, diagrams, and text-heavy images
Auto-Detection: The server automatically uses Nano Banana Pro when your prompt contains keywords like:
"nano banana pro", "pro model"
"infographic", "diagram", "chart", "graph"
"text", "typography", "font", "lettering"
"logo", "brand", "poster", "flyer", "banner"
"slide", "presentation", "document"
"high quality", "4k", "detailed text"
Parameters:
prompt(required) - Description of the image to generatenumberOfImages- How many images (1-4, default: 1)aspectRatio- Image ratio: "1:1", "3:4", "4:3", "9:16", "16:9"usePro- Force Nano Banana Pro (auto-detected from prompt if not specified)outputPath- Directory to save generated images
Example:
// Auto-detects Pro model
"Create an infographic showing the software development lifecycle"
// Explicitly request Pro
{ "prompt": "A sunset over mountains", "usePro": true }
// Fast generation (default)
"A cute cat wearing a hat"gemini-video-generate
Start video generation using Veo 3.1, Google's advanced video generation model.
Important: Video generation is asynchronous. This tool returns immediately with an operation ID. Use gemini-video-check to poll for completion (typically 30-60 seconds).
Parameters:
prompt(required) - Description of the video to generateaspectRatio- Video ratio: "16:9" (default), "9:16"resolution- Video resolution: "480p", "720p" (default)firstFrameBase64- Optional base64 image to use as first frame (generate with gemini-image first)
Returns: Operation ID for checking status
Example Workflow:
1. gemini-video-generate: "A cat playing with a ball of yarn"
→ Returns: { operationId: "op-123..." }
2. Wait 30-60 seconds
3. gemini-video-check: { operationId: "op-123..." }
→ Returns: { status: "processing", elapsed: "45s" }
OR
→ Returns: { status: "complete", videoData: "..." }gemini-video-check
Check the status of a video generation operation and retrieve completed videos.
Parameters:
operationId- Operation ID from gemini-video-generate (optional - uses last operation if omitted)outputPath- Directory to save the completed video
Returns:
If processing: Status and elapsed time
If complete: Video data (base64) and optional saved file path
Tip: You can create a custom first frame using gemini-image, then pass it to gemini-video-generate with firstFrameBase64 for more control over your video.
Development
# Run in development mode
npm run dev
# Build for production
npm run build
# Start production server
npm startLicense
MIT
Available Tools
5 toolsgeminiB
Run a Gemini session. Similar to Codex but uses Google Gemini 3 Pro Preview.
Supports configuration parameters matching the Codex Config struct:
prompt: The initial user prompt to start the conversation (required)
cwd: Working directory context
sandbox: Access policy ("read-only", "workspace-write", "danger-full-access")
base-instructions: Override default system instructions
developer-instructions: Additional developer context
model: Optional override for model (default: gemini-3-pro-preview)
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The initial user prompt to start the Gemini conversation | |
| cwd | No | Working directory for context | |
| sandbox | No | Access policy mode | |
| base-instructions | No | Override the default system instructions | |
| developer-instructions | No | Developer instructions for additional context | |
| model | No | Model override (default: gemini-3-pro-preview) | |
| config | No | Additional config settings (passthrough) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions the tool 'Run[s] a Gemini session' and lists configuration parameters, it doesn't describe what the session entails, whether it's interactive or single-turn, what happens to the conversation state, authentication requirements, rate limits, or error behavior. The description provides basic functional information but lacks important behavioral context for a tool with 7 parameters.
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 appropriately sized and front-loaded with the core purpose. The first sentence establishes what the tool does, followed by relevant configuration details. There's minimal wasted text, though the parameter listing could be more concise given the schema already documents them thoroughly. Overall structure is logical and efficient.
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 tool with 7 parameters, no annotations, no output schema, and siblings with similar names, the description is incomplete. It doesn't explain what a 'Gemini session' entails, how it differs from sibling tools, what the expected behavior/output is, or important operational constraints. The comparison to Codex helps but doesn't compensate for the significant gaps in behavioral and contextual information.
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%, so the schema already documents all 7 parameters thoroughly. The description lists the parameters and mentions they 'match the Codex Config struct', which adds some conceptual context. However, it doesn't provide significant additional semantic meaning beyond what's already in the schema descriptions. The baseline of 3 is appropriate when schema does the heavy lifting.
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 'Run[s] a Gemini session' and specifies it uses 'Google Gemini 3 Pro Preview', which is a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from its siblings (gemini-image, gemini-reply, gemini-video-check, gemini-video-generate), which appear to be specialized variants. The comparison to 'Codex' provides helpful context but doesn't fully differentiate from sibling tools.
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 implies usage context through the comparison to 'Codex' and mentions configuration parameters, but provides no explicit guidance on when to use this tool versus its siblings or alternatives. There's no mention of prerequisites, typical use cases, or when-not-to-use scenarios. The implied context is helpful but incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gemini-imageA
Generate images using Nano Banana (Gemini's native image generation).
Two models available:
Nano Banana (default): Fast, cheap (~$0.04/image), good for most use cases
Nano Banana Pro: Advanced model with better text rendering, infographics, diagrams
Auto-detection: Says "nano banana pro" or mentions text/infographic/diagram/chart/logo/poster in prompt → automatically uses Pro model.
Parameters:
prompt: Text description of the image to generate (required)
numberOfImages: How many images to generate (1-4, default: 1)
aspectRatio: Image aspect ratio ("1:1", "3:4", "4:3", "9:16", "16:9", default: "1:1")
usePro: Force Nano Banana Pro (auto-detected from prompt if not specified)
outputPath: Optional path to save images
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text description of the image to generate | |
| numberOfImages | No | Number of images to generate (1-4) | |
| aspectRatio | No | Aspect ratio of generated images | |
| usePro | No | Use Nano Banana Pro for higher quality (better text, infographics) | |
| outputPath | No | Optional directory path to save generated images |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden of behavioral disclosure. It does well by explaining cost implications (~$0.04/image), model performance characteristics (fast/cheap vs better text rendering), and auto-detection behavior. However, it doesn't mention rate limits, authentication requirements, or error conditions. For a generative AI tool with no annotations, this is strong but not comprehensive 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?
The description is efficiently structured with clear sections: purpose statement, model comparison, auto-detection logic, and parameter summary. Every sentence earns its place by providing essential information without redundancy. The information is front-loaded with the core purpose and model options before parameter details.
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 an image generation tool with 5 parameters, 100% schema coverage, and no output schema, the description provides strong contextual information about model selection, cost, and auto-detection. However, without annotations or output schema, it doesn't describe what the tool returns (image URLs? file paths? metadata?) or potential limitations. Given the complexity, it's mostly complete but missing output information.
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%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema - it mentions 'auto-detection' logic which relates to the 'usePro' parameter, but doesn't provide additional semantic context about parameter interactions or usage patterns. The baseline of 3 is appropriate when the schema does the heavy lifting.
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: 'Generate images using Nano Banana (Gemini's native image generation).' It specifies the exact action (generate images) and resource (Nano Banana/Gemini), distinguishing it from sibling tools like gemini (likely text generation) and gemini-video-generate (video generation). The description immediately establishes this is an image generation tool with specific model options.
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 provides explicit guidance on when to use different model options: 'Fast, cheap (~$0.04/image), good for most use cases' for the default model versus 'Advanced model with better text rendering, infographics, diagrams' for Pro. It also explains auto-detection logic for Pro model usage and mentions the 'usePro' parameter for manual override. This gives clear decision criteria for model selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gemini-replyA
Continue a Gemini conversation by providing the conversation ID and prompt.
Use this to continue a multi-turn conversation started with the 'gemini' tool.
| Name | Required | Description | Default |
|---|---|---|---|
| conversationId | Yes | The conversation ID from a previous gemini call | |
| prompt | Yes | The next user prompt to continue the conversation |
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 of behavioral disclosure. It states the tool continues a conversation but lacks critical details: it doesn't mention whether this is a read-only or mutating operation (e.g., does it modify conversation history?), any authentication or rate limits, error handling (e.g., invalid conversationId), or the expected response format. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
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 appropriately sized and front-loaded: the first sentence directly states the purpose, and the second sentence provides essential usage guidance. There is no wasted text, and both sentences earn their place by adding value beyond the tool name or schema.
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's moderate complexity (continuing a conversation with two required parameters), no annotations, and no output schema, the description is partially complete. It covers the basic purpose and usage context but lacks behavioral details (e.g., mutation effects, error handling) and output information. This makes it adequate as a minimum viable description but with clear gaps in completeness.
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 schema description coverage is 100%, with both parameters ('conversationId' and 'prompt') fully documented in the input schema. The description adds no additional semantic information beyond what the schema provides (e.g., it doesn't explain format constraints or examples). According to the rules, with high schema coverage (>80%), the baseline score is 3 even without param details in the description, which applies here.
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: 'Continue a Gemini conversation by providing the conversation ID and prompt.' This specifies the verb ('continue') and resource ('Gemini conversation'), making it distinct from its siblings like 'gemini' (likely to start a conversation) or media-specific tools. However, it doesn't explicitly differentiate from 'gemini-image' or 'gemini-video-check' in terms of conversation continuation versus media handling.
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 provides clear context for when to use this tool: 'Use this to continue a multi-turn conversation started with the 'gemini' tool.' This explicitly links it to the sibling 'gemini' tool and indicates it's for follow-up interactions. However, it doesn't specify when not to use it (e.g., versus using 'gemini' for a new conversation or media tools for non-text inputs), which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gemini-video-checkA
Check the status of a video generation operation.
If the video is still processing, returns the current status. If the video is complete, returns the video data.
Parameters:
operationId: The operation ID from gemini-video-generate (optional - uses last operation if not provided)
outputPath: Optional path to save the video file when complete
| Name | Required | Description | Default |
|---|---|---|---|
| operationId | No | Operation ID from gemini-video-generate (uses last operation if not provided) | |
| outputPath | No | Optional path to save the video file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it checks status, returns different data based on processing state, and can save files. However, it doesn't cover important aspects like error handling, rate limits, authentication needs, or what 'video data' specifically includes, leaving gaps for a mutation-adjacent operation.
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 efficiently structured: a clear purpose statement followed by conditional outcomes, then parameter explanations. Every sentence adds value with no redundancy. The two-sentence parameter section is appropriately detailed without being verbose.
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 no annotations and no output schema, the description is moderately complete. It covers the core functionality and parameters well but lacks details on return formats (what 'video data' entails), error cases, or system constraints. For a tool that interacts with potentially long-running operations, more behavioral context would be beneficial.
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%, providing solid baseline documentation. The description adds valuable context: it clarifies that operationId is optional and defaults to 'last operation,' and explains the purpose of outputPath ('to save the video file when complete'). This enhances understanding beyond the schema's basic descriptions.
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: 'Check the status of a video generation operation' and specifies what it returns in different scenarios. It distinguishes from sibling tools by focusing on status checking rather than generation (gemini-video-generate) or other AI tasks, though it doesn't explicitly contrast with all siblings.
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 implies when to use this tool (after initiating video generation) by referencing 'operation ID from gemini-video-generate' and describing status checking behavior. However, it lacks explicit guidance on when to use alternatives or any exclusions, relying on contextual inference from the sibling tool reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gemini-video-generateA
Generate a video using Veo 3.1 (Google's video generation model).
This starts an async video generation that takes 1-5 minutes. Returns an operation ID that you can use with gemini-video-check to poll for completion.
Parameters:
prompt: Text description of the video to generate (required)
aspectRatio: Video aspect ratio ("16:9" or "9:16", default: "16:9")
resolution: Video resolution ("720p", default: "720p")
firstFrameBase64: Optional base64 PNG image to use as first frame (from gemini-image)
Workflow:
Call gemini-video-generate → returns operationId
Wait 30-60 seconds
Call gemini-video-check with operationId → returns status or video
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text description of the video to generate | |
| aspectRatio | No | Video aspect ratio (default: 16:9) | |
| resolution | No | Video resolution (default: 720p) | |
| firstFrameBase64 | No | Optional base64 PNG image to use as first frame |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well: it discloses the async nature ('starts an async video generation'), timing expectations ('takes 1-5 minutes'), return value ('Returns an operation ID'), and workflow dependencies (polling with gemini-video-check). It doesn't mention rate limits or authentication needs, but covers key behavioral aspects.
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 well-structured and front-loaded: first sentence states core purpose, followed by timing/return info, then parameter list, then clear workflow steps. Every sentence earns its place with no redundant information. The bullet-point format for parameters and numbered steps for workflow enhance readability.
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 4-parameter tool with no annotations and no output schema, the description does well: it explains the async behavior, return format (operation ID), and polling workflow. It could mention error handling or rate limits, but covers the essential context for proper tool invocation given the complexity.
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%, so the baseline is 3. The description adds minimal value beyond the schema: it repeats parameter names and basic purposes but doesn't provide additional context about prompt best practices, aspect ratio implications, or resolution limitations. The 'from gemini-image' note for firstFrameBase64 is helpful but limited.
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 specific action ('Generate a video using Veo 3.1') and resource ('video'), distinguishing it from sibling tools like gemini-image (image generation) and gemini-video-check (polling). It explicitly identifies the model being used and the type of output.
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 provides explicit workflow guidance: 'Call gemini-video-generate → returns operationId', 'Wait 30-60 seconds', then 'Call gemini-video-check with operationId'. It names the specific alternative tool (gemini-video-check) for completion checking and explains the async nature of the operation.
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.
5 tool updates
v1.0.0- First observed
gemini - First observed
gemini-image - First observed
gemini-reply - First observed
gemini-video-check - First observed
gemini-video-generate
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: 'gemini' for text-based conversations, 'gemini-image' for image generation, 'gemini-reply' for continuing conversations, 'gemini-video-generate' for initiating video generation, and 'gemini-video-check' for checking video status. There is no overlap or ambiguity between these functions.
The naming follows a consistent 'gemini-' prefix pattern for all tools, with descriptive suffixes like 'image', 'reply', 'video-generate', and 'video-check'. The only minor deviation is the first tool named just 'gemini' instead of 'gemini-chat' or similar, but this is a small inconsistency in an otherwise predictable scheme.
With 5 tools, this server is well-scoped for interacting with Google Gemini models. It covers core functionalities: text generation, image generation, conversation continuation, and video generation with status checking. Each tool earns its place without being overwhelming or sparse.
The toolset provides comprehensive coverage for the Gemini domain, including text, image, and video generation with multi-turn conversation support. A minor gap is the lack of a tool for managing or listing past conversations, but the core workflows are fully covered with no dead ends.
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
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
MCP server for NanoBanana AI image generation and editing
Generate images, video & speech with Nano Banana, Veo, Omni and Gemini TTS. Pay as you go.
Generate AI images and videos from any compatible MCP client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Google Gemini AI models through MCP protocol. Provides text generation capabilities with configurable model selection and temperature settings.78MIT
- AlicenseAqualityCmaintenanceMCP 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.767732MIT
- AlicenseNot gradedqualityDmaintenanceIntegrates Google's Gemini API with MCP-compatible clients for chat, real-time web search, knowledge queries, code/text analysis, and content generation.48MIT
- AlicenseAqualityCmaintenanceMCP server for Google's Gemini API, enabling text, image, video, speech, embeddings, and deep research capabilities through a single tool set.10MIT