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 |
Capabilities
Features and capabilities supported by this server
| 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