使用说明
搜索mcp网关
search-mcp-gateway 是一个Rust项目,它公开了相同的搜索网关
通过本地MCP服务器和直接CLI实现功能。它是为了
保持MCP支持的完整性,同时通过技能支持延迟加载
仅在需要时调用CLI。
特性
- 具有与提供商无关的请求和响应模型的统一搜索网关。
- 本地
stdioMCP服务器,具有紧凑的工具表面。 - 具有等效功能的CLI
search,extract,crawl,以及status子命令。 - 自动选择提供者、健康感知轮换、可重试回退,以及 断路。
- 默认搜索路由更倾向于Tavily,以获得更丰富的面向答案的查询, 而DuckDuckGo仍然是一个轻量级的后备方案。
- MCP和CLI JSON模式的稳定JSON信封输出:
{ "ok": true|false, "data": ..., "error": ... }. - 两者之间的DuckDuckGo兼容性策略
html和lite端点 POST和GET请求回退。 - Tavily和DuckDuckGo在第一个版本中提供服务。
命令
直接运行CLI:
cargo run -- search --query "latest AI agent news" --include-answer --json
这 --json flag打印一个稳定的信封:
{
"ok": true,
"data": {
"provider_used": "tavily"
},
"error": null
}
运行本地MCP服务器:
cargo run -- mcp
CI和发布
该存储库包括用于验证和标记的GitHub Actions工作流 释放。CI工作流在Linux、Windows和 macOS。发布工作流构建标记的二进制文件并将其上传到GitHub 释放。
CI工作流
CI工作流在推送上运行 main 以及拉取请求。目前
构建这些目标:
x86_64-unknown-linux-gnux86_64-pc-windows-msvcaarch64-apple-darwin
每个矩阵作业运行:
cargo test --quiet --target <target>cargo build --release --target <target>
发布工作流程
当您推送匹配的标签时,发布工作流就会运行 v*例如:
git tag v0.1.0
git push origin v0.1.0
工作流上传这些发布资产:
- Linux存档:
search-mcp-gateway-x86_64-unknown-linux-gnu.tar.gz - Windows存档:
search-mcp-gateway-x86_64-pc-windows-msvc.zip - macOS存档:
search-mcp-gateway-aarch64-apple-darwin.tar.gz SHA256SUMS
依赖关系更新
存储库包括 dependabot.yml 对于两个更新流:
- GitHub操作版本
- 货物依赖关系
这将使工作流操作和Rust依赖关系向前发展 正常的pull请求,而不是默默地过时。
配置
配置是可选的。如果不提供配置文件,网关 从内置默认值开始,只读取Tavily令牌等机密 从环境变量。
配置加载顺序
网关按以下顺序解析配置:
- 如果你通过
--config <path>,它使用该文件。 - 否则,如果
SEARCH_MCP_GATEWAY_CONFIG如果已设置,则使用该路径。 - 否则,它会寻找
search-mcp-gateway.toml在目前的工作中 目录。 - 如果不存在文件,则使用内置默认值。
最小设置
最小的工作设置仅是一个环境变量。这已经足够了 内置的Tavily提供程序。
在Windows PowerShell上:
$env:TAVILY_HIKARI_TOKEN = "your-token"
cargo run -- search --query "latest AI agent news" --json
如果直接运行已安装的二进制文件:
$env:TAVILY_HIKARI_TOKEN = "your-token"
<path-to-search-mcp-gateway> search --query "latest AI agent news" --json
示例配置文件
如果要覆盖默认值,请创建 search-mcp-gateway.toml:
[gateway]
default_timeout_ms = 20000
cache_enabled = true
cache_ttl_seconds = 120
circuit_failure_threshold = 3
circuit_open_seconds = 30
search_provider_order = ["tavily", "ddg"]
[tavily]
enabled = true
base_url = "https://tavily.ivanli.cc"
api_key_env = "TAVILY_HIKARI_TOKEN"
search_path = "/api/tavily/search"
extract_path = "/api/tavily/extract"
crawl_path = "/api/tavily/crawl"
[ddg]
enabled = true
base_url = "https://html.duckduckgo.com/html/"
lite_url = "https://lite.duckduckgo.com/lite/"
region = "wt-wt"
safe_search = "moderate"
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
配置参考
这些是当前支持的配置密钥。
[gateway]
这 [gateway] 部分控制请求流、缓存、断路和
默认提供商订购。
default_timeout_ms提供程序请求的HTTP超时。违约:20000.cache_enabled启用内存中的搜索缓存。违约:true.cache_ttl_seconds以秒为单位设置缓存TTL。违约:120.circuit_failure_threshold在连续多次故障后打开提供程序电路。违约:3.circuit_open_seconds使提供者电路保持打开状态达数秒。违约:30.search_provider_order在应用排名和健康惩罚之前设置基本提供者顺序。 违约:["tavily", "ddg"].
[tavily]
这 [tavily] 部分配置内置的Tavily兼容提供程序。
enabled启用或禁用Tavily。违约:true.base_url设置Tavilly API主机。违约:https://tavily.ivanli.cc.api_key_env设置存储令牌的环境变量名称。违约:TAVILY_HIKARI_TOKEN.api_key可选地将令牌直接嵌入配置文件中。如果两者都有api_key和api_key_env存在,api_key获胜。search_path设置搜索端点路径。违约:/api/tavily/search.extract_path设置提取端点路径。违约:/api/tavily/extract.crawl_path设置爬网端点路径。违约:/api/tavily/crawl.
[ddg]
这 [ddg] 部分配置了内置的DuckDuckGo回退提供程序。
enabled启用或禁用DDG。违约:true.base_url设置DDG HTML端点。违约:https://html.duckduckgo.com/html/.lite_url设置DDG Lite端点。违约:https://lite.duckduckgo.com/lite/.region设置DDG地区代码。违约:wt-wt.safe_search设置安全搜索模式。当前代码中支持的值为off,strict, 以及中等模式的任何其他值。违约:moderate.user_agent设置用于DDG请求的User-Agent标头。默认值为 浏览器类似于用户代理,因为DDG使用它更稳定。
Codex MCP示例
如果你想让Codex启动本地MCP服务器,请添加这样的条目
~/.codex/config.toml:
[mcp_servers.tavily_hikari]
command = "/absolute/path/to/search-mcp-gateway"
args = ["mcp"]
[mcp_servers.tavily_hikari.env]
TAVILY_HIKARI_TOKEN = "your-token"
如果将项目配置存储在其他地方,请添加
SEARCH_MCP_GATEWAY_CONFIG:
[mcp_servers.tavily_hikari]
command = "/absolute/path/to/search-mcp-gateway"
args = ["mcp"]
[mcp_servers.tavily_hikari.env]
TAVILY_HIKARI_TOKEN = "your-token"
SEARCH_MCP_GATEWAY_CONFIG = "/absolute/path/to/search-mcp-gateway.toml"
替换 /absolute/path/to/search-mcp-gateway 通过绝对路径
已在您的计算机上安装可执行文件。例如:
- 窗户:
D:\\Software\\Dev\\CLI\\search-mcp-gateway.exe - macOS或Linux:
/usr/local/bin/search-mcp-gateway
电流限制
当前版本仅支持通过配置的内置提供程序
[tavily] 和 [ddg] 部分。它还不支持用户自定义
供应商通过任意 toml 阻碍。
