@ethantsaitsai/gemini-mcp-server
v1.1.0
Published
MCP server wrapping gemini CLI for Claude Code integration
Readme
What is this?
A local MCP server that wraps the gemini CLI, letting any MCP client (Claude Code, Cursor, etc.) offload expensive tasks to Gemini 2.5 Pro's massive context window.
Use cases:
- Summarize a 5,000-line file without burning Claude's tokens
- Analyze an entire codebase directory in one shot
- Get a second-opinion code review from a different model
- Process huge logs or data files that exceed comfortable context limits
- Search the web for up-to-date information via Google Search grounding
- Review a PR or branch diff automatically without manual copy-paste
MCP Tools
| Tool | Description |
|------|-------------|
| gemini_query | Send a prompt to Gemini with optional file context |
| gemini_summarize | Summarize a file or entire directory/codebase |
| gemini_analyze | Deep analysis of codebase structure, patterns, and issues |
| gemini_review | Code review with actionable feedback (manual diff/files) |
| gemini_search | Web search with Google Search grounding — get current info with source citations |
| gemini_pr_review | Git-aware PR/branch review — auto-fetches diff and commit history |
Prerequisites
- Node.js 18+
- Gemini CLI installed and authenticated
Quick Start
No cloning needed — just add to your MCP client config:
{
"mcpServers": {
"gemini": {
"command": "npx",
"args": ["-y", "@ethantsaitsai/gemini-mcp-server"]
}
}
}Run:
claude mcp add gemini -- npx -y @ethantsaitsai/gemini-mcp-serverOr add to your project's .mcp.json:
{
"mcpServers": {
"gemini": {
"command": "npx",
"args": ["-y", "@ethantsaitsai/gemini-mcp-server"]
}
}
}Add to ~/.gemini/settings.json:
{
"mcpServers": {
"gemini": {
"command": "npx",
"args": ["-y", "@ethantsaitsai/gemini-mcp-server"]
}
}
}Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"gemini": {
"command": "npx",
"args": ["-y", "@ethantsaitsai/gemini-mcp-server"]
}
}
}Go to Cursor Settings > MCP > Add new MCP Server, then add:
{
"mcpServers": {
"gemini": {
"command": "npx",
"args": ["-y", "@ethantsaitsai/gemini-mcp-server"]
}
}
}Add to .vscode/mcp.json in your workspace:
{
"servers": {
"gemini": {
"command": "npx",
"args": ["-y", "@ethantsaitsai/gemini-mcp-server"]
}
}
}Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"gemini": {
"command": "npx",
"args": ["-y", "@ethantsaitsai/gemini-mcp-server"]
}
}
}git clone https://github.com/ethan-tsai-tsai/gemini-mcp-server.git
cd gemini-mcp-server
npm install
npm startEnvironment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| GEMINI_CLI_PATH | gemini | Path to the gemini binary |
| GEMINI_MODEL | gemini-2.5-pro | Default Gemini model |
| GEMINI_TIMEOUT_MS | 120000 | Timeout per invocation (ms) |
How It Works
┌─────────────┐ MCP (stdio) ┌──────────────┐ child_process ┌─────────────┐
│ AI Client │ ◄──────────────────► │ index.js │ ◄────────────────► │ gemini CLI │
│ (Claude, │ gemini_query() │ (MCP Server)│ spawn/execFile │ (Google) │
│ Cursor...) │ gemini_summarize() │ │ │ │
│ │ gemini_analyze() │ │ │ │
│ │ gemini_review() │ │ │ │
│ │ gemini_search() │ │ │ │
│ │ gemini_pr_review() │ │ │ │
└─────────────┘ └──────────────┘ └─────────────┘Security
- No
console.log— stdout is reserved for JSON-RPC; all logging usesstderr - No shell injection — Uses
spawn/execFileinstead ofexec; all inputs are sanitized - Binary files skipped — Automatically detects and skips non-text files
- Path validation — All file paths are sanitized before use
