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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: gemini_mcp_cli-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for gemini_mcp_cli-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 17ae4d074a7ecb40416e206a0941024c46e86bce9e2ccb5cb2cc0bee2cd49946
MD5 cbf3827febe312c33560bba084beb5e7
BLAKE2b-256 2e0c11cf23f81d3f95c20fe6eba22760a51b224a139c14490fdbdf82711a409c

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