关于 SearXNG MCP Server
SearXNG MCP Server 是一个与 SearXNG 集成的 MCP 服务,提供注重隐私的元搜索能力。它可以合并多个搜索引擎的结果,并支持配置多个 SearXNG 实例作为备用。
主要功能
- 01合并多个搜索引擎的元搜索结果
- 02支持通用、新闻、科学等多个搜索类别
- 03按语言与时间范围筛选结果
- 04三级安全搜索过滤
- 05支持多个 SearXNG 实例的备用切换
适用场景
- 01为 AI 助手提供网页搜索结果
- 02在新闻、科学等类别中检索特定主题的信息
- 03在本地或自托管的 SearXNG 环境中进行隐私友好的搜索
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 web_search 工具,用于执行元搜索。它通过环境变量 SEARXNG_INSTANCES 指定后端 SearXNG 实例。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
SearXNG MCP 服务
一款集成 SearXNG 的 MCP 服务实现,提供注重隐私的元搜索功能。
功能
- 元搜索:整合多个搜索引擎的结果
- 注重隐私:不跟踪、不分析用户特征
- 多种类别:支持综合、新闻、科学、文件、图片、视频等
- 语言支持:可使用特定语言或所有语言进行搜索
- 时间范围筛选:按天、周、月或年筛选结果
- 安全搜索:提供三个级别的安全搜索筛选
- 备用支持:配置多个 SearXNG 实例以提高可靠性
安装
npm install -g @kevinwatt/mcp-server-searxng
使用方法
直接运行
mcp-server-searxng
在 Dive Desktop 中使用
- 在 Dive Desktop 中点击“+ Add MCP Server”
- 复制并粘贴以下配置:
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"@kevinwatt/mcp-server-searxng"
]
}
}
}
- 点击“Save”安装 MCP 服务
工具文档
- web_search
- 在多个引擎中执行元搜索
- 输入:
query(字符串):搜索词page(数字,可选):页码(默认值:1)language(字符串,可选):语言代码(例如:'en'、'all',默认值:'all')categories(数组,可选):搜索类别(默认值:['general'])- 可用类别:“general”、“news”、“science”、“files”、“images”、“videos”、“music”、“social media”、“it”
time_range(字符串,可选):时间筛选(all_time/day/week/month/year,默认值:'all_time')safesearch(数字,可选):安全搜索级别(0:无,1:中等,2:严格,默认值:1)
- 行为:
- 按顺序尝试
SEARXNG_INSTANCES中列出的实例;第一个返回搜索结果的实例即为所用实例。 - 可连接但没有匹配结果的实例会返回
No results found for "<query>".——空搜索是正常结果,并非错误。 - 只有在所有实例均无法连接时,才会返回错误
All SearXNG instances failed:包括连接错误、非 2xx 响应,或返回内容不是有效的 SearXNG JSON 搜索响应。
- 按顺序尝试
开发
git clone https://github.com/kevinwatt/mcp-server-searxng.git
cd mcp-server-searxng
npm install
npm run build # compiles to dist/src/
npm test # unit tests; HTTP is mocked, no live instance needed
node dist/src/index.js # run the server on stdio
使用 npm test -- -t "should resolve urls correctly" 运行单个测试用例。
许可证
此 MCP 服务基于 MIT License 许可。详情请参阅 LICENSE 文件。
前提条件
你需要运行一个本地 SearXNG 实例。设置方法如下:
使用 Docker 运行 SearXNG
快速开始
# Create config directory
mkdir -p searxng
# Create config file
tee searxng/settings.yml << EOF
use_default_settings: true
server:
bind_address: "0.0.0.0"
secret_key: "CHANGE_THIS_TO_SOMETHING_SECURE" # Generate a random 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
# Start container
docker run -d \
--name searxng \
-p 8080:8080 \
-v "$(pwd)/searxng:/etc/searxng" \
searxng/searxng
测试搜索功能
# Test JSON API with curl
curl -v 'http://localhost:8080/search?q=test&format=json'
# Or visit in browser
http://localhost:8080/search?q=test
容器管理
# Stop container
docker stop searxng
# Remove container
docker rm searxng
# View container logs
docker logs searxng
# Enable auto-start on boot
docker update --restart always searxng
--restart always 标志可确保:
- Docker 守护进程启动时自动启动容器
- 容器崩溃时自动重启
- 除非用户明确停止容器,否则容器被停止时会自动重启
自定义配置
编辑 searxng/settings.yml 以:
- 修改搜索引擎列表
- 调整安全设置
- 配置界面语言
- 更改 API 限制
有关详细配置选项,请参阅 SearXNG 文档
环境变量
-
SEARXNG_INSTANCES:以逗号分隔的 SearXNG 实例 URL 列表,按顺序尝试作为备用实例。条目可以包含路径前缀,用于基于路径的反向代理路由(例如https://example.com/searx),末尾的斜杠可有可无。 默认值:http://localhost:8080 -
SEARXNG_USER_AGENT:请求使用的自定义 User-Agent 标头 默认值:MCP-SearXNG/1.0 -
NODE_TLS_REJECT_UNAUTHORIZED:设为 '0' 可跳过 SSL 证书验证(用于开发时使用自签名证书) 默认值:undefined(启用 SSL 验证)
包含所有选项的配置示例:
{
"mcpServers": {
"searxng": {
"name": "searxng",
"command": "npx",
"args": [
"-y",
"@kevinwatt/mcp-server-searxng"
],
"env": {
"SEARXNG_INSTANCES": "http://localhost:8080,https://searx.example.com",
"SEARXNG_USER_AGENT": "CustomBot/1.0",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}
⚠️ 警告:不建议在生产环境中禁用 SSL 证书验证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。