SearXNG-MCP

SearXNG-MCP

Enables web search through a SearXNG instance via MCP, returning search result summaries.

Category
访问服务器

README

SearXNG MCP Server

一个基于 FastMCP 实现的 SearXNG 搜索 MCP 服务,使用 Streamable HTTP 传输,支持本地运行与 Docker 部署。

SearXNG相关链接:

官方文档:https://docs.searxng.org/

在线示例:https://searx.space/

功能

  • 暴露 MCP 工具 search(query):根据关键字调用 SearXNG 实例并返回搜索结果摘要。
  • 通过 HTTP 端点 http://<host>:<port>/mcp 提供 MCP 服务,便于远程 / 跨域调用。
  • 采用 无状态(stateless) Streamable HTTP 模式,客户端无需维护 Mcp-Session-Id,可直接并发调用。
  • 支持通过环境变量自定义 SearXNG 实例地址,方便私有化部署。

环境变量

变量名 默认值 说明
SEARXNG_URL https://searxng.abc.com SearXNG 实例根地址(要求开启JSON)
HOST 0.0.0.0 服务监听地址
PORT 9000 服务监听端口

本地运行

# 安装依赖(建议使用虚拟环境)
pip install -r requirements.txt

# 可选:自定义 SearXNG 实例(只需填根地址)
export SEARXNG_URL="https://your-searxng-instance"

# 启动服务
python Server.py

启动后,MCP 端点为:

http://localhost:9000/mcp

Docker 部署

构建镜像

docker build -t searxng-mcp .

运行容器

docker run -d \
  --name searxng-mcp \
  -p 9000:9000 \
  -e SEARXNG_URL="https://searxng.abc.com" \
  searxng-mcp

如需修改端口,可同时覆盖容器内外端口与 PORT:

docker run -d \
  --name searxng-mcp \
  -p 8080:8080 \
  -e PORT=8080 \
  searxng-mcp

使用在线镜像

docker run -d \
  --name searxng-mcp \
  -p 9000:9000 \
  -e SEARXNG_URL="https://searxng.abc.com" \
  muzihuaner/searxng-mcp:latest

访问地址

部署完成后,MCP 端点格式为:

http://<你的服务器域名或IP>:<端口>/mcp

例如:http://localhost:9000/mcp 或 https://mcp.your-domain.com/mcp

客户端配置

在支持 Streamable HTTP 的 MCP 客户端中,将服务地址填写为上面的 /mcp 端点即可,例如:

{
  "mcpServers": {
    "searxng": {
      "url": "http://localhost:9000/mcp"
    }
  }
}

工具说明

search(query: str) -> str

根据关键字调用 SearXNG 搜索,返回各结果条目的 content 文本,以换行拼接。

  • query:搜索关键字。
  • 返回:搜索结果的文本内容;请求失败时返回 False。

并发与性能

测试结果示例(局域网 / 上游 `so.xxx.cn`):

总请求数 : 100 并发 worker : 50 成功 : 100 失败 : 0 总耗时(秒) : 67.68 吞吐(QPS) : 1.48 平均延迟(秒) : 27.284 最小延迟(秒) : 7.203 最大延迟(秒) : 44.418


> 注意:端到端延迟主要取决于 SearXNG 上游实例的响应速度(本例平均约 27s 来自上游 `so.xxx.cn` 较慢),服务本身可稳定承载并发且零失败。若需提升吞吐,可:
> - 换用响应更快 / 自托管的 SearXNG 实例(通过 `SEARXNG_URL` 指定);

常见问题

Q: 客户端报错 Missing session ID? A: 本服务已启用 stateless_http=True,无需 session。若仍报该错,请确认客户端指向的是 /mcp 端点。

Q: 如何在生产环境收紧 CORS? A: 编辑 Server.py 中的 CORSMiddleware,将 allow_origins=["*"] 改为具体来源列表,如 ["https://your-domain.com"]。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选