你是否关心自己的搜索隐私?当你在 AI 助手内部进行网络搜索时,查询词可能会被发送到商业搜索引擎,留下你的 IP、用户代理和兴趣痕迹。传统的 API 搜索服务虽然方便,但通常要求你注册并暴露你的使用模式。
这就是 mcp-server-searxng 要解决的问题。它是一个基于模型上下文协议的服务器,通过集成 SearXNG(一个开源的、隐私友好的元搜索引擎)来提供搜索能力。SearXNG 本身不追踪用户,它会将你的查询转发给多个搜索引擎(如 Google、Bing、DuckDuckGo),然后聚合结果,而你只与 SearXNG 实例交互,从而获得了一定程度的隐私保护。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | mcp-server-searxng |
| GitHub地址 | https://github.com/kevinwatt/mcp-server-searxng |
| 项目描述 | An MCP server implementation that integrates with SearXNG, providing privacy-focused meta search capabilities. |
| 作者 | kevinwatt |
| 开源协议 | MIT License |
| 开源状态 | 公开状态 |
| Languages | JavaScript, TypeScript, Dockerfile |
| 支持平台 | Windows / macOS / Linux / Web |
| 最后更新 | 2026-04-17 |
一、项目介绍
mcp-server-searxng 是一个轻量级的 MCP 服务器,它封装了 SearXNG 的搜索 API。SearXGN 是一个去中心化的元搜索引擎,它本身不维护索引,而是实时查询其他多个搜索引擎,并将结果组合后返回。
该服务器提供了一个核心工具:web_search。通过这个工具,你可以控制搜索的多个维度:
- 类别:常规、新闻、科学、文件、图片、视频、音乐、社交媒体、IT 等。
- 时间范围:按天、周、月、年过滤结果。
- 语言:指定结果的语言。
- 安全搜索:三个级别(无、中等、严格)。
- 分页:支持翻页。
该项目本质上是一个桥梁:它将 SearXNG 实例的 API 暴露为 MCP 工具,让 AI 能够利用这个隐私友好的搜索网络。
二、核心优势
隐私保护设计
SearXNG 是隐私元搜索领域的标杆。它不会记录你的 IP 地址,不会设置追踪 Cookie,不会对你的查询进行分析。所有查询在 SearXNG 实例内部被聚合和匿名化。
聚合多种引擎结果
一次查询可以同时获取来自 Google、Bing、DuckDuckGo、Brave 等多个搜索引擎的结果。这可以减少对单一搜索引擎的依赖,并提供更全面的视角。
丰富的类别和过滤选项
与其他通用搜索 MCP 相比,SearXNG 提供了非常细粒度的类别,如“科学”、“文件”、“IT”、“音乐”等。你可以将搜索范围限定在特定领域,提高相关性。
灵活的实例配置
你可以运行自己的私有 SearXNG 实例(通过 Docker 一键启动),也可以使用社区提供的公共实例。通过 SEARXNG_INSTANCES 环境变量,可以配置多个实例以实现故障转移。
开源且免费
整个栈完全开源免费。你甚至不需要任何 API 密钥。只需要一个 SearXNG 实例的 URL,就可以开始使用。
三、适用场景
隐私敏感的研究
如果你正在研究一个敏感话题,不希望搜索行为被关联到你的身份,可以通过自己的 SearXNG 实例进行搜索。
去中心化的信息收集
当你想验证某个信息在不同搜索引擎中的表现是否一致时,可以使用 SearXNG 的聚合结果进行对比。
限定领域的搜索
例如,你只想搜索“科学”类别的内容,避免看到购物链接或娱乐新闻。可以设置 categories: ["science"]。
开发与测试
在开发 AI 应用时,你可能需要一个不消耗 API 信用额度、又无需注册的搜索服务。自己运行一个本地 SearXNG 实例是最佳选择。
构建隐私优先的 AI 应用
为你的 AI 产品提供一个“隐私模式”搜索选项,后端连接自建的 SearXNG 实例,而不是调用商业搜索 API。
四、安装教程
安装 mcp-server-searxng 需要两个步骤:首先运行一个 SearXNG 实例,然后配置 MCP 服务器。
第一步:使用 Docker 运行 SearXNG(推荐)
在终端中执行以下命令,创建一个本地 SearXNG 实例。
mkdir -p searxng
tee searxng/settings.yml << EOF
use_default_settings: true
server:
bind_address: "0.0.0.0"
secret_key: "CHANGE_THIS_TO_A_RANDOM_STRING"
port: 8080
search:
safe_search: 0
formats:
- html
- json
EOF
docker run -d \
--name searxng \
-p 8080:8080 \
-v "$(pwd)/searxng:/etc/searxng" \
searxng/searxng等待几秒钟,让容器完全启动。你可以通过访问 http://localhost:8080 验证 SearXNG 是否运行。
第二步:安装 MCP 服务器
通过 Smithery 一键安装(推荐):
npx -y @smithery/cli install @kevinwatt/mcp-server-searxng --client claude或通过 npm 全局安装:
npm install -g @kevinwatt/mcp-server-searxng第三步:配置 MCP 客户端
对于 Claude Desktop,编辑配置文件(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json;Windows: %AppData%\Claude\claude_desktop_config.json),添加:
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": ["-y", "@kevinwatt/mcp-server-searxng"],
"env": {
"SEARXNG_INSTANCES": "http://localhost:8080"
}
}
}
}如果你使用公共的 SearXNG 实例(风险自负,因为无法确保实例运营者的隐私承诺),可以替换 URL。
第四步:重启客户端
保存配置,完全退出并重启 Claude Desktop。
五、使用示例
以下是在配置好服务器后,与 Claude 的自然语言对话示例。
示例1:基础搜索
用户输入:搜索一下“气候变化最新报告”,只返回新闻类结果。
AI 会调用 web_search,参数为 query: "气候变化最新报告", categories: ["news"]。返回结果将从新闻分类中获取。
示例2:限定时间范围和语言
用户输入:查找过去一周内关于“人工智能安全”的英文文章。
AI 会调用 web_search,参数为 query: "人工智能安全", time_range: "week", language: "en"。
示例3:科学类别搜索
用户输入:搜索关于“量子计算”的学术资源。
AI 可以设置 categories: ["science"],过滤掉非学术的内容。
示例4:图片搜索
用户输入:搜索“太阳系照片”,只返回图片结果。
AI 可以设置 categories: ["images"],然后返回的结果将是图片链接和缩略图信息。
示例5:分页获取更多结果
用户输入:搜索“Node.js 教程”,给我第一页的结果。如果不够,再获取第二页。
AI 可以首先调用 web_search,参数为 page: 1,然后根据情况再次调用,page: 2。
六、常见问题
问题1:Docker 容器启动后,curl 测试返回空或错误。
解决方案:
- 确认容器正在运行:
docker ps | grep searxng。 - 检查日志:
docker logs searxng,看是否有错误信息。 - 确保配置文件
settings.yml中的secret_key已更改。SearXNG 会要求一个安全的随机密钥。 - 确认端口映射正确。如果你的 Docker 使用了不同端口,请在
SEARXNG_INSTANCES中相应的修改。
问题2:MCP 服务器搜索返回“No results found”或空数组。
解决方案:
- 直接在浏览器中访问
http://localhost:8080/search?q=test&format=json,确认 SearXNG API 是否能正常返回 JSON。如果不能,说明 SearXNG 实例本身有问题。 - 检查
SEARXNG_INSTANCES环境变量的 URL 是否正确,是否包含端口。 - 某些公共 SearXNG 实例可能禁用了 JSON API 请求限制。
问题3:我可以使用公共 SearXNG 实例而不自己运行吗?
解决方案:可以。存在一些公共的社区实例,例如 https://searx.be。但你无法保证这些实例的运营者是否真的尊重隐私,而且它们可能不稳定或速率受限。对于敏感查询,强烈建议自己运行实例。
问题4:为什么我搜索中文关键词没有结果?
解决方案:确保你的 SearXNG 实例配置中包含了支持中文的搜索引擎(如百度、中文维基百科)。默认配置可能只包含英文引擎。你需要修改 settings.yml 中的 engines 列表。
问题5:服务器支持哪些搜索引擎?
解决方案:这完全取决于你的 SearXNG 实例的配置。默认配置通常包含 Google、Bing、DuckDuckGo、Brave、Wikipedia 等。你可以通过编辑 searxng/settings.yml 文件来启用或禁用特定的引擎。
七、总结
mcp-server-searxng 提供了一个隐私优先的搜索 MCP 解决方案。它充分利用了 SearXNG 元搜索引擎的强大能力和隐私特性,让 AI 助手能够在不牺牲用户隐私的前提下获取实时网络信息。
该项目的亮点包括:
- 隐私保护:通过自托管或使用可信实例,避免查询泄露。
- 聚合搜索:一次查询获取多个引擎的结果,来源多样。
- 精细控制:类别、时间、语言、安全搜索等选项丰富。
- 完全免费:无需任何 API 密钥,无查询费用。
31 颗星虽然不算高,但对于隐私敏感的用户和开发者来说,这个项目价值极高。如果你正在构建一个注重隐私的 AI 应用,或者希望完全掌控自己的搜索基础设施,那么 mcp-server-searxng 搭配你自己的 SearXNG 实例将是绝佳选择。
The MIT license is perfect. I integrated it into my privacy app.
The response time from local instance is about 500ms. Very fast.
The `language` parameter requires two-letter codes. "en" works.
The `NODE_TLS_REJECT_UNAUTHORIZED` is useful for self-signed certs only.
The project has a CHANGELOG and releases. Professional maintenance.