streamable-httpMITupdated 2mo ago
Give your AI agent web search across 6 engines through one MCP search tool. Hosted. Routed. Cached.
What can you do with web search?
Give your AI agent web search across 6 engines through one MCP
searchtool. Hosted. Routed. Cached.
Why GroundRoute
- One tool, six engines. Serper, Brave, Exa, Tavily, Firecrawl, Perplexity, behind a single
searchcall. Stop wiring up six APIs, six SDKs, six billing portals. - Never more than going direct. Gain-share pricing: you keep ~half of every cache saving, GroundRoute keeps ~half. On a miss, you just pay the engine. BYOK supported.
- Routing, caching, failover, on by default. Each query goes to the cheapest engine that clears a quality bar. Repeats serve from cache. If an engine degrades, we fall back automatically. No agent code changes.
See it work (5 seconds)
A call to the search tool:
{
"name": "search",
"arguments": { "query": "what is RAGflow", "max_results": 3 }
}
The response (trimmed):
{
"results": [
{
"url": "https://ragflow.io/docs/",
"title": "Quickstart - RAGFlow",
"snippet": "RAGFlow is an open-source RAG engine based on deep document understanding...",
"source_engine": "serper"
},
{
"url": "https://github.com/infiniflow/ragflow",
"title": "RAGFlow is a leading open-source Retrieval-Augmented Generation engine",
"snippet": "RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine...",
"source_engine": "serper"
}
],
"meta": {
"request_id": "req_abc123",
"cache_tier": "miss",
"degraded": false,
"cost_usd": 0.0021
}
}
source_engine tells you which engine answered. meta exposes the cache tier and billed cost per call.
Benchmarked, not just shipped
We ran 170 real agent queries across all 6 engines, judged by an LLM, to map cost vs. quality per query class. Full methodology and per-engine results: State of AI Search.
Install
The hosted endpoint is https://api.groundroute.ai/mcp (streamable-HTTP). Get an API key at groundroute.ai/keys.
Claude Desktop / Claude Code, add to your MCP config:
{
"mcpServers": {
"groundroute": {
"type": "http",
"url": "https://api.groundroute.ai/mcp",
"headers": { "Authorization": "Bearer gr_YOUR_KEY" }
}
}
}
Cursor, ~/.cursor/mcp.json:
{ "mcpServers": { "groundroute": { "url": "https://api.groundroute.ai/mcp",
"headers": { "Authorization": "Bearer gr_YOUR_KEY" } } } }
VS Code (native MCP / Continue), .vscode/mcp.json:
{ "servers": { "groundroute": { "type": "http", "url": "https://api.groundroute.ai/mcp",
"headers": { "Authorization": "Bearer gr_YOUR_KEY" } } } }
Local / stdio-only clients, bridge stdio to HTTP with mcp-remote:
{ "mcpServers": { "groundroute": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.groundroute.ai/mcp", "--header", "Authorization:Bearer gr_YOUR_KEY"]
} } }
Run this repo's stdio server (optional)
This repo also ships a small native stdio MCP server (server.py) that forwards to the hosted API, useful for stdio-only clients or containerized runs.
pip install -r requirements.txt
GROUNDROUTE_API_KEY=gr_YOUR_KEY python server.py
Or with Docker:
docker build -t groundroute-mcp .
docker run -i -e GROUNDROUTE_API_KEY=gr_YOUR_KEY groundroute-mcp
Introspection (tool discovery) works with no key; running a search requires GROUNDROUTE_API_KEY (get one at https://groundroute.ai/keys).
The search tool
| Param | Type | Notes |
|---|---|---|
query |
string | required |
mode |
enum | auto (default), web, news, academic, answer, page |
max_results |
integer | default 10, max 50 |
freshness |
enum | fresh, semi, static; omit to auto-detect |
domains |
string[] | include-only domain filter, e.g. ["arxiv.org"] |
lang |
string | ISO 639-1 language code, e.g. en |
country |
string | ISO 3166-1 alpha-2 country code, e.g. us |
Returns a structured result: ranked results (url / title / snippet / content / source_engine / published_at), an optional synthesized answer with citations (answer mode), and meta (request_id / cache_tier / degraded / cost_usd). Routed, cached, and reliable.
How it works
One endpoint in front of many search engines, with price-led routing, caching, failover, and usage governance. See the docs and the State of AI Search benchmark (170 real agent queries across all 6 engines).
Links
- Homepage: https://groundroute.ai
- Get a key: https://groundroute.ai/keys
- Playground (try without installing): https://groundroute.ai/playground
- Docs: https://groundroute.ai/docs/mcp-server
registry-manifest.json in this repo is the listing manifest for MCP registries.
Install
Add web search to your client. Pick the one you use.
claude mcp add --transport http web-search https://api.groundroute.ai/mcpcodex mcp add web-search --url https://api.groundroute.ai/mcp{
"mcpServers": {
"web-search": {
"url": "https://api.groundroute.ai/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"web-search": {
"type": "http",
"url": "https://api.groundroute.ai/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"web-search": {
"url": "https://api.groundroute.ai/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"web-search": {
"serverUrl": "https://api.groundroute.ai/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance16/25
- Trust16/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 74 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.0Latest | Jun 14, 2026 |