MCP-searxng

在AI技术飞速发展的今天,大型语言模型(LLM)展现出了惊人的文本生成和理解能力。然而,这些模型的知识库通常止步于训练数据,无法实时获取最新的新闻、动态和信息。这就像一位学识渊博的学者,虽然满腹经纶,却对外界正在发生的新鲜事一无所知。如何为AI插上实时获取信息的“触角”,成为了当前技术探索的热点。MCP-searxng项目正是为了解决这一问题而生,它为AI系统构建了一座通往实时互联网世界的桥梁。

项目基本信息

信息项详情
项目名称MCP-searxng
GitHub地址https://github.com/SecretiveShell/MCP-searxng
项目描述MCP server for connecting agentic systems to search systems via searXNG
作者SecretiveShell
开源协议MIT License
开源状态公开状态
LanguagesPython
支持平台Windows / macOS / Linux
最后更新2026-04-20

一、项目介绍

MCP-searxng是一个基于Model Context Protocol(MCP)协议开发的服务器程序,它的核心使命是让AI系统能够通过searXNG搜索引擎发起网络搜索。简单来说,它是一个智能的“中间人”,一端连接着你的AI应用(如Claude Desktop等支持MCP协议的客户端),另一端则连接着searXNG这个注重隐私的元搜索引擎。

searXNG本身就是一个强大的工具,它聚合了来自Google、Bing、DuckDuckGo等主流搜索引擎的结果,但独特之处在于它不会追踪用户、记录IP或建立用户画像。MCP-searxng项目巧妙地利用了searXNG的API,将这些隐私保护的搜索能力无缝对接到AI系统中。通过这个项目,原本无法获取实时信息的AI,现在能够主动搜索网络,获取最新资讯、验证事实、甚至阅读特定网页的内容,从而做出更准确、更具时效性的回应。

二、核心优势

该项目最大的吸引力在于其简洁性与实用性。它的核心优势可以总结为以下几点:

专注于核心功能
项目采用了“极简主义”的设计哲学。它只为AI提供了一个最核心的工具——搜索。与许多功能繁杂的项目不同,MCP-searxng刻意限制了可调整的参数,只允许输入“关键词”和可选的“页码”。开发者SearXNG-MCP-searxng认为,过多的参数(如指定搜索引擎、类别、时间范围等)反而会让AI“不知所措”,导致其随机或错误地选择参数,影响搜索效果。这个设计选择将复杂的配置留给了searXNG服务端,让AI只做自己最擅长的事:生成精准的搜索关键词。

开箱即用与灵活部署
项目提供了多种启动方式,极大地降低了使用门槛。你可以通过npx(Node.js包执行工具)直接运行,无需任何安装,非常适合快速测试。同时,它也支持全局安装、Docker容器化部署等,能满足从个人开发者到复杂生产环境的不同需求。尤其是Docker支持,使得环境隔离和快速迁移变得异常简单。

保护隐私
一切都基于searXNG,这意味着所有的搜索请求都会经由你信任的searXNG实例(可以是自己搭建的私有实例,也可以是其他可信的公共实例)发出。你的AI的搜索意图不会直接暴露给Google或Bing等搜索引擎巨头,从而在享受实时信息的同时,最大程度地保护了隐私。

三、适用场景

这款工具的应用场景非常广泛,特别适合以下几类用户:

AI应用开发者:如果你正在构建基于大语言模型的应用,并希望它具备联网搜索、实时问答的能力,MCP-searxng提供了一个标准、可靠的解决方案。通过集成它,你的应用可以瞬间获得搜索能力,而无需自己处理复杂的网页抓取和反爬虫机制。

研究与数据分析人员:需要快速搜集某个领域的最新资料或动态。你可以利用像Claude这样的AI,让它通过MCP-searxng自动搜索、整理并总结相关信息,极大地提高信息收集效率。

注重隐私的个人用户:不喜欢自己的每一次搜索都被记录和分析。你可以搭建属于自己的searXNG和MCP-searxng服务,打造一个完全私密、由自己掌控的智能搜索助手。

四、安装教程

为了让你的AI能够成功“联网”,我们需要完成简单的配置。整个流程分为两个主要部分:准备一个可用的searXNG实例,以及配置MCP-searxng客户端。

第一步:确保拥有一个searXNG实例

MCP-searxng需要一个能正常工作的searXNG服务地址。你可以使用公共实例(不推荐用于隐私敏感场景),或者通过在本地或服务器上运行Docker来快速搭建一个属于自己的私有实例。

使用Docker运行searXNG实例是最简单的方法。打开你的终端,执行以下命令:

docker run -d -p 8080:8080 --name searxng searxng/searxng

这将在后台启动一个searXNG容器,并将其Web服务映射到你电脑的8080端口。启动后,你可以通过访问 http://localhost:8080 来验证是否成功。

重要配置:你需要确保你的searXNG实例开启了JSON格式支持,这是MCP服务器与它通信的基础。你需要在searXNG的配置文件 settings.yml 中添加或修改以下内容:

search:
  formats:
    - html
    - json

如果你使用的是上述Docker命令运行的容器,需要进入容器内部或通过挂载配置文件的方式来修改此设置,具体方法可参考searXNG的官方文档。

第二步:配置MCP客户端

