用途
Agent Search MCP 是一个 Node.js MCP 服务器和 CLI,用于英文和中文的网络搜索。它以“免费优先”为设计目标,默认无需任何 API 密钥即可运行,也无需浏览器、数据库、Python 或搜索 API 账户。该工具适合作为 AI 智能体的检索组件,让代理在调用搜索结果前能够检查证据质量与路由决策。
主要能力
- 多源搜索:运行时注册 16 个适配器,其中 9 个为零密钥适配器,7 个为可选 API 适配器。零密钥源包括 DuckDuckGo、Sogou、Bing、Baidu、Wikipedia、Startpage、Yandex、Mojeek 等,Wiby 作为小型网页的独立补充源在免费瀑布的后期使用。
- 证据包:每个 JSON 响应包含一个 Search Evidence Packet,返回紧凑的多源证据,并记录提供方失败。结果证据、meta.execution 和 partialFailures 保持分离,提供方超时或挑战不会变成无解释的空结果。
- 路由策略:默认 free_first 策略不会消耗已配置的 API 凭证;free_only 阻止付费提供方;quality_escalation 在免费证据未通过质量门槛后调用一个已配置的付费提供方;paid_first 则先尝试该付费提供方。
- 预算控制:请求预算限制适配器尝试次数、耗时和纳入结果数;证据预算限制整个响应中与查询相关的段落数。紧凑模式保留首批结果的完整细节,后续条目缩减为保留来源的引用。
- 离线演示:提供一分钟离线契约演示,通过生产证据评分器和格式化器回放三种合成场景(同族适配器重叠、可见回退失败、有界质量门停止),不发起网络请求。
- 能力控制:search_with_synthesis 使用与主搜索工具相同的规范结构化内容证据包,并添加 prompt_hint。所有工具均为只读且幂等,搜索取消可作用于速率限制等待、重试、提供方请求和可选增强。
- HTTP 部署:HTTP 模式需要 HTTP_AUTH_TOKEN,除非设置 HTTP_ALLOW_UNAUTHENTICATED=true。带 Origin 头的浏览器请求必须匹配 ALLOWED_ORIGINS。
- CLI:包内含 fasm 命令行工具,fasm doctor 可在不进行网络探测的情况下读取本地配置,且不会打印凭证或代理值。
使用方式
在支持 mcpServers JSON 的 MCP 客户端(包括 Claude Desktop、Cursor、VS Code 和 Windsurf)中使用 stdio 配置进行连接。Claude Code 和 Codex 可通过其 MCP 设置注册相同的 npx -y agent-search-mcp stdio 命令。
连接 MCP 服务器后,兼容 Agent Skills 的客户端可安装仓库自带的路由指南(Agent Skill),并通过类似“Use $agent-search to verify this claim with official sources”的请求调用。该 Skill 会选择四种有界路径之一:快速发现、更严格的验证、中文源搜索或提取选定 URL。它会检查所需的 MCP 工具是否存在,并在任何安装或配置变更前询问。安装该 Skill 不会启动或配置 MCP 服务器。
在本地构建包后,可不添加提供方密钥运行 CLI 查询。全局安装后可检查本地运行时而不发出搜索请求。
适用场景
- AI 智能体需要中英文网络搜索能力,且希望以零密钥方式快速启动。
- 需要对搜索结果进行多源验证,并保留可检查的证据与失败记录。
- 需要在免费与付费搜索提供方之间做策略化路由,并控制请求与证据预算。
- 需要离线验证搜索契约与格式化行为的开发或测试场景。
- 需要部署 HTTP 搜索服务并配置认证与来源限制的场景。
限制
- 需要 Node.js >= 18.17;默认运行时不需要浏览器、数据库、Python 或搜索 API 账户。稳定包支持 Node.js 18、20 和 22;隔离的 MCP 2026 实验需要 Node.js 20 或更高版本。
- 可选提供方需要用户凭证;任何注册赠送额度或试用配额由提供方控制,不被视为永久免费访问。添加 API 密钥并不授权付费流量,路由策略控制提供方使用。
- free_search_advanced.time_range 保留在兼容模式中,但服务器在搜索前返回 UNSUPPORTED_FILTER,因为通用网络提供方不共享一个可强制执行的时效性契约。
- http_requests 在所有适配器传输都能无误报地报告前为 null。
- 代理池从逻辑查询选择确定性的首个出口,并保持多步提供方请求粘性;只有传输失败才能移至下一个配置出口,失败的传输冷却 60 秒。HTTP 响应(包括 403、429 和挑战页)从不触发代理切换。
- 语义处理是唯一使用 Python 和 Model2Vec 的可选功能。
- 默认精确结果缓存保存在内存中;设置 SEARCH_CACHE_DIRECTORY 可选择本地持久化。
- 增强可改善摘要,但不能增加源置信度或独立源数量。
- 离线演示和检查的评测夹具仅验证输出格式化与证据包行为,不衡量实时引擎可用性或搜索质量。
- 基于 Aas-ee 的 open-websearch 构建。