Gemini MCP server

Bridges Claude Desktop with Google's Gemini for seamless, configurable image generation via a JSON-RPC protocol that enables direct conversational image creation.
Back to servers
Setup instructions
Provider
Garblesnarff
Release date
Mar 17, 2025
Language
TypeScript
Stats
12 stars

The Gemini MCP Server provides a comprehensive AI platform with Smart Tool Intelligence - a self-learning system that adapts to your preferences and improves over time. It offers seven AI-powered tools including image generation/editing, chat, audio transcription, code execution, and video/image analysis.

Installation

Prerequisites

You'll need:

  • Node.js and npm installed
  • A Gemini API key from Google AI Studio

Setup Steps

  1. Clone the repository and install dependencies:

    git clone https://github.com/Garblesnarff/gemini-mcp-server.git
    cd gemini-mcp-server
    npm install
    
  2. Configure your API key:

    cp .env.example .env
    
  3. Edit the .env file to add your API key:

    GEMINI_API_KEY=your_actual_api_key_here
    OUTPUT_DIR=/path/to/your/output/directory  # Optional
    DEBUG=false  # Optional
    
  4. Start the server:

    npm start
    

    For development with debug logging:

    npm run dev
    

Integration with Claude Desktop

Add the following to your Claude Desktop configuration file (claude_desktop_config.json):

{
  "mcpServers": {
    "gemini": {
      "command": "node",
      "args": ["/path/to/gemini-mcp-server/gemini-server.js"],
      "env": {
        "GEMINI_API_KEY": "your_api_key_here"
      }
    }
  }
}

Using the Tools

Image Generation

Generate images from text descriptions:

{
  "prompt": "A serene mountain landscape at sunset with vibrant colors",
  "context": "artistic"
}

Image Editing

Edit existing images with natural language instructions:

{
  "image_path": "/path/to/image.jpg",
  "edit_instruction": "Add shooting stars to the night sky",
  "context": "artistic"
}

Chat

Have interactive conversations with Gemini AI:

{
  "message": "Explain quantum computing in simple terms",
  "context": "consciousness"  // Will apply academic rigor enhancement
}

Audio Transcription

Convert audio to text with optional verbatim mode:

// Standard transcription
{
  "file_path": "/path/to/audio.mp3",
  "language": "en"
}

// Verbatim mode (exact word-for-word)
{
  "file_path": "/path/to/audio.mp3",
  "context": "verbatim",
  "preserve_spelled_acronyms": true
}

Code Execution

Run Python code in a secure sandbox:

{
  "code": "import pandas as pd\ndata = {'x': [1,2,3], 'y': [4,5,6]}\ndf = pd.DataFrame(data)\nprint(df.describe())",
  "context": "code"
}

Video Analysis

Analyze video content for insights:

{
  "file_path": "/path/to/video.mp4",
  "analysis_type": "detailed"
}

Image Analysis

Extract information from images:

{
  "file_path": "/path/to/image.jpg",
  "analysis_type": "objects"
}

Smart Tool Intelligence

The server features a unique Smart Tool Intelligence system that:

  1. Detects context (consciousness research, coding, debugging, etc.)
  2. Enhances prompts based on learned patterns
  3. Learns from successful interactions
  4. Adapts to your preferences over time

Context Types

The system recognizes these contexts and applies appropriate enhancements:

  • consciousness - Adds academic rigor, citations, detailed explanations
  • code - Includes practical examples, working code, best practices
  • debugging - Focuses on root cause analysis and specific fixes
  • general - Applies comprehensive, structured responses
  • verbatim - For audio transcription, provides exact word-for-word output

Testing the Server

Manual Testing Examples

Test image generation:

echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"generate_image","arguments":{"prompt":"A cute robot reading a book"}}}' | node gemini-server.js

Test chat with consciousness context:

echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"gemini-chat","arguments":{"message":"What is consciousness?","context":"consciousness"}}}' | node gemini-server.js

Troubleshooting

Common Issues

"Missing GEMINI_API_KEY" Error

# Ensure .env file exists and contains your API key
cp .env.example .env
# Edit .env and add: GEMINI_API_KEY=your_key_here

"File not found" Errors

  • Ensure file paths are absolute and files exist
  • Check file permissions and formats

Intelligence System Not Learning

# Check data directory permissions
ls -la data/
# Verify tool-preferences.json is writable

Debug Mode

DEBUG=true npm start
# or
npm run dev

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "gemini" '{"command":"node","args":["/path/to/gemini-mcp-server/gemini-server.js"],"env":{"GEMINI_API_KEY":"your_api_key_here"}}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "gemini": {
            "command": "node",
            "args": [
                "/path/to/gemini-mcp-server/gemini-server.js"
            ],
            "env": {
                "GEMINI_API_KEY": "your_api_key_here"
            }
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "gemini": {
            "command": "node",
            "args": [
                "/path/to/gemini-mcp-server/gemini-server.js"
            ],
            "env": {
                "GEMINI_API_KEY": "your_api_key_here"
            }
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later