grounder-mcp
Provides web search results from Google, including organic results, people-also-ask, related searches, and knowledge graph snippets.
Grounder MCP
Live web grounding for local and cloud LLMs, as four MCP tools. Every model is frozen at its training cutoff; Grounder gives yours the current web - ranked results, real page content, and a cited evidence pack sized to your context window.
A thin stdio client for the hosted service at https://grounder.dev - no browser, no scraper, nothing heavy runs locally. It runs with no signup on a shared demo key; add your own free key (1,500 pages/month, no card) at grounder.dev for real use.
Install
uvx grounder-mcp # or: pip install grounder-mcpRelated MCP server: Secant Agent Research
Configure
Claude Desktop, Cursor, LM Studio, Continue.dev, or any MCP client. The key is optional - omit it to try Grounder on the shared demo key, or add your own free key from grounder.dev:
{
"mcpServers": {
"grounder": {
"command": "uvx",
"args": ["grounder-mcp"],
"env": { "GROUNDER_API_KEY": "gnd_live_your_key" }
}
}
}The four tools
Tool | What it does |
| Google organic results plus people-also-ask, related searches, and the knowledge graph. The top snippet often already holds the answer. |
| One page as clean markdown, capped to your token budget, plus the final URL after redirects. |
| One search, read across the pages it surfaces, ranked into a token-capped, cited evidence pack. Optional grounded answer. |
| Investigates an open question with no ready-made answer: it plans, reads primary sources, notices what is missing, goes back for it, and reasons to a grounded conclusion. |
Why use it
It fits a small context window. Results come back token-capped, so they slot into an 8-32k local model instead of overflowing it. A few raw pages can be 20,000+ tokens (we measured 22,759 for one query) - enough to make a small model return nothing. You get the relevant passages, not whole pages.
The live page, not a cached copy.
fetchreads the actual current page; any caching is short, timestamped, and force-refreshable.Flat monthly price, billed in pages. You only pay for pages actually delivered. No per-call metering.
No query content stored. Ever.
Pricing
Free: 1,500 pages/month, no card. Starter $9/mo, Pro $19/mo. Full table at https://grounder.dev/pricing.
Available Tools
4 toolsdeep_searchA
Search the web across several pages to answer a question in ONE call: it runs a search, fetches several of the top result pages, ranks passages across all of them, and returns the few verbatim slices most relevant to your question. Use this for a question that needs reading and comparing MULTIPLE pages ("which databases use X and how do they differ", "what do reviewers say about Y") instead of running web_search and then many fetch calls yourself - it does that multi-page reading for you and hands back only what fits your context window. Do NOT use it for a quick fact a single search snippet already answers (use web_search), or to read ONE page whose URL you already have (use fetch). Returns passages (verbatim, ranked, each with its source url) - it returns EVIDENCE, not a written answer: YOU read the passages and compose the answer, and YOU decide whether they actually answer your question (grounder does not judge that - it depends on what you are really asking). If the passages do not contain the answer, say so rather than guessing. If you would rather be handed prose than read the evidence yourself, set include_answer: true and the reply ALSO carries answer - a short answer written from those same passages. The passages still come back either way, so you can check the answer against its own evidence, and the field is omitted rather than guessed at when the passages do not support one. It costs no extra pages. The pack is capped to fit your context window (max_tokens, default 600) so it won't overflow a small local model. Slower than a single fetch (it reads several pages). Costs 1 page per page read (default up to 6).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_tokens | No | ||
| max_fetches | No | ||
| include_answer | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden and excels: it discloses that the tool returns evidence, not a written answer; that the agent must compose and judge the answer; that the 'include_answer' field is optional and omitted when unsupported; and that the pack is capped to fit context and costs per page read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat lengthy but well-structured: it front-loads the core purpose, then covers usage, behavior, and parameters. Each sentence adds value, though it could be tightened by merging a few related points without losing substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is remarkably complete for a complex tool: it covers purpose, usage, alternatives, return behavior, parameter semantics, costs, performance, and limitations. The output schema is mentioned ('Returns `passages`') and the return values are explained, so the agent has all the information needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 0%, the description adds meaning for the non-obvious parameters: it explains max_tokens ('pack is capped to fit your context window'), max_fetches ('Costs 1 page per page read (default up to 6)'), and include_answer ('set include_answer: true and the reply ALSO carries answer'). The required query parameter is self-evident.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search the web across several pages to answer a question in ONE call' and details the multi-step process (search, fetch, rank, return verbatim slices). It explicitly distinguishes itself from siblings by naming web_search and fetch with contrasting use cases, making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use and when-not-to-use guidance with concrete examples: 'Use this for a question that needs reading and comparing MULTIPLE pages' and 'Do NOT use it for a quick fact a single search snippet already answers (use web_search), or to read ONE page whose URL you already have (use fetch).' This is exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchA
Fetch the full, clean content of ONE web page as markdown. Use this to READ a result you got from web_search when the snippet isn't enough and you need the page's actual text - exact pricing, full docs, the complete article. Check the search snippet first: for many factual questions it already contains the answer, and a fetch costs a page. The url MUST be one a recent search in this session returned: fetch reads your grounded sources, it is not a general-purpose scraper for arbitrary URLs. Returns clean markdown in content (set clean=false for raw HTML), plus the page's title, its description, and the FINAL url after redirects - cite that one. Pass query (what you want from the page) to also get passages: the few most-relevant verbatim slices, so a tight context window can read those instead of the whole page. This call is synchronous - it returns the content or an honest failure, and you never poll. A page we could not really read is reported as a failure, NEVER as content, so you will not be handed a bot-wall or a consent screen to summarise. Costs 1 page per successful call; a failed fetch is free.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| clean | No | ||
| query | No | ||
| max_tokens | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: synchronous call, no polling, failure reported honestly rather than fabricating content, bot-walls and consent screens reported as failures, and the cost model (1 page per success, free on failure). This is unusually transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, then flows into usage guidance, parameter clarification, and failure semantics. Every sentence adds operational value and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description adds essential context: return fields (content, title, description, final url), passage retrieval via query, grounding constraints, failure behavior, and cost. This is complete for a tool with this complexity and no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics for url (grounded sources), clean (false returns raw HTML), and query (returns relevant passages). However, max_tokens is never mentioned, leaving one parameter unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Fetch the full, clean content of ONE web page as markdown.' It clearly frames this as reading a search result when the snippet is insufficient, which distinguishes it from siblings like web_search and deep_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: check the search snippet first, use fetch when the snippet isn't enough, and the URL must come from a recent search in the session. It also explicitly states what the tool is not ('not a general-purpose scraper'), giving a clear boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
researchA
INVESTIGATE an open question that has no ready-made answer sitting on any single page - the kind you would hand to a research analyst, not look up. The model DRIVES an iterative loop: it plans what to find, searches, reads the best PRIMARY sources, notices what is STILL missing, searches again, and reasons to a GROUNDED conclusion - or reports honestly that the web does not support one. Reach for it when the answer must be WORKED OUT, not retrieved: open/analytical ("is RAG becoming obsolete as context windows grow to millions of tokens?"), contested ("have LLM scaling laws hit diminishing returns, and why?"), or multi-part where the answer is spread across sources one search will not all surface ("how do Tavily, Exa and Firecrawl differ on pricing AND what each returns"). deep_search reads what ONE search surfaced; research works out what to search for at all and synthesizes an answer no single page states. Do NOT use it for a quick fact (web_search), a known page (fetch), or a question one search settles (deep_search) - it is slower and spends one of a small monthly allowance. It runs for a MINUTE OR MORE and is delivered by polling: if the reply is {"state": "researching"}, the work is still going - call again with the SAME query until you get the report (the MCP client does this for you automatically). Returns a cited evidence pack (passages with source urls) and, by default, a grounded answer written ONLY from those passages - never invented - that also names what the sources do not cover. Billed as ONE research run against your plan's monthly allowance, ONLY when it completes; polling is free.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_tokens | No | ||
| include_answer | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden and does so richly. It explains the iterative loop, polling behavior with the exact `{"state": "researching"}` reply, billing semantics ('Billed as ONE research run... ONLY when it completes; polling is free'), grounding constraints ('written ONLY from those passages - never invented'), and that the answer names coverage gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but information-dense, with the core purpose front-loaded and alternative tools explicitly excluded. Each sentence adds meaningful operational or selection detail, though the length could be trimmed slightly without losing critical content; it does not waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex, multi-phase research tool with no annotations and a high-stakes polling/billing model. The description covers the full workflow, return shape ('cited evidence pack (`passages` with source urls)' and 'grounded `answer`'), polling contract, billing rules, and honesty about unsupported conclusions. The presence of an output schema means return-values don't need full enumeration, but the description goes well beyond minimum.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage, so the description must compensate. It provides strong semantics for the query parameter (the kind of question to investigate) and indirectly covers include_answer by mentioning 'by default, a grounded answer.' However, max_tokens is never explained in the description, and the schema itself only provides a title and default, leaving this parameter's purpose ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a strong verb and resource: 'INVESTIGATE an open question that has no ready-made answer sitting on any single page.' It clearly distinguishes itself from siblings by contrasting with deep_search, web_search, and fetch, emphasizing that it synthesizes across multiple sources rather than retrieving one result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance with concrete examples (open/analytical, contested, multi-part) and explicit when-not-to-use instructions ('Do NOT use it for a quick fact (web_search), a known page (fetch), or a question one search settles (deep_search)'). It also mentions cost and latency trade-offs, helping the agent select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_searchA
Search Google and return the organic results - title, URL, snippet, domain, publication date - plus the surfaces around them: people_also_ask (related questions, often with a factual snippet), related_searches (reformulations), knowledge_graph (entity panel), and per-result sitelinks. READ THE SNIPPETS BEFORE FETCHING: for factual questions Google's snippet frequently states the answer outright (a pricing query returns the price), so you can often cite a source without spending a fetch. Use fetch when you need the full page, and deep_search when one page will not settle it. Returns up to 10 results. Costs 1 page.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| region | No | us |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses cost ('Costs 1 page'), result count ('Returns up to 10 results'), and a key behavioral nuance (snippets often contain the answer). This goes above and beyond typical descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense yet concise. Every sentence contributes value: it lists return fields, surfaces, usage guidance, result limits, and cost. The structure flows logically from core function to operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with an output schema, the description is highly complete. It covers what is returned, the surrounding surfaces, when to use alternatives, result caps, and cost. The only gap is the region parameter, but that is a minor omission given the overall richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate for parameter meaning. The query parameter is implied but never explicitly described, and the region parameter is completely absent. This leaves the agent guessing about the region format and effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Google and returns organic results with specific fields (title, URL, snippet, etc.), and distinguishes itself from siblings by mentioning fetch and deep_search. The verb-resource combination is precise and the scope is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly guides when to use this tool vs alternatives: 'Use `fetch` when you need the full page, and `deep_search` when one page will not settle it.' Also advises reading snippets before fetching, providing clear decision rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v1.0.0- First observed
deep_search - First observed
fetch - First observed
research - First observed
web_search
TDQS
Each tool has a clearly distinct role: web_search for quick snippet-level queries, fetch for reading one known page, deep_search for one-shot multi-page synthesis, and research for iterative open-ended investigation. The descriptions explicitly delineate when to use each and when not to, removing ambiguity.
All names use lowercase snake_case and are action-oriented (web_search, fetch, deep_search, research). The pattern is consistent in style, though not strictly verb_noun; deep_search and web_search are compound nouns/adjective-verb combos, while fetch and research are single verbs.
Four tools is well-scoped for a search/grounding server, each covering a distinct level of depth (search, fetch, multi-page, iterative research). No tool feels redundant or missing; the count is appropriate for the purpose.
The set covers the full spectrum of grounding needs: quick fact lookup, page reading, multi-source synthesis, and open-ended research. There are no obvious gaps—each tool builds on the others, and the progression from web_search to research is complete.
Maintenance
Related MCP Connectors
Live AI-native web search with citations. One tool for every MCP client. Flat per-request pricing.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.
LLM-ready web search + instant answers + URL-to-clean-text fetch for agents and RAG.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides comprehensive search capabilities including web search, content extraction, news search, academic search, and AI-powered multi-source research. Enables natural language access to web content and research through a production-ready MCP server.-
- AlicenseAqualityCmaintenancePaid web research MCP tools for autonomous agents: search, page extraction, citations, and diff monitoring through a live x402 API. Unpaid calls return the Base USDC payment requirement so agents can pay and retry safely.41MIT
- AlicenseAqualityBmaintenanceProvides local-first web intelligence over MCP with tools for search, fetch, crawl, extract, cache, find-similar, research, and autonomous agent loops, requiring no API keys.101,2845,068AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceMCP server enabling local-first web search, fetch, extract, and caching with citeable excerpts, no API key required. Supports research workflows for agents and apps.18MIT
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/rozetyp/grounder-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server