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. ZaneZest ZaneZest

      I was stuck on the `secret_key` for the SearXNG config. The official docs are heavy. This article gave me just enough to get a working config file. Much appreciated.

    2. AbbyAdams AbbyAdams

      Just a heads up for others: the `categories` parameter expects an array, even if it's one item. The article's JSON example in the config is correct, but it's worth calling out explicitly.

    3. BenBigs BenBigs

      I used the Smithery install method and it took less than 30 seconds. The article's inclusion of that badge and the command was the reason I tried it. Works like magic.

    4. ChloeCodes ChloeCodes

      The 31 stars on the GitHub repo at the time of writing is a crime. This project and this article deserve way more attention. It's a cornerstone piece for anyone building with MCP.

    5. DanDaring DanDaring

      A great companion piece to the official readme. The readme tells you WHAT, this article tells you WHY and HOW. The section on core advantages really sold me on using this over a basic scraper.