接下来,你需要在你使用的MCP客户端(如Claude Desktop)的配置文件中,添加MCP-searxng服务器。配置文件通常位于:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

使用 npx 运行(推荐,无需本地安装)

在你的客户端配置文件中,添加以下内容。请务必将 YOUR_SEARXNG_INSTANCE_URL 替换为你第一步中获得的searXNG实例地址(例如 http://localhost:8080)。

{
  "mcpServers": {
    "searxng-search": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-searxng"
      ],
      "env": {
        "SEARXNG_SERVER_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

如果你希望使用Python/UV方式运行,可以参考以下配置(这种方式适合从GitHub克隆的本地仓库):

{
  "mcpServers": {
    "searxng": {
      "command": "uv", 
      "args": [
        "--project",
        "/绝对路径/指向/你克隆的/MCP-searxng/文件夹",
        "run",
        "/绝对路径/指向/你克隆的/MCP-searxng/mcp-searxng/main.py"
      ],
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

完成配置后,请完全退出并重启你的MCP客户端(如Claude Desktop),以使配置生效。

五、使用示例

配置完成后,你就可以在AI对话中体验联网搜索的威力了。这个项目通常只提供一个名为 search_web 或类似的工具。

假设你正在与Claude讨论最新的科技新闻,你可以直接提问:

“请帮我搜索一下2026年4月关于人工智能监管的最新新闻。”

此时,支持MCP的AI模型会智能地判断并调用 search_web 工具,将你的问题提炼成关键词(例如“2026年4月 人工智能 监管 新闻”),然后发送给你的searXNG实例进行搜索。搜索返回的结果(通常包含标题、链接和内容摘要)会回传给AI,AI再将这些原始信息理解、整合成一段条理清晰的回答呈现给你。

你也可以尝试提出更具体的要求:

“找出关于‘气候变化’的最新三篇文章,并总结其核心观点。”

AI会执行搜索,从结果中选取前三篇文章。对于每一篇,它甚至可以利用其他具有网页阅读能力的工具(如果支持)来获取全文,然后为你提炼出核心观点。这一切都是自动化、无缝进行的。你可能会注意到,AI在使用搜索工具时,会遵守极简的参数规则:只用关键词和页码,其他所有如搜索引擎选择、语言、安全等级等,都依赖于你在searXNG实例中预先配置好的默认值。

六、常见问题

在使用过程中,你可能会遇到一些问题,以下是常见的解决思路。

搜索失败,提示403错误

原因:你的searXNG实例没有开启JSON响应格式。这是最常见的问题。

解决:请务必检查你的searXNG配置文件settings.yml,确保search.formats列表中包含json,然后重启searXNG服务。

配置后AI没有调用搜索工具

原因:可能是MCP服务器没有正确连接到客户端,或配置文件格式有误。

解决:首先检查客户端配置文件(JSON格式)是否正确,例如路径、大括号、逗号等。其次,完全退出并重启客户端,而不是仅仅关闭窗口。你可以在客户端内寻找是否有查看已连接MCP服务器的选项或日志,以确认searxng-search服务器状态是否为“已连接”。

搜索没有返回任何结果

原因:可能是你的searXNG实例不稳定,或者搜索的关键词没有得到任何结果。

解决:尝试直接在你的浏览器中访问searXNG实例,用同样的关键词手动搜索一下,看是否能返回结果。如果能,则问题可能出在网络连接或MCP服务器配置上;如果不能,则需要检查你的searXNG实例。

七、总结

MCP-searxng是一个小巧而精致的项目,它完美诠释了“做一件事,并把它做好”的理念。它没有试图构建一个庞大而复杂的系统,而是专注于解决AI领域一个非常具体且重要的痛点:实时信息获取。通过巧妙地利用MCP协议和注重隐私的searXNG搜索引擎,它为AI应用开发者提供了一个简单、可靠、可扩展的解决方案。无论你是希望为自己的智能体项目增加联网搜索功能的开发者,还是一位追求隐私与效率的技术爱好者,MCP-searxng都值得你投入时间去尝试。它不仅能让你的AI变得“耳聪目明”,更能让你亲身体验到模块化、标准化的AI组件是如何协作,从而迸发出强大力量的。

标签: 搜索与检索

已有 35 条评论

    1. UmaUrbana UmaUrbana

      The markdown formatting of the blog is very clean and easy to follow. The code blocks are well syntax-highlighted. It makes a technical tutorial much less intimidating to read.

    2. VicVirtuoso VicVirtuoso

      I disagree slightly with the “no time filter” approach, but the article acknowledges this tradeoff. Overall, this project aligns perfectly with my privacy-first homelab setup. Great recommendation.

    3. WillWin WillWin

      The link to the official MCP protocol site in the search results adds context. Maybe the author could include a link there for readers who want to understand MCP on a deeper level. Still, a solid 9/10.

    4. XenaXylem XenaXylem

      I was up and running in 5 minutes using the `npx` command. It’s incredible how easy it is to give LLMs web access now. Thanks to the author for writing this and the maintainer for the code.

    5. YuriYawn YuriYawn

      Finally, a tutorial that explains WHY we need a meta-search engine for AI instead of just scraping Google. The privacy and anti-blocking arguments are very convincing. Great read.