使用说明
SearXNG MCP服务器
一种集成了以下功能的模型上下文协议(MCP)服务器 SearXNG,为Claude Desktop、Cline和其他MCP兼容应用程序等MCP客户端提供强大的网络搜索功能。
特性
- 🔍 网页搜索:在SearXNG聚合的多个搜索引擎中搜索
- 🎯 类别筛选:按类别筛选(一般、图像、视频、新闻等)
- 🌐 多引擎:查询特定的搜索引擎或全部使用它们
- 🌍 本地化:以不同语言搜索
- ⏰ 时间滤波:按时间范围(日、月、年)筛选结果
- 🛡️ 安全搜索:可配置的安全搜索级别
- 💡 自动完成:获取查询完成的搜索建议
- 🔧 配置访问:查询SearXNG实例功能
- 🏥 健康监测:检查实例运行状况
先决条件
- Python 3.10或更高版本
- 正在运行的SearXNG实例(本地或远程)
- MCP客户端(例如,Claude Desktop、Cline)
安装
来源
- 克隆存储库:
git clone https://github.com/martinchen448/searxng-mcp-server.git
cd searxng-mcp-server
- 安装软件包:
pip install -e .
来自PyPI(即将推出)
pip install searxng-mcp-server
配置
适用于克劳德桌面
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
对于本地实例(推荐):
{
"mcpServers": {
"searxng": {
"command": "python",
"args": ["-m", "searxng_mcp_server"],
"env": {
"SEARXNG_BASE_URL": "http://localhost:8080/",
"SEARXNG_VERIFY_SSL": "false"
}
}
}
}
对于公共实例:
{
"mcpServers": {
"searxng": {
"command": "python",
"args": ["-m", "searxng_mcp_server"],
"env": {
"SEARXNG_BASE_URL": "https://searx.be",
"SEARXNG_VERIFY_SSL": "true"
}
}
}
}
对于Cline(VSCode扩展)
添加到MCP设置文件中:
路径: <User Directory>/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json
对于本地实例(推荐):
{
"mcpServers": {
"searxng": {
"command": "python",
"args": ["-m", "searxng_mcp_server"],
"env": {
"SEARXNG_BASE_URL": "http://localhost:8080/",
"SEARXNG_VERIFY_SSL": "false"
}
}
}
}
对于公共实例:
{
"mcpServers": {
"searxng": {
"command": "python",
"args": ["-m", "searxng_mcp_server"],
"env": {
"SEARXNG_BASE_URL": "https://searx.be",
"SEARXNG_VERIFY_SSL": "true"
}
}
}
}
环境变量
SEARXNG_BASE_URL(必填):SearXNG实例的基本URL- 例子:
https://search.example.com或http://localhost:8888
- 例子:
SEARXNG_VERIFY_SSL(可选):是否验证SSL证书- 违约:
true - 吃起来
false用于自签名证书或本地开发
- 违约:
MCP检验员测试
在与Claude Desktop或Cline一起使用之前,请使用MCP Inspector测试您的服务器。
快速开始
使用提供的便利脚本:
Windows(命令提示符):
run-inspector.bat
Windows(PowerShell):
.\run-inspector.ps1
Linux/macOS:
chmod +x run-inspector.sh
./run-inspector.sh
或者直接运行:
# Set environment variable first
export SEARXNG_BASE_URL=https://searx.be # Linux/macOS
set SEARXNG_BASE_URL=https://searx.be # Windows CMD
$env:SEARXNG_BASE_URL="https://searx.be" # Windows PowerShell
# Then run inspector
npx @modelcontextprotocol/inspector python -m searxng_mcp_server
检查器将在浏览器中打开(通常http://localhost:5173)您可以在哪里:
- 交互式测试所有工具
- 查看实时请求/响应日志
- 检查资源
- 调试连接问题
有关详细的测试说明,请参阅 MCP检验员测试.
设置SearXNG
如果你没有SearXNG实例,你可以:
使用公共实例
在以下位置查找公共实例:https://searx.space/
公共实例示例:
- https://searx.be
- https://searx.tiekoetter.com
- https://search.sapti.me
重要提示:
- 公共实例可能有速率限制或约束
- 一些公共实例阻止自动请求(HTTP 403错误)
- 为了可靠运行,请考虑运行自己的实例
- 如果遇到403错误,请尝试其他公共实例或设置本地实例
运行自己的实例
使用Docker(推荐):
docker pull searxng/searxng
docker run -d -p 8888:8080 \
-v "${PWD}/searxng:/etc/searxng" \
-e "BASE_URL=http://localhost:8888/" \
-e "INSTANCE_NAME=my-instance" \
searxng/searxng
看 SearXNG文件 更多部署选项。
可用工具
1.搜索
跨多个搜索引擎执行网络搜索。
参数:
query(必填):搜索查询字符串categories(可选):类别数组(例如。,["general", "images", "news"])engines(可选):特定引擎阵列(例如。,["google", "bing"])language(可选):语言代码(默认值:"en")page(可选):分页页码(默认值:1)time_range(可选):按时间筛选(“天”、“月”、“年”)safesearch(可选):安全搜索级别(0=关闭,1=中等,2=严格)
例子:
{
"query": "Python async programming",
"categories": ["general"],
"language": "en",
"time_range": "year",
"safesearch": 0
}
2.获取建议
获取查询前缀的自动补全建议。
参数:
query(必填):查询前缀language(可选):语言代码(默认值:"en")
例子:
{
"query": "machine learn",
"language": "en"
}
3.健康检查
检查SearXNG实例是否可访问且健康。
参数: 无
4.get_config
获取SearXNG实例的配置和功能。
参数: 无
返回以下信息:
- 可用的搜索引擎
- 已启用类别
- 支持的语言
- 活动插件
- 实例设置
可用资源
searxng://config
作为持久资源访问SearXNG实例配置。
searxng://health
SearXNG实例作为持久资源的运行状况。
使用示例
示例1:基本网络搜索
询问您的MCP客户:
Search for "best practices for Python async programming"
示例2:图像搜索
询问您的MCP客户:
Search for images of "northern lights" from the past month
服务器将使用:
{
"query": "northern lights",
"categories": ["images"],
"time_range": "month"
}
示例3:新闻搜索
询问您的MCP客户:
Find recent news about artificial intelligence
服务器将使用:
{
"query": "artificial intelligence",
"categories": ["news"],
"time_range": "day"
}
示例4:获取搜索建议
询问您的MCP客户:
Get search suggestions for "climate"
搜索类别
SearXNG中的可用类别:
general-一般网络搜索images-图片搜索videos-视频搜索news-新闻文章music-音乐搜索files-文件搜索social media-社交媒体帖子science-科学文章it-IT/编程资源map-地图和位置
发展
设置开发环境
# Clone the repository
git clone https://github.com/martinchen448/searxng-mcp-server.git
cd searxng-mcp-server
# Install with dev dependencies
pip install -e ".[dev]"
运行测试
pytest
代码格式化
# Format code with black
black src tests
# Lint with ruff
ruff check src tests
# Type checking with mypy
mypy src
项目结构
searxng-mcp-server/
├── src/
│ └── searxng_mcp_server/
│ ├── __init__.py
│ ├── server.py # MCP server implementation
│ └── client.py # SearXNG API client
├── tests/
│ ├── test_server.py
│ └── test_client.py
├── pyproject.toml
└── README.md
故障排除
连接问题
如果遇到连接错误:
- 验证SearXNG URL:确保
SEARXNG_BASE_URL正确且可访问 - 检查SSL证书:对于自签名证书,设置
SEARXNG_VERIFY_SSL=false - 测试实例:访问浏览器中的URL以确保其正在运行
- 检查防火墙:确保没有防火墙阻止连接
SSL证书错误
对于自签名证书或本地开发:
{
"env": {
"SEARXNG_BASE_URL": "http://localhost:8888",
"SEARXNG_VERIFY_SSL": "false"
}
}
没有结果
如果搜索未返回结果:
- 检查实例配置:使用
get_config查看可用引擎的工具 - 确认发动机已启用:某些实例的引擎可能有限
- 尝试不同类别:某些类别可能不可用
- 检查实例日志:查看SearXNG日志中的错误
贡献
欢迎投稿!请按照以下步骤操作:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 进行更改
- 运行测试和梳理
- 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
相关项目
支持
更新日志
看 更改日志.md 查看版本历史和更改。
