项目简介
SearxNG 搜索 MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型(LLM)提供网络搜索能力。它利用 SearxNG 这一注重隐私保护的开源元搜索引擎作为后端,使得 LLM 客户端(如 Claude)能够安全、高效地进行网页搜索,并获取格式化的搜索结果。该服务器仅包含 LLM 集成所需的核心功能,从而最大限度地减少上下文窗口的占用。
主要功能点
- 隐私保护的网络搜索: 通过 SearxNG 提供注重用户隐私的网页搜索服务,避免用户追踪。
- 简化的 LLM 接口: 提供简单易用的 API 接口,方便 LLM 客户端集成。
- 兼容 MCP 客户端: 与 Claude Desktop 及其他兼容 MCP 协议的客户端良好兼容。
- 可配置的搜索参数: 允许配置 SearxNG 实例 URL、超时时间、默认结果数量、语言、结果格式等参数,以满足不同需求。
- 优化的搜索结果: 返回清晰、格式化的搜索结果,针对 LLM 的使用场景进行优化。
- 多种部署方式: 支持 pipx/uvx 快速运行、pip 安装、源码安装以及 Docker 部署等多种方式。
- 支持 STDIO 和 SSE 传输协议: 默认使用 STDIO 协议,也支持 SSE 协议,以适应不同的客户端连接需求。
安装步骤
本 MCP 服务器可以通过多种方式安装和运行,推荐使用 'pipx' 或 'uvx',无需安装即可运行,或者使用 Docker 部署。
方式一:使用 pipx 或 uvx 运行 (推荐,无需安装)
- 确保已安装 Python 3.10 或更高版本。
- 安装 'pipx' 或 'uvx' (如果尚未安装):
pip install pipx # 或 pip install uvx - 使用 'pipx run' 或 'uvx run' 命令直接运行服务器:
pipx run searxng-simple-mcp # 或 uvx run searxng-simple-mcp
方式二:使用 pip 安装
- 确保已安装 Python 3.10 或更高版本。
- 使用 'pip' 或 'uv' 安装 'searxng-simple-mcp' 包:
pip install searxng-simple-mcp # 或 uv pip install searxng-simple-mcp - 安装完成后,使用以下命令运行服务器:
python -m searxng_simple_mcp.server
方式三:使用 Docker 运行
- 确保已安装 Docker。
- 拉取预构建的 Docker 镜像:
docker pull ghcr.io/sacode/searxng-simple-mcp:latest - 运行 Docker 容器:
docker run --rm -i ghcr.io/sacode/searxng-simple-mcp:latest
服务器配置 (MCP 客户端配置)
要将此 MCP 服务器与 MCP 客户端(例如 Claude)集成,您需要在客户端的配置文件(例如 Claude 的 '.clauderc' 文件)中添加服务器配置信息。以下是一些配置示例,您可以根据您的运行方式选择合适的配置。
注意: 以下配置中的 'command' 和 'args' 字段指定了 MCP 服务器的启动命令和参数。'env' 字段用于设置服务器运行所需的环境变量。 请务必将 'SEARXNG_MCP_SEARXNG_URL' 替换为您要使用的 SearxNG 实例的 URL。 您可以选择使用公共 SearxNG 实例(例如 https://searx.space 提供的实例)或自托管的 SearxNG 实例。
1. 使用 pipx run (推荐,无需安装):
{ "mcpServers": { "searxng": { "command": "pipx", // 启动命令为 pipx "args": [ "run", "searxng-simple-mcp@latest" // 运行 searxng-simple-mcp 包的最新版本 ], "env": { "SEARXNG_MCP_SEARXNG_URL": "https://your-instance.example.com" // SearxNG 实例 URL,请替换为实际 URL } } } }
2. 使用 uvx run (无需安装):
{ "mcpServers": { "searxng": { "command": "uvx", // 启动命令为 uvx "args": [ "run", "searxng-simple-mcp@latest" // 运行 searxng-simple-mcp 包的最新版本 ], "env": { "SEARXNG_MCP_SEARXNG_URL": "https://your-instance.example.com" // SearxNG 实例 URL,请替换为实际 URL } } } }
3. 使用 Python with pip (需要安装):
{ "mcpServers": { "searxng": { "command": "python", // 启动命令为 python "args": ["-m", "searxng_simple_mcp.server"], // 运行 searxng_simple_mcp.server 模块 "env": { "SEARXNG_MCP_SEARXNG_URL": "https://your-instance.example.com" // SearxNG 实例 URL,请替换为实际 URL } } } }
4. 使用 Docker (无需安装):
{ "mcpServers": { "searxng": { "command": "docker", // 启动命令为 docker "args": [ "run", "--rm", "-i", "--network=host", "-e", "SEARXNG_MCP_SEARXNG_URL=http://localhost:8080", // 通过 -e 参数设置环境变量,SearxNG 实例 URL,请替换为实际 URL "ghcr.io/sacode/searxng-simple-mcp:latest" // 使用 ghcr.io/sacode/searxng-simple-mcp:latest 镜像 ] } } }
注意 Docker 配置: 如果 SearxNG 实例运行在本地主机 (例如 'http://localhost:8080'),请务必使用 '--network=host' 参数,以便 Docker 容器可以访问主机网络。
基本使用方法
成功配置 MCP 客户端后,LLM 客户端即可通过 MCP 协议与 SearxNG 搜索 MCP 服务器通信。客户端可以使用 'web_search' 工具进行网络搜索。例如,在 Claude 中,您可以指示 Claude 使用 'web_search' 工具来查找信息,例如:
请使用 web_search 工具搜索 "最新的自然语言处理技术发展" 并总结搜索结果。
服务器会将搜索请求转发到 SearxNG 实例,并将格式化的搜索结果返回给 LLM 客户端。
环境变量配置
您可以通过环境变量来配置 SearxNG 搜索 MCP 服务器的行为。常用的环境变量包括:
- 'SEARXNG_MCP_SEARXNG_URL': SearxNG 实例的 URL (默认: https://paulgo.io/)
- 'SEARXNG_MCP_TIMEOUT': HTTP 请求超时时间,单位秒 (默认: 10)
- 'SEARXNG_MCP_DEFAULT_RESULT_COUNT': 默认返回的搜索结果数量 (默认: 10)
- 'SEARXNG_MCP_DEFAULT_LANGUAGE': 默认搜索结果语言 (默认: all)
- 'SEARXNG_MCP_DEFAULT_FORMAT': 默认搜索结果格式 (默认: text)
- 'SEARXNG_MCP_LOG_LEVEL': 日志级别 (默认: ERROR)
- 'TRANSPORT_PROTOCOL': 传输协议,可选 'stdio' 或 'sse' (默认: stdio)
您可以通过在运行命令前设置环境变量,或者使用 '.env' 文件进行配置。具体方法请参考仓库 README 文档。
信息
分类
网页与API