✦ @staticpayload/gemini-mcp
Bridge Google's Gemini CLI to any MCP-compatible AI assistant
Quick Start •
Tools •
Usage •
Configuration •
Autonomous Setup •
How It Works
┌─────────────────────────────────────────────────────────────────┐
│ │
│ Claude / Cursor / Any MCP Client │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────┐ │
│ │ @staticpayload/gemini-mcp │ │
│ │ ┌─────────┐ ┌─────────┐ ┌───────┐ │ │
│ │ │ prompt │ │ models │ │ raw │ │ ◄── MCP Tools │
│ │ └────┬────┘ └────┬────┘ └───┬───┘ │ │
│ └────────┼───────────┼─────────┼──────┘ │
│ │ │ │ │
│ └───────────┼─────────┘ │
│ ▼ │
│ ┌───────────────────────┐ │
│ │ Gemini CLI │ ◄── Your existing auth │
│ │ (gemini binary) │ & configuration │
│ └───────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
✨ Features
🔌 Zero Configuration
Uses your existing Gemini CLI installation and authentication. No API keys to manage, no duplicate auth flows.
🚀 Universal Access
Register once, use Gemini from Claude, Cursor, Windsurf, or any MCP-compatible client.
|
⚡ Production Ready
Health checks, graceful shutdown, 5-minute timeouts, proper signal handling. Built for reliability.
🛠️ Three Powerful Tools
Prompt execution, model listing, and raw CLI access for advanced use cases.
|
🚀 Quick Start
Prerequisites
npm install -g @google/gemini-cli
gemini
Run the MCP Server
npx @staticpayload/gemini-mcp
That's it. The server starts and waits for MCP connections via stdio.
🔧 Tools
gemini_prompt
Send a prompt to Gemini and get a response.
prompt | string | ✅ | The prompt to send |
model | string | ❌ | Model override (e.g., gemini-2.5-flash) |
gemini_models
List all available Gemini models.
No parameters required.
gemini_raw
Execute any Gemini CLI command with raw arguments.
args | string[] | ✅ | CLI arguments array |
Example: ["--version"] or ["-p", "Hello", "-m", "gemini-2.5-pro"]
📋 Usage
With Claude Desktop
Add to your Claude configuration (~/.claude/config.json):
{
"mcpServers": {
"gemini": {
"command": "npx",
"args": ["@staticpayload/gemini-mcp"]
}
}
}
With Claude CLI
claude mcp add gemini -- npx @staticpayload/gemini-mcp
With Cursor / Windsurf
Add to your MCP settings:
{
"gemini": {
"command": "npx",
"args": ["@staticpayload/gemini-mcp"]
}
}
⚙️ Configuration
Environment Variables
GEMINI_CLI_PATH | Override the Gemini binary location |
GEMINI_API_KEY | Gemini API key (if not using OAuth) |
GOOGLE_APPLICATION_CREDENTIALS | Service account credentials path |
Inherited Configuration
The server inherits your full environment, so existing Gemini configuration works automatically:
~/.config/gemini/ ← CLI configuration
~/.gemini/settings.json ← Gemini settings
GEMINI_* env vars ← All Gemini environment variables
gcloud auth ← Application default credentials
🤖 Autonomous Setup
For production deployments with Vertex AI authentication and zero interactive prompts, use the automated setup:
cp .env.example .env
gcloud auth application-default login
./setup-gemini.sh
./run-gemini.sh
Features:
- ✅ Vertex AI authentication (no API keys)
- ✅ No permission prompts for file/shell/web operations
- ✅ GA/Preview model routing
- ✅ MCP server integration
- ✅ Sandbox directory (avoids macOS permission issues)
See GEMINI_SETUP.md for complete documentation.
🔬 How It Works
┌──────────────┐ stdio ┌─────────────────┐ spawn ┌─────────────┐
│ MCP Client │ ◄────────────► │ gemini-cli-mcp │ ◄───────────► │ gemini CLI │
│ (Claude) │ JSON-RPC │ (Node.js) │ child proc │ (binary) │
└──────────────┘ └─────────────────┘ └─────────────┘
- MCP Client sends JSON-RPC requests over stdio
- gemini-cli-mcp translates MCP tool calls to Gemini CLI commands
- Gemini CLI executes with your existing auth & config
- Response flows back through the same path
The server is a thin translation layer—all heavy lifting happens in Gemini CLI.
🏗️ Architecture
@staticpayload/gemini-mcp/
├── src/
│ └── index.js # MCP server (single file, ~300 lines)
├── package.json # npm package with bin entry
└── README.md
Design Principles:
- Single responsibility: translate MCP ↔ Gemini CLI
- Zero global state
- Fail fast with clear errors
- Minimal dependencies (
@modelcontextprotocol/sdk, zod)
🐛 Troubleshooting
"Gemini CLI not found"
which gemini
export GEMINI_CLI_PATH=/path/to/gemini
"Auth method not set"
gemini
export GEMINI_API_KEY=your-api-key
Server not responding
Check stderr output for health check results:
[gemini-mcp] Gemini CLI: /usr/local/bin/gemini (0.22.4)
📄 License
GPL-3.0 © 2024
Built with ❤️ for the MCP ecosystem