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

Option 1: pip install

pip install gemini-cli-fastmcp
gemini-mcp    # starts the MCP server

Option 2: From source

# 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.1.tar.gz (8.3 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.1-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gemini_cli_mcp_fast-1.0.1.tar.gz
  • Upload date:
  • Size: 8.3 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.1.tar.gz
Algorithm Hash digest
SHA256 3252981027f5c9fcf65eb934eea56d14a4b9263c29d3d819bdda1f0e07dae75d
MD5 fa1da97faf35d9d7a0821821922abab8
BLAKE2b-256 1bd2c6a2c4d01d3544cd4f2675025371944db85983b72d8328bf9972479ed70b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gemini_cli_mcp_fast-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e08b50c8069e2d929942c9dffdf846de6076fc9936b82d746007b1c63034fd92
MD5 72a44be66ddd16275d9e931745bbee1e
BLAKE2b-256 09f186449af215faa45542bf4fa5783209fa144dfae59b51cf865d3fa97e2486

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