mcp-server-searxng
你是否想过让AI助手直接帮你查找最新的科技资讯、学术论文或是某个特定领域的新闻,而不需要自己打开浏览器手动搜索?随着MCP(Model Context Protocol)协议的兴起,赋予AI模型“动手”操作外部工具的能力已成为现实。今天要介绍的开源项目mcp-server-searxng,正是这样一个为AI提供隐私保护型元搜索能力的服务器实现。它不仅能让AI替你上网搜索,更重要的是整个过程尊重你的隐私,不会追踪你的行为。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | 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 |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-04-17 |
一、项目介绍
mcp-server-searxng是一个基于Node.js开发的MCP服务器,它的核心功能是将SearXNG这款强大的元搜索引擎无缝接入到任何支持MCP协议的AI客户端中(如Claude Desktop、Dive等)。简单理解,它就是AI的“上网搜索开关”。你不再需要手动复制粘贴搜索结果给AI,而是可以直接在对话中告诉AI:“帮我查一下本周关于气候变化的最新科学发现”,AI便会自动调用这个工具,从SearXNG聚合的多个搜索引擎(如Google、Bing、DuckDuckGo等)中获取结果,并整理成清晰的答案返回给你。
与传统的直接调用搜索引擎API不同,SearXNG本身不追踪用户、不记录IP、不建立用户画像,而mcp-server-searxng则把这个隐私保护特性带给了AI系统。这意味着你的每一次搜索意图都通过你信任的(甚至是自己搭建的)SearXNG实例发出,最大程度上保护了你的查询隐私。
二、核心优势
丰富的搜索维度
这个项目提供了非常精细的搜索控制能力,远不止输入关键词那么简单。它支持以下维度的定制:
- 分类搜索:通用、新闻、科学、文件、图片、视频、音乐、社交媒体、IT
- 时间范围:按天、周、月、年过滤结果
- 语言限制:指定搜索结果的语言
- 安全等级:无、中等、严格三级过滤
- 多页获取:支持翻页
这意味着你可以让AI只搜索“过去一周内的新闻”或“英文的科学论文”,精准度远超普通搜索。
高可靠性与容错
项目设计时考虑了生产环境的需求。你可以通过环境变量配置多个SearXNG实例地址(用逗号分隔),当一个实例不可用时,服务器会自动切换到下一个。这避免了单点故障,确保了搜索服务的稳定性。
即插即用的便捷安装
项目提供了多种安装方式,尤其值得一提的是它支持通过Smithery平台一键安装到Claude Desktop,对于不熟悉命令行的用户极为友好。同时也支持全局npm安装或通过npx直接运行,灵活度很高。
三、适用场景
内容研究与分析
如果你是一位研究员、分析师或学生,需要快速搜集某个主题的最新资料,你可以让AI助手使用这个工具定期搜索并总结特定领域的前沿动态。例如“每天早晨搜索AI领域过去24小时的热点新闻”。
自动化工作流集成
在企业或个人的自动化脚本、聊天机器人或智能客服系统中,你可以集成这个MCP服务器,使其具备实时查询外部信息的能力。比如开发一个“技术文档助手”,它能根据用户问题自动搜索内部或外部的相关知识库。
注重隐私的日常搜索
对于那些不希望自己的搜索记录被大公司分析的普通用户,你可以搭建自己的私有SearXNG和这个MCP服务器,打造一个完全由你控制的、甚至脱离大公司监控的智能搜索助手。
四、安装教程
要让整个系统运行起来,你需要完成两大步:搭建一个SearXNG实例,然后配置mcp-server-searxng到你的MCP客户端。
第一步:使用Docker快速搭建SearXNG(推荐)
这步是必须的,因为mcp-server-searxng需要一个SearXNG后端。Docker是最简单的方式。
首先,创建一个目录用于存放SearXNG的配置文件,并生成一个基本的配置文件。
mkdir -p searxng
tee searxng/settings.yml << EOF
use_default_settings: true
server:
bind_address: "0.0.0.0"
secret_key: "请务必将此字符串修改为一个复杂的随机字符串"
port: 8080
search:
safe_search: 0
formats:
- html
- json
engines:
- name: google
engine: google
shortcut: g
- name: duckduckgo
engine: duckduckgo
shortcut: d
- name: bing
engine: bing
shortcut: b
server.limiter: false
EOF然后,运行Docker容器,将本地的searxng目录挂载到容器内,并映射端口。
docker run -d \
--name searxng \
-p 8080:8080 \
-v "$(pwd)/searxng:/etc/searxng" \
searxng/searxng启动后,你可以通过访问 http://localhost:8080 来检查SearXNG是否正常运行。也可以使用命令测试JSON API:
curl 'http://localhost:8080/search?q=test&format=json'如果一切正常,你将看到JSON格式的搜索结果。
第二步:配置MCP客户端
现在来配置你的AI客户端,让它能够找到并启动mcp-server-searxng。
方法一:通过Smithery一键安装(适用于Claude Desktop)
如果你使用Claude Desktop,这是最简单的方法。在终端中直接运行:
npx -y @smithery/cli install @kevinwatt/mcp-server-searxng --client claude这个命令会自动完成配置,通常不需要你再手动编辑文件。安装完成后重启Claude Desktop即可。
方法二:手动编辑配置文件(通用方法)
你需要找到并编辑MCP客户端的配置文件。以Claude Desktop为例,配置文件位置通常在:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
将以下配置添加到该文件的 mcpServers 对象中。请务必将 SEARXNG_INSTANCES 的值改为你第一步中获得的SearXNG实例地址(例如 http://localhost:8080)。
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"@kevinwatt/mcp-server-searxng"
],
"env": {
"SEARXNG_INSTANCES": "http://localhost:8080"
}
}
}
}如果你希望使用全局安装的版本,也可以先运行 npm install -g @kevinwatt/mcp-server-searxng 进行全局安装,然后将配置中的 command 改为 mcp-server-searxng,并去掉 args 行。
配置完成后,请完全退出并重启你的MCP客户端。如果一切顺利,你的AI现在就拥有了实时搜索的能力。
五、使用示例
配置完成后,你就可以在AI对话中体验它的强大功能了。这个MCP服务器提供了名为 web_search 的工具,AI会智能地根据你的问题决定何时调用它。
示例一:基础新闻搜索
你可以直接向AI提问:
“请搜索一下2025年5月关于人工智能监管的最新新闻。”
AI会调用web_search,自动填入关键词,可能还会指定categories为["news"],time_range为month。几秒钟后,它会根据搜索结果,为你总结出几条重要的新闻摘要。
示例二:精确的科学文献搜索
你还可以提出更具体的要求,AI会尝试将你的需求映射到工具参数上。例如:
“帮我找几篇关于大型语言模型推理能力的科学文章,过去一年内的就可以。”
AI会理解“科学文章”可能对应categories中的scientific,并将”过去一年内“映射为time_range: "year"。最终返回的结果将是正对应你需求的学术性内容。
可以想象,将这些搜索能力与你日常使用的AI助手结合,无论是编写报告、学习新知识,还是了解时事动态,效率都将得到极大提升。
六、常见问题
问题1:AI从未调用web_search工具
原因通常有两种:一是MCP服务器没有正确连接;二是配置文件格式有误。
解决方案:首先重启客户端,然后查看客户端中是否有显示已连接的服务器列表,确认searxng服务器状态为“已连接”。其次,仔细检查配置文件的JSON格式是否有效(例如,不能有多余的逗号),并且环境变量SEARXNG_INSTANCES的值是正确的SearXNG地址。
问题2:搜索返回403 Forbidden或空结果
核心原因:你的SearXNG实例没有正确启用JSON API。
解决方案:请回顾安装教程的第一步,确保你的searxng/settings.yml文件中,在search.formats下包含了json。修改后,务必重启SearXNG容器:docker restart searxng。之后可以用curl命令测试JSON API确认是否正常。
问题3:npx命令运行失败,提示找不到包
原因:网络问题或Node.js版本过旧。
解决方案:检查Node.js版本是否在14.0以上(可以用node -v查看)。如果网络环境特殊,可以尝试设置npm镜像源,或改用全局安装方式(npm install -g ...)并修改客户端配置中的启动命令。
七、总结
mcp-server-searxng是一个设计精巧、功能丰富的MCP服务器。它不仅为AI提供了获取实时信息的关键能力,更难能可贵的是在实现这一能力的过程中,始终将隐私保护和可靠性放在首位。通过支持多种搜索类别、时间过滤以及多实例故障转移等特性,它足以满足从个人学习到专业研究的多种应用场景。如果你正在开发或使用基于MCP协议的AI应用,并且希望赋予它联网搜索的“眼睛”,那么mcp-server-searxng无疑是一个非常值得尝试的选择。
Just starred the project on GitHub. The author Kevin Watt has done a great job. And thank you to the tutorial writer for breaking down the complex Docker setup into simple steps.
I'm a hobbyist setting up a home lab. The instructions for auto-starting the SearXNG container with `--restart always` are a pro tip that many beginner tutorials miss. Very helpful.
One thing I'd add is a note about the `secret_key`. The article says to change it, but a quick command to generate a random one (e.g., `openssl rand -base64 32`) would make it even more beginner-friendly. Still, a solid A grade.
The step-by-step with both the Smithery auto-install and the manual config is perfect. It caters to users of all levels. I used the manual method and felt like a pro.
Check your firewall if you can't connect to the SearXNG container from the MCP server. I had to allow port 8080. The article assumes localhost works, which it does, but it's a good general tip.