Skip to main content

FastMCP server wrapping Google's Gemini CLI — use Gemini models from any MCP client

Project description

Gemini CLI MCP Server

CI PyPI License PR to Hermes Agent

A lightweight FastMCP server that wraps Google's Gemini CLI as MCP tools. Works with any MCP client — Hermes Agent, Claude Code, Claude Desktop, Cursor, etc.

Prerequisites

  • Node.js — for the Gemini CLI
  • Python 3.11+ — for the MCP server
  • Gemini CLI — installed and authenticated
npm install -g @google/gemini-cli
gemini --version          # Verify install
gemini                    # Run once to complete OAuth login

Installation

# Clone the repo
git clone https://github.com/jxsprt/gemini-mcp-server.git
cd gemini-mcp-server

# Create venv and install deps
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

Configuration

Add to your MCP client's config:

Hermes Agent (~/.hermes/config.yaml)

mcp_servers:
  gemini-cli:
    command: "/path/to/gemini-mcp-server/.venv/bin/python3"
    args: ["/path/to/gemini-mcp-server/server.py"]
    timeout: 240

Restart your Hermes gateway. Tools will be available as mcp_gemini_cli_*.

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "gemini-cli": {
      "command": "/path/to/gemini-mcp-server/.venv/bin/python3",
      "args": ["/path/to/gemini-mcp-server/server.py"]
    }
  }
}

Claude Code

fastmcp install claude-code /path/to/gemini-mcp-server/server.py

Cursor

fastmcp install cursor /path/to/gemini-mcp-server/server.py -e .

Tools

gemini_prompt

Send any prompt to Gemini CLI non-interactively. Supports model selection and JSON output.

Safe by default — uses --approval-mode auto-edit (auto-approves file edits, prompts for shell). Pass dangerous=true for full yolo mode.

gemini_prompt(prompt="Explain TCP handshake", model="gemini-2.5-flash")
gemini_prompt(prompt="Refactor this module", dangerous=True)     # full auto-approval
Parameter Type Required Default Description
prompt string Prompt text (max ~100K chars)
model string CLI default Model name (e.g., gemini-3-flash-preview)
output_format string text text, json, or stream-json
dangerous bool false Use --approval-mode yolo (auto-approves shell)

gemini_plan

Read-only audit and review mode. Uses --approval-mode planguarantees no file mutations or shell execution. Safe for whole-repo analysis and code reviews.

gemini_plan(prompt="Review this auth module for security issues")
Parameter Type Required Default Description
prompt string Analysis question or review request
model string CLI default Gemini model
include_directories string Comma-separated additional dirs

gemini_version

Returns the installed Gemini CLI version.

gemini_version()  # → "0.41.2"

Verification

cd /path/to/gemini-mcp-server
.venv/bin/python -c "
import server
print('Version:', server.gemini_version())
print('Prompt:', server.gemini_prompt('Say hello in one word'))
print('Plan:', server.gemini_plan('What tools does this server have?'))
"

How It Works

The server shells out to gemini -p "prompt" --approval-mode yolo for each tool call. It does NOT use the Google Gen AI Python SDK — it goes through the Gemini CLI binary (OAuth-authenticated).

Key design decisions:

  • Stdio transport — runs as a subprocess of your MCP client
  • No hardcoded paths — discovers gemini on PATH
  • No API keys in config — uses the CLI's existing OAuth session
  • Retry-friendly — generous timeouts (120s default, 240s for plan mode) to handle Gemini's capacity retries

Notes

  • Capacity errors: Gemini's reasoning models can hit rate limits. The CLI retries up to 7 times with backoff. If it fails, try again later or use a different model.
  • Plan mode is safe: --approval-mode plan explicitly prevents the agent from writing files or executing shell commands. Read-only, guaranteed.
  • 1M token context: Gemini CLI supports the full 1M token context window of Gemini models.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gemini_cli_mcp_fast-1.0.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gemini_cli_mcp_fast-1.0.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file gemini_cli_mcp_fast-1.0.0.tar.gz.

File metadata

  • Download URL: gemini_cli_mcp_fast-1.0.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for gemini_cli_mcp_fast-1.0.0.tar.gz
Algorithm Hash digest
SHA256 52a852b0d455aff66dd7cd71f34a0f44689e0fff31a2bb2f5e8a6c07a8f147bb
MD5 55660d7b927984c7e11a5276cebb526b
BLAKE2b-256 b5e711480772f46c7c8e89ef6ce1996fe5194b72620598cf75fdddfb5b847567

See more details on using hashes here.

File details

Details for the file gemini_cli_mcp_fast-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gemini_cli_mcp_fast-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2961315f8cc506c3609421cf343d18e3fd4fe82722425cef032a3a1710be0570
MD5 7b81c71752d99b7334755abd96152e8b
BLAKE2b-256 f2d546427dc79ec879977fe4ac90da0ea148b310f1806b50453cac1779dafd2b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page