Gemini Research MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GEMINI_MODEL | No | Model for research_web | gemini-3.7-flash |
| GEMINI_API_KEY | Yes | Google AI Studio API key | |
| FETCH_PROXY_URL | No | Default HTTP(S) proxy for fetch_webpage | |
| DEEP_RESEARCH_AGENT | No | Default agent for research_deep | deep-research-preview-04-2026 |
| GEMINI_SUMMARY_MODEL | No | Model for session summaries, titles, and clarification | gemini-3.7-flash |
| GEMINI_RESEARCH_HTTP_HOST | No | Bind host for streamable-http. Non-loopback requires GEMINI_RESEARCH_HTTP_BEARER_TOKEN | 127.0.0.1 |
| GEMINI_RESEARCH_HTTP_PATH | No | URL path for streamable-http | /mcp |
| GEMINI_RESEARCH_HTTP_PORT | No | Bind port for streamable-http | 8000 |
| GEMINI_RESEARCH_TRANSPORT | No | stdio or streamable-http | stdio |
| GEMINI_RESEARCH_EXPORT_DIR | No | Disk-first destination when export_research_session has no output_path | ~/.gemini-research/exports/ |
| GEMINI_RESEARCH_STORAGE_URL | No | Redis URL to share sessions/exports across multiple server instances/workers; falls back to local DiskStore when unset | |
| GEMINI_RESEARCH_TTL_SECONDS | No | Override session/export TTL | |
| GEMINI_RESEARCH_STORAGE_PATH | No | Custom directory for the local DiskStore | |
| GEMINI_RESEARCH_HTTP_BEARER_TOKEN | No | Static bearer token required to call streamable-http. Never reuse GEMINI_API_KEY for this |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| research_runA | Run one research job on the selected engine as a background Task. Each new submission can start a separate paid research job; a retried or resubmitted Task is a new job. Use get_research_run with the returned run_id to inspect or recover the result. |
| research_compareA | Run the same question on exactly two engines and return attributed reports. This can incur two research workloads. No synthesis, merging or scoring is performed; the caller combines the reports. |
| research_webA | Web research with Gemini grounding. Returns an answer with citations. Uses a fixed high thinking level for higher-quality grounded answers. Latency varies with the query and provider load. Use for: quick lookups, fact-checking, current events, documentation, "what is", "how to", real-time information, news, API references, error messages. |
| research_deepA | Comprehensive autonomous research agent. Takes 3-20 minutes. Uses the fast/default April 2026 Deep Research agent. Use this by default for interactive questions, exploratory research, competitive analysis, comparisons, and latency/cost-sensitive multi-source synthesis. For maximum-comprehensiveness research, use research_deep_max instead. For vague queries, the tool automatically asks clarifying questions to refine the research scope before starting (when elicitation is available). |
| research_deep_maxA | Maximum-comprehensiveness autonomous research agent. Use when the user explicitly says "Max", "deep research max", "exhaustive", "comprehensive", "due diligence", "market map", "literature review", "high stakes", "board-ready", "offline/nightly", or asks for maximum completeness over speed. For ordinary interactive research, use research_deep instead. |
| resume_researchA | Resume an interrupted or in-progress Use when a Because Call with no arguments to list recoverable sessions. Call with an
|
| export_research_sessionA | Save (export, download, archive) a completed research session to a file
on disk — Word (.docx), Markdown (.md), or JSON. Use this to recover
your report after a Disk-first contract. The file is always written to disk, and the
absolute path is returned on the first line of the response as
Similar to Google's Deep Research export feature, the DOCX output is a professional Word document suitable for sharing, archiving, or further editing. Supported formats:
Typical recovery flow:
|
| search_toolsB | Search for tools using natural language. Returns matching tool definitions ranked by relevance, in the same format as list_tools. |
| call_toolB | Call a tool by name with the given arguments. Use this to execute tools discovered via search_tools. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_research_models | List available research models and their capabilities. Returns information about the models used by this server: - Quick research model (Gemini + Google Search grounding) - Deep Research Agent (autonomous multi-step research) |
| Available Exports | List all currently cached exports ready for download. |
TDQS
Scored across 9 tools
The research tools are mostly distinguishable by depth, latency, and explicit use-case guidance, but research_run, research_deep, research_deep_max, and research_web have nuanced overlapping intent. The generic search_tools/call_tool pair is clear as meta-tools but sits outside the research workflow.
All names use snake_case and are readable, with a clear research_* family and verb_noun-style lifecycle/meta tools. The convention is not perfectly uniform because some tools use noun-prefixed research_* names while others start with a verb, but this is a minor deviation.
Nine tools is well-scoped for a research server with quick web lookup, deep research variants, comparison, resume/export lifecycle, and meta-tool discovery. Each tool appears to serve a distinct workflow rather than inflating the surface unnecessarily.
The surface covers research web/deep/max/compare, resume, and export, but research_run explicitly relies on get_research_run, which is not present, leaving background research jobs with no stated way to inspect or recover results. Similarly, resume_research references list_research_sessions, which is absent from the tool set.