google-search-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_MCP_LOCALE | No | Browser locale, e.g. en-US | |
| GOOGLE_MCP_PROFILE | No | Which signed-in profile to use; one per agent | default |
| GOOGLE_MCP_HEADLESS | No | Headless is a different fingerprint; verify against /sorry/ before trusting it | 0 |
| GOOGLE_MCP_TIMEZONE | No | Browser timezone, e.g. Europe/Berlin | |
| GOOGLE_MCP_OFFSCREEN | No | Park the window offscreen instead of taking over the desktop | 1 |
| GOOGLE_MCP_SESSION_ROOT | No | Where profiles live. Defaults to per-OS user data dir |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| google_session_statusA | Whether the dedicated profile has a live Google session, and which account it is. Worth calling once before relying on personalization: signed out still works, it just returns the neutral (unpersonalized) view. The account is read off the page rather than assumed, because "whoever was signed in" is not a safe default on a box with more than one Google account. |
| google_searchA | Search Google. Ads stripped; results are {rank, title, url, host, snippet, date}. Use the structured arguments rather than typing operators into site='arxiv.org' restrict to one domain filetype='pdf' only PDFs exact='model context protocol' quoted phrase, must appear verbatim exclude=['tutorial'] drop results containing a term after='2026-01-01' published after a date (before= for the other bound) freshness='week' hour | day | week | month | year verbatim=True no synonyms or stemming; the words as typed strict_dates=True apply before/after as Tools > Custom range instead of as query operators (index date rather than document date) country='de', lang='de' region and language bias personalized=False the neutral view, no account history applied
web the default SERP, including rich blocks
web_only the "Web" tab -- plain links, no rich blocks. Cleanest for research;
measured 17 external anchors against 56 on the default SERP.
news news, with dates
videos video results
short_videos the shorts feed
books Google Books (results are google-hosted by nature)
images the image grid; single page,
On failure the result carries a |
| google_fetchA | Read web pages as markdown, through the warmed logged-in browser. Use this instead of a plain HTTP fetch when the page needs a real browser: JS-rendered apps, soft paywalls, cookie-walled articles, anything behind the Google login. That capability is the whole point -- for a static public page an ordinary fetch is cheaper. Boilerplate (nav, footers, cookie banners, related-story rails) is stripped and only the article body comes back, so the payload is a fraction of the raw HTML. Output is markdown, which keeps headings, lists and code fences intact. Capped at 5 URLs per call and read sequentially with per-host throttling -- this is a
real browser making real requests. A page that cannot be read comes back with |
| google_ai_modeA | Google's AI Mode answer for a query, with the sources it cites. The answer is unreliable. Treat it as a lead, never as a fact. It is hit or miss, it is confidently wrong at the same tone it is right, and it is not authoritative even about Google's own products -- which is the trap, because those are exactly the queries where it reads most credible. Nothing from here should reach a user, a document or a decision without being confirmed against a real source. The Absence is normal. AI Mode is not offered for every query, region or account. When
it is not there you get Slower than a search: the answer streams, and this polls until it stops growing (typically ~4s, capped at 20s). |
| google_multi_searchA | Run several related queries in one call. Prefer this when researching a topic. Google makes you search, read ten results, then search again -- and every separate tool call otherwise pays the browser launch and warm-up again. This amortises that across the whole set. Runs sequentially on purpose: concurrent requests are exactly what Google's anti-bot watches for, so the win here is the shared warm browser, not parallelism. Budget roughly 5-7 seconds per query after the first. One failing query does not sink the call -- failures land in |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/esinecan/google-search-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server