Are you the author? Sign in to claim
Zero-key MCP web search for AI agents: native Chinese sources, multi-engine aggregation, optional commercial backends, n
Free, token-efficient web search for AI agents. Start with eight zero-key sources. Spend less context through waterfall stopping and compact output. Route Chinese queries natively and escalate to optional commercial APIs only when needed.
npx agent-search-mcpis all you need.
中文文档 · Benchmarks · CHANGELOG
The immediate value is simple: search without paying for an API, and return fewer tokens without blindly throwing away evidence. The mechanism behind that promise is a search policy for where to search, when to stop, how much context to spend, and what evidence to trust. Agent Search MCP is that control layer: a local-first search router, not another single-backend search API.
The route is deliberate: zero-key start → Chinese-native routing → inspectable multi-source evidence → token-aware progressive search → optional commercial escalation. The 12 adapters serve this route; adapter count is not the product story by itself.
| Agent Search MCP | Tavily | Exa | Brave | |
|---|---|---|---|---|
| Search without account/API key | Yes | No | No | No |
| Search backends | 8 zero-key + 4 optional APIs | Tavily API | Exa index | Brave index |
| Cross-engine aggregation | Yes | Single upstream | Single upstream | Single upstream |
| Dedicated Chinese engines | Sogou + Baidu | No | No | No |
| Local MCP server | Yes | Yes | Yes | Yes |
| Best fit | Zero-key, multilingual verification | Hosted search/extract/map/crawl | Semantic, code, and company research | Independent index + vertical search |
Comparison last checked 2026-07-25 against the linked official repositories. Commercial services have useful free allowances, but still require an account or credential; pricing changes, so this table intentionally avoids monthly-price claims.
Eight adapters need no credentials — DuckDuckGo, Sogou, Bing, Baidu, Wikipedia, Startpage, Yandex, and Mojeek. Brave, Tavily, Exa, and You.com remain optional when you want their APIs.
Parallel and waterfall orchestration, URL/title deduplication, ranking, and graceful fallback are built in. Compact mode supports progressive disclosure so agents can inspect the top results first and call free_extract only when deeper content is needed.
OUTPUT_STYLE=compact, MAX_FULL_RESULTS, SNIPPET_LENGTH, MIN_CONFIDENCE, and MIN_SOURCE_COUNT let operators trade context size against detail. A historical 30-query live run measured 28.7% fewer tokens in Compact mode, 35.5% in Compact+, and 75% fewer engine calls than naive eight-engine fan-out. These are scoped measurements for that query set and environment, not universal guarantees. The new frozen-fixture replay uses an in-process tokenizer and currently measures 30.2% / 33.9% formatting savings reproducibly.
Sogou + Baidu search the Chinese web directly — WeChat content, Baidu Baike, Chinese forums. Not a translation layer, not an afterthought.
# One command — no install, no API keys
npx agent-search-mcp
Requires Node.js >= 18.
{
"mcpServers": {
"agent-search": {
"command": "npx",
"args": ["-y", "agent-search-mcp"]
}
}
}
{
"mcpServers": {
"agent-search": {
"command": "npx",
"args": ["-y", "agent-search-mcp"]
}
}
}
{
"mcpServers": {
"agent-search": {
"command": "npx",
"args": ["-y", "agent-search-mcp"]
}
}
}
mcp_servers:
agent-search:
command: npx
args: ["-y", "agent-search-mcp"]
The package contains 12 engine adapters, all selectable through free_search, free_search_advanced, the CLI, and waterfall routing. Eight work without credentials; Brave, Tavily, Exa, and You.com are enabled when their API keys are present.
| Engine | Free | Strengths |
|---|---|---|
| DuckDuckGo | ✅ | Privacy-focused, English web |
| Sogou | ✅ | Chinese web search, WeChat content |
| Bing | ✅ | Multilingual, strong English results |
| Baidu | ✅ | Chinese web search, Baidu Baike |
| Wikipedia | ✅ | Clean JSON API, structured knowledge |
| Startpage | ✅ | Google results via privacy proxy |
| Yandex | ✅ | Russian/Cyrillic web search |
| Mojeek | ✅ | Independent crawler, privacy-focused |
| Brave Search | ❌ | High-quality web results (2K free/month) |
| Tavily | ❌ | Agent-optimized search (1K free/month) |
| Exa | ❌ | Neural semantic search (1K free/month) |
| You.com | ❌ | AI-powered search ($5/1K, free credits available) |
| Tool | Description | Best For |
|---|---|---|
free_search | Multi-engine search with auto-fallback | Quick fact-finding |
free_search_advanced | Filtered search with waterfall, domain filtering, enrichment | High-confidence results, date ranges |
free_search_news | News search across DDG News + Bing News | Recent news, current events |
search_with_synthesis | Deep search with prompt hint for LLM synthesis | Complex queries needing verification |
free_extract | Extract full page content as Markdown | Reading a page from search results |
fetch_github_readme | Fetch README from a GitHub repo | Project documentation |
fetch_csdn_article | Fetch content from CSDN | Chinese developer articles |
fetch_juejin_article | Fetch content from Juejin | Chinese developer articles |
All tools are read-only and idempotent with MCP 2025 annotations.
| Variable | Default | Description |
|---|---|---|
BRAVE_API_KEY | — | Brave Search API key |
TAVILY_API_KEY | — | Tavily API key |
EXA_API_KEY | — | Exa API key |
YDC_API_KEY | — | You.com API key |
LOG_LEVEL | info | info or debug |
MODE | stdio | Transport: stdio, http, or both |
PORT | 3000 | HTTP server port (when MODE=http or both) |
OUTPUT_STYLE | normal | compact for token-optimized output |
SNIPPET_LENGTH | 200 | Max snippet characters (60–500) |
MAX_FULL_RESULTS | 3 | Full results before compacting (compact mode) |
MIN_CONFIDENCE | 0 | Confidence threshold filter (0.0–1.0); legacy values 2–3 map to source count |
MIN_SOURCE_COUNT | 1 | Minimum number of independent engine sources (1–12) |
HTTP_AUTH_TOKEN | — | Bearer token required by HTTP mode |
HTTP_ALLOW_UNAUTHENTICATED | false | Explicitly opt out of HTTP authentication (trusted local networks only) |
ALLOWED_ORIGINS | — | Comma-separated browser origins allowed to call HTTP endpoints |
SEMANTIC_DEDUP | false | Semantic dedup via Model2Vec (requires pip install model2vec) |
DEDUP_THRESHOLD | 0.85 | Cosine similarity threshold for semantic dedup |
SEMANTIC_RERANK | false | Semantic rerank via Model2Vec |
RERANK_TOP_K | 5 | Results to keep after semantic rerank |
Zero config works — the 8 free engines need no API keys.
# Only specific tools
ENABLED_TOOLS=free_search,free_search_advanced,free_search_news
# Disable specific tools
DISABLED_TOOLS=free_extract,fetch_github_readme
DISABLED_TOOLS takes priority over ENABLED_TOOLS.
HTTP mode is secure-by-default: /mcp requires Authorization: Bearer <token>, and browser requests with an Origin header must match ALLOWED_ORIGINS. Keep /health available for probes, terminate TLS at a trusted reverse proxy, and rotate the token as a secret. See the HTTP deployment guide.
ALLOWED_ENGINES=sogou,baidu # Chinese-only
DENIED_ENGINES=yandex,mojeek # Exclude specific engines
agent-search-mcp ships with a standalone CLI (fasm).
# Search
fasm search "TypeScript MCP server"
fasm search "query" --count 5 --engines bing,baidu,youcom --json
# Extract
fasm extract "https://example.com"
fasm extract "https://example.com" --json
# HTTP server (Bearer auth is required for MCP HTTP mode)
HTTP_AUTH_TOKEN=change-me MODE=http npx agent-search-mcp
The benchmark has two evidence tracks. The historical 2026-07-24 live run covers 30 EN/ZH queries and measured 28.7% Compact, 35.5% Compact+, and 75% fewer calls versus naive eight-engine fan-out. Its raw responses were not frozen, so those figures remain historical environment-scoped measurements. The current runner captures actual execution telemetry and replays a frozen fixture through every output style with locked gpt-tokenizer; CI verifies the expected summary (currently 30.2% / 33.9%). Neither track is a cross-product quality ranking or a production guarantee.
→ Methodology, queries, limitations, and reports
🛡️ mcp-slim-guard — Add security + compression to your MCP stack
npm install -g mcp-slim-guard
mcp-slim-guard init
mcp-slim-guard start
AI Agent → mcp-slim-guard (security + compression) → agent-search-mcp
| Feature | Benefit |
|---|---|
| Schema compression | Reclaim ~83% of context window — 1,736 → 300 tokens |
| Tool allow/deny | Glob-based whitelist/blacklist for tool access control |
| SSRF protection | IP blacklist + domain whitelist blocks internal network requests |
| Injection detection | 17 heuristic patterns prevent prompt/shell/SQL injection |
| Rate limiting | Token bucket per-tool, default 60 req/min |
| Audit logging | Structured JSON audit log with rotation + gzip |
git clone https://github.com/lennney/agent-search-mcp.git
cd agent-search-mcp
npm install
npm run build
npm test
npm run dev # stdio mode
npm run dev:http # HTTP mode (port 3000)
The build helper is cross-platform; CI checks Node.js 18/20/22 on Linux and performs a Windows build smoke test.
Based on open-websearch by Aas-ee.
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows