mcpField
A
Agent Search mcp

Agent Search mcp

本地服务
github.com/lennney搜索与检索1116 周前更新

关于 Agent Search mcp

Agent Search MCP 是一个 Node.js 实现的 MCP 服务与命令行工具,支持中英文网页搜索,无需 API 密钥即可启动。它返回带来源的多源证据,并记录提供方失败与预算限制,适合需要可检查搜索结果的 AI Agent。

主要功能

  1. 018 个免费搜索引擎
  2. 02瀑布式渐进搜索
  3. 03多来源证据与来源家族计数
  4. 04失败信息保留在 partialFailures
  5. 05可选付费提供方,按策略调用

适用场景

  1. 01为 AI Agent 提供无密钥的快速网页搜索
  2. 02核实声明时优先使用官方来源
  3. 03检索中文网页内容(搜狗、百度)

MCP 相关

该项目作为 MCP 服务运行,向 MCP 客户端提供 free_search、free_extract 等搜索与页面提取工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"agent-search-dc1371": {
"command": "npx",
"args": [
"-y",
"agent-search-mcp"
],
"env": {
"BRAVE_API_KEY": "<BRAVE_API_KEY>",
"TAVILY_API_KEY": "<TAVILY_API_KEY>",
"EXA_API_KEY": "<EXA_API_KEY>",
"YDC_API_KEY": "<YDC_API_KEY>",
"TENCENT_WSA_API_KEY": "<TENCENT_WSA_API_KEY>",
"BOCHA_API_KEY": "<BOCHA_API_KEY>",
"SERPER_API_KEY": "<SERPER_API_KEY>",
"SEARCH_PROVIDER_MODE": "<SEARCH_PROVIDER_MODE>",
"PAID_ENGINE_ORDER": "<PAID_ENGINE_ORDER>"
}
}
}
}
启动命令npx -y agent-search-mcp
需要配置的环境变量
BRAVE_API_KEY密钥Brave Search API key (optional, enables Brave engine)
TAVILY_API_KEY密钥Tavily Search API key (optional, enables Tavily engine)
EXA_API_KEY密钥Exa Search API key (optional, enables Exa engine)
YDC_API_KEY密钥You.com Search API key (optional, enables You.com engine)
TENCENT_WSA_API_KEY密钥Tencent Web Search API key (optional, enables Tencent WSA engine)
BOCHA_API_KEY密钥Bocha Web Search API key (optional, enables Bocha engine)
SERPER_API_KEY密钥Serper API key (optional, enables Google SERP search)
SEARCH_PROVIDER_MODEProvider policy: free_first, quality_escalation, paid_first, or free_only
PAID_ENGINE_ORDERComma-separated optional-provider preference order

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmagent-search-mcp3.2.1

工具

7

收录的工具列表 · 更新于 3 周前

参数类型必填说明
querystring是搜索查询字符串。使用自然语言(例如,"latest AI news 2026")。如需覆盖中文内容,请在 engines 中包含 Sogou 或 Baidu。
limitinteger否要返回的结果数(1-50)。默认值为 10。较高的值会增加 token 用量。
enginesarray否要使用的搜索引擎(默认值:duckduckgo + sogou)。免费引擎无需 API 密钥即可使用。可选 API 引擎需要相应的环境变量凭据。要获取中文结果,请包含 sogou 或 baidu。

详细介绍

Agent Search MCP:优先免费、证据可查的网页搜索

用于英语和中文网页搜索的 Node.js MCP 服务和 CLI。

Agent Search MCP 无需 API 密钥即可启动。它会返回精简的多来源证据、记录提供方故障,并通过请求和证据预算限制工作量。只有在策略和凭据均允许时,才会调用付费提供方。

npm version npm downloads GitHub stars CI License Glama

中文文档 · 产品页面 · 基准测试 · 架构 · 更新日志


安装

npx -y agent-search-mcp

需要 Node.js >= 18.17。默认运行时无需浏览器、数据库、Python 或搜索 API 账户。

连接 MCP 客户端

在接受 mcpServers JSON 的 MCP 客户端中使用此 stdio 配置,包括 Claude Desktop、Cursor、VS Code 和 Windsurf:

{
  "mcpServers": {
    "agent-search": {
      "command": "npx",
      "args": ["-y", "agent-search-mcp"]
    }
  }
}

Claude Code 和 Codex 可以通过各自的 MCP 设置注册相同的 npx -y agent-search-mcp stdio 命令。

添加可选的 Agent Skill

连接 MCP 服务后,兼容 Agent Skills 的客户端可以安装仓库提供的路由指南:

npx skills add lennney/agent-search-mcp --skill agent-search

可使用类似 Use $agent-search to verify this claim with official sources. 的请求调用它。Agent Search Skill 会选择四种有界路径之一:快速发现、更严格的验证、中文来源搜索,或提取指定 URL 的内容。它会检查所需的 MCP 工具是否存在,并在安装或更改配置前征求同意。安装 Skill 不会启动或配置 MCP 服务。

示例:检查有界搜索结果

构建本地软件包后,无需添加提供方密钥即可运行 CLI 查询:

npm run build
fasm search "MCP server without an API key" --json

响应约定将结果证据、meta.execution 和 partialFailures 分开。提供方超时或遇到质询时,Agent 仍能看到相关信息,而不会收到无法解释的空结果。这是约定示例,并非实时可用性或搜索质量基准测试。

全局安装后,无需发起搜索请求即可检查本地运行时:

npm install -g agent-search-mcp
fasm doctor

为什么选择 Agent Search MCP

需求产品行为
免费网页搜索无需 API 账户即可使用无需密钥的来源
提供方成本控制只有在明确的路由策略下才会调用付费提供方
令牌成本控制精简输出和统一的证据预算限制响应大小
多来源证据结果保留来源信息、相关性、提供方系列数量和部分故障
中文网页搜索Sogou 和 Baidu 可直接处理中文查询,无需翻译层
轻量级自托管纯 Node.js 运行时,支持 stdio、Streamable HTTP 和 CLI 访问
与普通多引擎封装的区别
普通多引擎聚合Agent Search MCP
返回 N 条去重结果返回结果以及独立来源的数量(按提供方系列统计,而非适配器名称)
提供方故障时会悄然丢弃部分结果每项故障都会保留在 partialFailures 中(超时、速率限制、质询、权限、预算)
结果数量看起来足够时就停止仅在通过质量门槛(数量、相关性、置信度、来源覆盖率)后停止,并返回 stop_reason
固定大小的输出所有响应令牌共用一个证据预算上限;精简文本会保留来源信息
一个适配器算作一个来源同一上游通过多个适配器提供结果,也不会增加 source_count

一分钟离线演示会通过生产环境的证据评分器和格式化器,重现这些差异:

检查搜索证据

每个 JSON 响应都包含一个 Search Evidence Packet。它会回答 Agent 使用结果前所需的路由问题:

问题响应字段
哪些适配器已运行?meta.execution.searched_engines
路由器为何停止?meta.execution.stop_reason 和 meta.execution.quality_gate
请求是否触及工作限制?meta.execution.budget
证据是否被截断?meta.evidence_budget
上游提供方是否发生故障?partialFailures
多个适配器是否代表独立来源?results[].source_count 按提供方系列统计,而非适配器名称

运行一分钟离线契约演示:

npm run demo:evidence
npm run demo:evidence -- --json

它会通过生产环境的证据评分器、格式化器和 MCP 输出辅助工具,重现三个合成场景:同系列适配器重叠、可见的回退故障,以及受限的质量门槛停止。它不声称实时可用性或搜索质量,也不会发起网络请求。

默认的 free_first 策略绝不会使用已配置的 API 凭据。 free_only 会屏蔽付费提供方。如果免费证据未通过质量门槛, quality_escalation 可以调用一个已配置的付费提供方;而 paid_first 会在回退到免费选项前先尝试该提供方。

请求预算会限制适配器尝试次数、经过的时间和纳入的结果数。 证据预算会限制完整响应中与查询相关的段落数量。 精简模式会保留前几条结果的完整详情,并将后续条目缩减为保留来源信息的引用。

经测量的令牌缩减

仓库中附带的双语测试样例使用锁定的分词器测量格式化结果:

输出每次查询的平均令牌数相较普通模式的节省比例
普通模式2396.0
精简模式1650.131.1%
精简+模式1633.031.8%

此测试样例用于验证输出格式和证据数据包行为。它不测量实时引擎可用性或搜索质量。请参阅 基准测试方法和限制。

搜索路由器的工作方式

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"]

路由器会根据各自独立的结果、相关性、置信度和提供方系列门槛,评估每一批搜索结果。证据通过这些门槛后,路由器便会停止,并在 meta.execution 中公开这一决策。提供方故障会保留在 partialFailures 中,因此空结果无法掩盖上游错误。

竞争格局(2026-08-07) 梳理了竞争激烈的基线市场和产品缺口。对于可能变化的事实,文档记录了来源日期和固定提交。 2026-08-10 更新 补充了此后竞争对手的动态:直接的本地竞争者处于停滞状态,而高令牌效率的证据正成为业界明确采用的杠杆。较早的 来源级产品对比 包含针对架构的证据。


引擎

运行时注册了 16 个适配器:9 个无需密钥的适配器和 7 个可选 API 适配器。

引擎访问方式语言角色
DuckDuckGo无需密钥en通用网络搜索
Sogou Search无需密钥zh中文网络搜索
Bing无需密钥en, zh多语言网络搜索
Baidu无需密钥zh中文网络搜索
Wikipedia无需密钥en, zh, ja, de, fr, es, auto百科参考资料
Startpage无需密钥en, auto注重隐私的网络搜索
Yandex无需密钥ru, en, auto俄语及国际网络搜索
Mojeek无需密钥en, auto独立的注重隐私的索引
Wiby无需密钥en独立的小型网络索引
Brave SearchBRAVE_API_KEYen, zh可选的商业网络搜索
Tavily SearchTAVILY_API_KEYen, zh可选的面向 Agent 的搜索
Exa SearchEXA_API_KEYen, zh可选的神经网络搜索
You.com SearchYDC_API_KEYen, zh可选的商业网络搜索
Tencent Web Search APITENCENT_WSA_API_KEYzh可选的官方中文网络搜索
Bocha Web SearchBOCHA_API_KEYzh, en可选的中文优先 AI 搜索
Serper Google SearchSERPER_API_KEYen, zh, auto可选的 Google SERP 搜索

工具

工具描述最适合用于
free_search带有限回退的多引擎网络搜索快速查找事实和一般信息
free_search_advanced带筛选条件的瀑布式搜索和可选增强域名策略和渐进式验证
free_extract将 URL 提取为干净的 Markdown阅读完整的源页面
fetch_github_readme获取公开的 GitHub 仓库 README项目文档
fetch_csdn_article获取 CSDN 文章中文技术文章
fetch_juejin_article获取掘金文章中文开发者文章
search_with_synthesis搜索证据并提供大模型综合提示根据引用证据生成由 Agent 撰写的回答
能力控制
环境变量默认值用途
ENABLED_TOOLS / DISABLED_TOOLSall / none工具注册白名单和黑名单;黑名单优先
ALLOWED_ENGINES / DENIED_ENGINESall / none引擎执行白名单和黑名单;黑名单优先
SEARCH_PROVIDER_MODEfree_first默认路由:free_first、quality_escalation、paid_first 或 free_only
PAID_ENGINE_ORDERbrave,exa,tavily,youcom,tencent_wsa,bocha,serper选择第一个已配置的可选提供方;这不代表质量评级
SEARCH_BUDGET_MAX_CALLS16适配器尝试次数预算
SEARCH_BUDGET_MAX_ELAPSED_MS30000端到端耗时预算
SEARCH_BUDGET_MAX_RESULTS100接纳的原始结果预算
EVIDENCE_BUDGET_CHARS1200证据字符数预算

search_with_synthesis 使用与主要搜索工具相同的规范 structuredContent 证据包, 并添加 prompt_hint;其文本内容仅是精简的兼容性视图。执行元数据区分已计划的 适配器与包含重试的适配器尝试次数。只有当所有适配器传输都能准确报告时, http_requests 才会有值,否则为 null。

Wiby 是真正无需密钥的来源,由其官方 JSON API 提供支持,并在免费瀑布式搜索的 后段作为独立的小型网络补充来源。可选提供方需要用户凭据;任何注册赠金或试用 配额均由提供方控制,不视为永久免费访问。

所有工具均为只读且幂等。搜索取消会传递到限速等待、重试、提供方请求和可选增强。 增强可以改善摘要,但不能提高来源可信度或独立来源数量。

free_search_advanced.time_range 保留在兼容性架构中。由于通用网络提供方没有 共同遵循的可执行时效性约定,服务器会在搜索前返回 UNSUPPORTED_FILTER。


配置

上方生成的能力表列出了默认请求预算。这些设置涵盖常见的部署方式:

目标环境变量
添加可选提供方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
减少响应 tokenOUTPUT_STYLE=compact、MAX_FULL_RESULTS、SNIPPET_LENGTH、EVIDENCE_BUDGET_CHARS
限制工具或引擎ENABLED_TOOLS、DISABLED_TOOLS、ALLOWED_ENGINES、DENIED_ENGINES
使用显式代理DUCKDUCKGO_PROXY_URL、SOGOU_PROXY_URL、MOJEEK_PROXY_URL、WIBY_PROXY_URL,或将 USE_PROXY=true 与 PROXY_URL 配合使用
使用用户自有的代理池将 DUCKDUCKGO_PROXY_URLS、SOGOU_PROXY_URLS、MOJEEK_PROXY_URLS 或 WIBY_PROXY_URLS 设为包含 2-16 个 HTTP(S) 代理 URL 的 JSON 数组
持久化精确结果缓存SEARCH_CACHE_DIRECTORY、SEARCH_CACHE_TTL_MS、SEARCH_CACHE_MAX_ENTRIES
启用可选语义处理SEMANTIC_DEDUP、SEMANTIC_RERANK、DEDUP_THRESHOLD、RERANK_TOP_K

添加 API 密钥并不代表获准产生付费流量。路由策略控制提供方的使用方式。默认的精确结果缓存保留在内存中;设置 SEARCH_CACHE_DIRECTORY 可启用本地持久化。语义处理是唯一会使用 Python 和 Model2Vec 的可选功能。

代理池会根据逻辑查询选择确定性的首个出口,并保持多步提供方请求使用同一出口。只有传输失败时才会切换到下一个已配置出口;发生传输失败的出口会冷却 60 秒。HTTP 响应(包括 403、429 和质询页面)不会触发代理切换,并继续遵循提供方现有的冷却机制。引擎专用的单代理变量优先于对应的代理池。fasm doctor 绝不会打印代理凭据。

HTTP 部署

HTTP 模式需要设置 HTTP_AUTH_TOKEN,除非设置 HTTP_ALLOW_UNAUTHENTICATED=true。带有 Origin 标头的浏览器请求必须与 ALLOWED_ORIGINS 匹配。TLS 终止、令牌轮换和反向代理示例,请参阅 HTTP 部署指南。


命令行界面

此软件包包含 fasm 命令行界面:

fasm search "TypeScript MCP server"
fasm search "query" --count 5 --engines bing,baidu,youcom --json
fasm extract "https://example.com"
fasm extract "https://example.com" --json
fasm doctor
fasm doctor --json
HTTP_AUTH_TOKEN=change-me MODE=http npx agent-search-mcp

fasm doctor 会读取本地配置,不进行网络探测,也绝不会打印凭据或代理值。


文档与证据

文档内容
系统架构路由、证据、提供方系列和配置
竞争格局(2026-08-10)截至 2026-08-10 的竞争对手动态、定位和改进优先级
竞争格局(2026-08-07)基准竞争对手、预期和产品差距快照
产品比较Agent 搜索产品的源码级审查
基准测试token 测试夹具、实时运行范围和质量评估方法
v3.2.0 发布说明提供方策略、预算和迁移说明
较早的发布候选版本证据扩展前的打包安装矩阵及其局限
MCP 2026 就绪情况隔离的协议实验及剩余门槛

配套项目:Slim Guard

Agent Search 控制检索工作并压缩搜索证据。 mcp-slim-guard 位于 Agent 与 MCP 服务之间,用于处理工具架构压缩和安全策略。

npm install -g mcp-slim-guard

开发

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)

稳定版软件包支持 Node.js 18、20 和 22。隔离的 MCP 2026 实验要求 Node.js 20 或更高版本。


许可证

Apache 2.0

基于 Aas-ee 开发的 open-websearch。

如果 Agent Search MCP 对你的 Agent 有帮助,请为仓库点亮星标, 让其他开发者也能发现这个项目。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。