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
开源状态公开状态
LanguagesJavaScript / 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_rangemonth。几秒钟后,它会根据搜索结果,为你总结出几条重要的新闻摘要。

示例二:精确的科学文献搜索

你还可以提出更具体的要求,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无疑是一个非常值得尝试的选择。

标签: 搜索与检索

已有 35 条评论

    1. KevinKlein KevinKlein

      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.

    2. LindaLoves LindaLoves

      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.

    3. MikeMentor MikeMentor

      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.

    4. NinaNewbie NinaNewbie

      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.

    5. OscarOtter OscarOtter

      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.