使用说明
SearXNG MCP服务器
一种模型上下文协议(MCP)服务器,通过以下方式提供网络搜索功能 SearXNG。此服务器允许像Raycast、Zed和OpenCode这样的MCP客户端使用您自己的SearXNG实例执行web搜索。
请切中要害,告诉我如何操作这个东西!
以下是运行此mcp服务器的推荐方法:
- SearXNG服务器在容器中运行,mcp服务器在主机上运行。
$ docker/searxng_run.sh$ cargo install --path .
- SearXNG服务器在容器中运行,mcp服务器在容器内运行。
$ docker/searxng_run.sh$ ./mcp_build.sh$ ./mcp_start.sh
如果你还想要什么,那就靠你自己了。 阅读脚本 第一 在运行它们之前,以防您需要进行更改!
特性
- 网页搜索:使用SearXNG从多个搜索引擎汇总的结果搜索网络
先决条件
- 锈
- Docker(如果你打算在容器中运行SearXNG)
快速设置
要使用docker进行交互式设置,请运行提供的设置脚本:
./setup.sh
注意:此脚本将把SearXNG的主机端口8080映射到容器端口8080。它还创建了一个searxng网络,这样如果你决定在docker容器中运行mcp服务器,它将能够与searxng容器通信。如果您不喜欢此配置,请对脚本进行适当的更改。
此脚本提供了一个交互式菜单,将:
- 检查Docker可用性
- 构建SearXNG Docker镜像
- 启动SearXNG容器
- 构建MCP Docker镜像
它不会启动MCP服务器容器,因为这应该在MCP客户端的配置中完成。
手动Docker设置
如果你更喜欢用Docker手动设置,你可以参考这些脚本:
- mcp-build.sh -演示如何构建MCP服务器映像
- docker/searxng_run.sh -演示如何构建和运行SearXNG服务器容器
基本手动设置:
# Build and run SearXNG
cd docker/
docker build -t searxng-server .
docker run -d --name searxng-server --network searxng -v "searxng_config:/etc/searxng/" -v "searxng_data:/var/cache/searxng/" searxng-server
cd ..
# Build MCP client
docker build -t searxng-mcp .
安装
- 克隆此存储库:
git clone https://github.com/nicholasq/searxng-mcp
cd searxng-mcp
- 安装项目:
cargo install --path .
配置
可选环境变量:
SEARXNG_BASE_URLSearXNG实例的url(默认值:“http://localhost:8080")SEARXNG_TIMEOUT_SECONDS:HTTP超时(秒)(默认值:30)SEARXNG_MAX_RESULTS:要显示的最大结果数(默认值:20)SEARXNG_VALIDATION_TIMEOUT_SECONDS:验证超时(秒)(默认值:10)
用法
与Zed
- 将服务器添加到Zed配置文件中:
macOS/Linux: ~/.config/zed/settings.json
{
"mcpServers": {
"searxng": {
"source": "custom",
"env": {
"SEARXNG_BASE_URL": "http://localhost:8080"
},
"command": "searxng-mcp",
"args": []
}
}
}
刀具参数
这 searxng_search 工具接受以下参数:
query(必填):搜索查询字符串categories(可选):逗号分隔的类别列表(例如,“一般、新闻、图像”)engines(可选):以逗号分隔的要使用的特定引擎列表language(可选):结果的语言代码(例如,“en”、“fr”、“de”)page(可选):分页页码(从1开始)time_range(可选):时间过滤器-“日”、“月”或“年”safe_search(可选):安全搜索级别-0(无),1(中等),2(严格)
查询示例
问Zed:
- “搜索‘rust编程语言’”
- “搜索过去一个月有关气候变化的最新消息”
- “使用安全搜索查找猫的图像”
- “在学术资源中搜索‘机器学习’”
发展
运行测试
# Run unit tests
cargo test
# Run integration tests (requires SearXNG at localhost:8080)
cargo test -- --ignored
项目结构
src/
├── main.rs # MCP server implementation
├── config.rs # Configuration management
├── search.rs # SearXNG API client
└── errors.rs # Error types and handling
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。