Agent Search MCP
概览
作者提供的说明(英文原文)
Free-first Chinese and English web search MCP using zero-key sources and inspectable evidence.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i1 项中通过 1 项依据公开信息检查;尚未扫描代码
- 使用情况i非常新↓ 166/周 · ★ –
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 在你的电脑上运行
- 传输方式: stdio
- 分类: 搜索与 AI 记忆
- 你需要填写:BRAVE_API_KEY, TAVILY_API_KEY, EXA_API_KEY, YDC_API_KEY, TENCENT_WSA_API_KEY, BOCHA_API_KEY, SERPER_API_KEY
安装
选择你使用的 AI 应用,然后复制设置。
安装之前
- 基础检查:1 项中通过 1 项
- 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
- 需要你自己填写:
BRAVE_API_KEY,TAVILY_API_KEY,EXA_API_KEY,YDC_API_KEY,TENCENT_WSA_API_KEY,BOCHA_API_KEY,SERPER_API_KEY,SEARCH_PROVIDER_MODE,PAID_ENGINE_ORDER
标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
- npm已安装 Node.js(用于 npx 命令)
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"agent-search": {
"command": "npx",
"args": [
"-y",
"agent-search-mcp"
],
"env": {
"BRAVE_API_KEY": "your-value",
"TAVILY_API_KEY": "your-value",
"EXA_API_KEY": "your-value",
"YDC_API_KEY": "your-value",
"TENCENT_WSA_API_KEY": "your-value",
"BOCHA_API_KEY": "your-value",
"SERPER_API_KEY": "your-value",
"SEARCH_PROVIDER_MODE": "your-value",
"PAID_ENGINE_ORDER": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add agent-search --env BRAVE_API_KEY=your-value --env TAVILY_API_KEY=your-value --env EXA_API_KEY=your-value --env YDC_API_KEY=your-value --env TENCENT_WSA_API_KEY=your-value --env BOCHA_API_KEY=your-value --env SERPER_API_KEY=your-value --env SEARCH_PROVIDER_MODE=your-value --env PAID_ENGINE_ORDER=your-value -- npx -y agent-search-mcp运行前请先填写空着的值。
或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"agent-search": {
"command": "npx",
"args": [
"-y",
"agent-search-mcp"
],
"env": {
"BRAVE_API_KEY": "your-value",
"TAVILY_API_KEY": "your-value",
"EXA_API_KEY": "your-value",
"YDC_API_KEY": "your-value",
"TENCENT_WSA_API_KEY": "your-value",
"BOCHA_API_KEY": "your-value",
"SERPER_API_KEY": "your-value",
"SEARCH_PROVIDER_MODE": "your-value",
"PAID_ENGINE_ORDER": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"agent-search": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"agent-search-mcp"
],
"env": {
"BRAVE_API_KEY": "your-value",
"TAVILY_API_KEY": "your-value",
"EXA_API_KEY": "your-value",
"YDC_API_KEY": "your-value",
"TENCENT_WSA_API_KEY": "your-value",
"BOCHA_API_KEY": "your-value",
"SERPER_API_KEY": "your-value",
"SEARCH_PROVIDER_MODE": "your-value",
"PAID_ENGINE_ORDER": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
需要你填写的值
- Brave Search API key (optional, enables Brave engine)
- Tavily Search API key (optional, enables Tavily engine)
- Exa Search API key (optional, enables Exa engine)
- You.com Search API key (optional, enables You.com engine)
- Tencent Web Search API key (optional, enables Tencent WSA engine)
- Bocha Web Search API key (optional, enables Bocha engine)
- Serper API key (optional, enables Google SERP search)
SEARCH_PROVIDER_MODEenvProvider policy: free_first, quality_escalation, paid_first, or free_onlyPAID_ENGINE_ORDERenvComma-separated optional-provider preference order
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它能做什么
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
基础检查i
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 lennney 验证,该账户拥有此仓库
- … 尚未检查
仍在维护
我们还没有从 GitHub 读取这个仓库
- … 尚未检查
有许可证
我们还没有从 GitHub 读取这个仓库
- – 不适用
端点有响应
它在你的电脑上运行,没有互联网端点
- – 不适用
使用 OAuth 登录
在你的电脑上运行,改用本地设置
- … 尚未检查
工具描述中没有隐藏指令
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与“搜索与 AI 记忆”中的其他服务器比较i
- 星标数多于此分类中其他 5688 个服务器的 0%
- 发布到注册中心的时间比此分类中其他 5688 个服务器的 30% 更新
- 基础检查结果等于或优于此分类中其他 5688 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
Agent Search MCP 安全吗?
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
你需要填写:BRAVE_API_KEY, TAVILY_API_KEY, EXA_API_KEY, YDC_API_KEY, TENCENT_WSA_API_KEY, BOCHA_API_KEY, SERPER_API_KEY
它在我的电脑上运行还是在云端?
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
它还在维护吗?
GitHub 仓库最后更新于–,最新版本(3.2.1)于3个月前进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
有什么可以替代它?
同一分类中有:Context7, Codebase Memory, Exa
替代选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者的 README
打开 README
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Agent Search MCP: Free-first Web Search with Inspectable Evidence
A Node.js MCP server and CLI for English and Chinese web search.
Agent Search MCP starts without an API key. It returns compact multi-source evidence, records provider failures, and bounds work with request and evidence budgets. Paid providers run only when policy and credentials allow.
中文文档 · Product page · Benchmarks · Architecture · CHANGELOG
Install
npx -y agent-search-mcp
Requires Node.js >= 18.17. The default runtime does not require a browser, database, Python, or a search API account.
Connect an MCP client
Use this stdio configuration in MCP clients that accept mcpServers JSON, including Claude Desktop, Cursor, VS Code, and Windsurf:
{
"mcpServers": { "agent-search": { "command": "npx", "args": ["-y", "agent-search-mcp"] } } }
Claude Code and Codex can register the same npx -y agent-search-mcp stdio command through their MCP settings.
Add the optional Agent Skill
After connecting the MCP server, Agent Skills-compatible clients can install the repository-owned routing guide:
npx skills add lennney/agent-search-mcp --skill agent-search
Invoke it with a request such as Use $agent-search to verify this claim with official sources. The Agent Search Skill chooses one of four bounded paths: quick discovery, stricter verification, Chinese-source search, or extraction of a selected URL. It checks that the needed MCP tool exists and asks before any install or configuration change. Installing the Skill does not start or configure the MCP server.
Example: inspect a bounded search result
After building the local package, run a CLI query without adding a provider key:
npm run build
fasm search "MCP server without an API key" --json
The response contract keeps result evidence, meta.execution, and partialFailures separate. A provider timeout or challenge remains visible to the agent instead of being converted into an unexplained empty result. This is a contract example, not a live availability or search-quality benchmark.
After a global install, check the local runtime without making a search request:
npm install -g agent-search-mcp
fasm doctor
Why Agent Search MCP
| Need | Product behavior |
|---|---|
| Free web search | Zero-key sources work without an API account |
| Provider cost control | Paid providers run only under an explicit routing policy |
| Token cost control | Compact output and one evidence budget bound response size |
| Multi-source evidence | Results retain provenance, relevance, provider-family count, and partial failures |
| Chinese web search | Sogou and Baidu handle Chinese queries without a translation layer |
| Lightweight self-hosting | Pure Node.js runtime with stdio, Streamable HTTP, and CLI access |
The difference from a plain multi-engine wrapper
| Plain multi-engine aggregation | Agent Search MCP |
|---|---|
| Returns N deduplicated results | Returns results plus the number of independent sources (provider families, not adapter names) |
| A provider failure quietly drops some results | Every failure stays in partialFailures (timeout, rate limit, challenge, permission, budget) |
| Stops when the result count looks sufficient | Stops only after a quality gate (count, relevance, confidence, source coverage) and returns the stop_reason |
| Fixed-size output | One shared evidence budget bounds response tokens; compact text keeps provenance |
| One adapter counts as one source | The same upstream through several adapters never inflates source_count |
The one-minute offline demo replays these differences through the production evidence scorer and formatter:
Inspect the search evidence
Each JSON response includes one Search Evidence Packet. It answers the routing questions an agent needs before it uses a result:
| Question | Response field |
|---|---|
| Which adapters ran? | meta.execution.searched_engines |
| Why did the router stop? | meta.execution.stop_reason and meta.execution.quality_gate |
| Did the request hit a work limit? | meta.execution.budget |
| Was evidence truncated? | meta.evidence_budget |
| Did an upstream provider fail? | partialFailures |
| Do multiple adapters represent independent sources? | results[].source_count counts provider families, not adapter names |
Run the one-minute offline contract demo:
npm run demo:evidence
npm run demo:evidence -- --json
It replays three synthetic scenarios through the production evidence scorer, formatter, and MCP output helper: same-family adapter overlap, visible fallback failure, and a bounded quality-gate stop. It makes no live availability or search-quality claim and performs no network request.
The default free_first policy never spends a configured API credential. free_only blocks paid providers. quality_escalation can call one configured paid provider after free evidence misses the quality gate, while paid_first tries that provider before the free fallback.
Request budgets cap adapter attempts, elapsed time, and admitted results. The evidence budget caps query-relevant passages across the complete response. Compact mode keeps full detail for the first results and reduces later entries to source-preserving references.
Measured token reduction
The checked-in bilingual fixture measures formatting with a locked tokenizer:
| Output | Average tokens per query | Savings vs normal |
|---|---|---|
| Normal | 2396.0 | |
| Compact | 1650.1 | 31.1% |
| Compact+ | 1633.0 | 31.8% |
This fixture verifies output formatting and evidence-packet behavior. It does not measure live engine availability or search quality. See the benchmark method and limitations.
How the search router works
flowchart LR
A["AI agent"] --> M["MCP search tools"] M --> P["Provider and request policy"] P --> F["Zero-key sources"] P --> O["Optional paid provider"] F --> E["Deduplicate, rank, and preserve failures"] O --> E E --> B["Evidence and token budget"] B --> R["Compact multi-source result"]
The router evaluates each search batch against separate result, relevance, confidence, and provider-family gates. It stops after the evidence passes those gates and exposes the decision in meta.execution. Provider failures stay visible in partialFailures, so an empty result cannot hide an upstream error.
The competitive landscape (2026-08-07) maps the crowded baseline and the product gaps. It records source dates and fixed commits for facts that can change. The 2026-08-10 update adds competitor activity since then: direct local competitors are dormant, and token-efficient evidence is becoming an industry-explicit lever. The earlier source-level product comparison contains the architecture-specific evidence.
Engines
The runtime registers 17 adapters: 9 zero-key adapters and 8 optional API adapters.
| Engine | Access | Languages | Role |
|---|---|---|---|
| DuckDuckGo | Zero-key | en | General Web Search |
| Sogou Search | Zero-key | zh | Chinese Web Search |
| Bing | Zero-key | en, zh | Multilingual Web Search |
| Baidu | Zero-key | zh | Chinese Web Search |
| Wikipedia | Zero-key | en, zh, ja, de, fr, es, auto | Encyclopedic references |
| Startpage | Zero-key | en, auto | Privacy-oriented Web Search |
| Yandex | Zero-key | ru, en, auto | Russian and international Web Search |
| Mojeek | Zero-key | en, auto | Independent privacy-oriented index |
| Wiby | Zero-key | en | Independent small-Web index |
| Brave Search | BRAVE_API_KEY | en, zh | Optional commercial Web Search |
| Tavily Search | TAVILY_API_KEY | en, zh | Optional agent-oriented Search |
| Exa Search | EXA_API_KEY | en, zh | Optional neural Search |
| Keenable Search | KEENABLE_API_KEY | en, auto | Optional independent agent-oriented Search |
| You.com Search | YDC_API_KEY | en, zh | Optional commercial Web Search |
| Tencent Web Search API | TENCENT_WSA_API_KEY | zh | Optional official Chinese Web Search |
| Bocha Web Search | BOCHA_API_KEY | zh, en | Optional Chinese-first AI Search |
| Serper Google Search | SERPER_API_KEY | en, zh, auto | Optional Google SERP Search |
Tools
| Tool | Description | Best for |
|---|---|---|
free_search | Multi-engine Web Search with bounded fallback | Quick facts and general discovery |
free_search_advanced | Filtered waterfall search and optional enrichment | Domain policy and progressive verification |
free_extract | Extract a URL as clean Markdown | Reading complete source pages |
fetch_github_readme | Fetch a public GitHub repository README | Project documentation |
fetch_csdn_article | Fetch a CSDN article | Chinese technical articles |
fetch_juejin_article | Fetch a Juejin article | Chinese developer articles |
search_with_synthesis | Search evidence with an LLM synthesis hint | Agent-authored answers from cited evidence |
Capability controls
| Environment | Default | Purpose |
|---|---|---|
ENABLED_TOOLS / DISABLED_TOOLS | all / none | Tool registration allowlist and denylist; deny wins |
ALLOWED_ENGINES / DENIED_ENGINES | all / none | Engine execution allowlist and denylist; deny wins |
SEARCH_PROVIDER_MODE | free_first | Default routing: free_first, quality_escalation, paid_first, or free_only |
PAID_ENGINE_ORDER | brave,exa,tavily,keenable,youcom,tencent_wsa,bocha,serper | Selects the first configured optional provider; not a quality claim |
SEARCH_BUDGET_MAX_CALLS | 16 | Adapter-attempt budget |
SEARCH_BUDGET_MAX_ELAPSED_MS | 30000 | End-to-end elapsed-time budget |
SEARCH_BUDGET_MAX_RESULTS | 100 | Admitted raw-result budget |
EVIDENCE_BUDGET_CHARS | 1200 | Evidence-character budget |
search_with_synthesis uses the same canonical structuredContent evidence packet as the primary search tools and adds prompt_hint; its text content is only a compact compatibility view. Execution metadata distinguishes scheduled adapters from retry-inclusive adapter attempts. http_requests is null until all adapter transports can report it without false precision.
Wiby is a genuine zero-key source backed by its official JSON API and is used late in the free waterfall as an independent small-Web supplement. Optional providers require user credentials; any signup credit or trial quota is provider-controlled and is not treated as permanent free access.
All tools are read-only and idempotent. Search cancellation reaches rate-limit waits, retries, provider requests, and optional enrichment. Enrichment can improve a snippet but cannot increase source confidence or independent source count.
free_search_advanced.time_range rem
只显示了开头部分;其余内容请在仓库中阅读