Labsco
MCP SERVER

MCP Gemini Grounded Search

by cnosuke

One tool: ask a question, get an answer with the sources it came from, grounded through Gemini's search.

Web Search Engines
Summary
Answers arrive with their sources attached, not as unattributed prose.

The groundings array is the whole point: each answer carries the pages behind it, so a claim can be opened and checked instead of trusted. Two knobs decide cost and latency — the thinking level, settable per call, and the token cap — and every HTTP setting can come from the environment, so no secret has to sit in config.yml.

What it is

A Go server that turns Gemini's grounded search into a single MCP tool. The response is not just text — it carries the source titles, domains and URLs the answer was built from, so a claim can be checked rather than taken on faith.

What you get
  • `search` takes a natural-language `question` and returns generated text plus a `groundings` list of title, domain and URL
  • `max_token` caps the response size for one call and `thinking_level` overrides the reasoning depth per call
  • Two transports: stdio for Claude Desktop and Claude Code, and Streamable HTTP via the `httpserver` subcommand
  • In HTTP mode, `/health` is unauthenticated for liveness checks while the MCP endpoint requires a bearer token
Requirements

A Gemini API key in `GEMINI_API_KEY`. Docker is the recommended path: `docker pull cnosuke/mcp-gemini-grounded-search:latest` and run it with `server` as the argument. To build from source you need Go 1.24 or later. `GEMINI_MODEL_NAME` defaults to gemini-3.6-flash, `GEMINI_MAX_TOKENS` to 5000, and `GEMINI_THINKING_LEVEL` accepts MINIMAL, LOW, MEDIUM or HIGH. For HTTP mode, `HTTP_AUTH_TOKEN` is the bearer token, `HTTP_PORT` defaults to 8080 and `HTTP_ENDPOINT_PATH` to /mcp.

Setup effort

One command plus a key — docker pull cnosuke/mcp-gemini-grounded-search:latest, then supply credentials