使用说明
SearXNG MCP服务器
一个全面的模型上下文协议(MCP)服务器,提供强大的Gradio web界面,用于使用SearXNG作为后端执行高级web搜索、内容抓取和AI驱动的内容摘要。
特性
🔍 高级网络搜索
- 多引擎支持:谷歌、必应、Brave、DuckDuckGo、雅虎等
- 灵活的结果格式:
- 总结:带有标题、URL和片段的快速结果
- 完整内容:通过智能过滤完成网页内容提取
- AI摘要:AI生成的完整内容摘要(需要OpenAI/OpenRouter API)
- 高级过滤:时间范围、语言、安全搜索和结果计数控件
- 自定义SearXNG实例:用您自己的SearXNG部署覆盖默认实例
🌐 Web内容抓取
- 智能内容提取:自动过滤掉导航、广告和样板
- 多站点优化:维基百科、科技博客和各种网站类型的特殊处理
- Markdown转换:干净、结构化的markdown输出,保留链接和格式
- AI总结:可选的人工智能内容摘要
🛠 诊断和实用程序
- 连接测试:全面的SearXNG实例诊断和故障排除提示
- 日期/时间服务:用于记录和引用的当前时间戳实用程序
- Docker支持:包括SearXNG的完整集装箱设置
🤖 MCP集成
- API终点:通过REST API可用于编程访问的所有函数
- AI系统集成:启用MCP,可与AI助手无缝集成
- 多标签界面:有组织的web界面,每个功能都有专门的部分
设置和安装
-
克隆存储库:
git clone https://github.com/shgsousa/searxng-mcp-server.git cd searxng-mcp-server -
安装所需的软件包(选择一种方法):
# Using pip with requirements.txt pip install -r requirements.txt # OR using the package setup pip install -e . -
运行服务器:
python main.py
用法
服务器提供了一个全面的web界面,其中有多个选项卡用于不同的功能:
🔍 搜索标签
- 在web浏览器中打开Gradio界面(默认: http://localhost:7870)
- 导航到 搜索 标签
- 在文本框中输入您的搜索查询
- 从下拉菜单中选择搜索引擎
- 选择结果格式:
- 总结:快速获得基本信息
- 满的:每个结果的完整网页内容
- AI摘要:AI生成的摘要(需要API密钥)
- 配置高级选项(时间范围、语言、安全搜索、最大结果)
- (可选)指定自定义SearXNG实例URL
- 点击 提交 执行搜索
🌐 Web抓取器选项卡
- 导航到 Web剪贴器 标签
- 输入要抓取的网页的URL
- 可选启用 AI总结 浓缩内容
- 点击 提交 提取和处理内容
🛠 诊断选项卡
- 导航到 诊断 标签
- 可选择输入自定义SearXNG实例URL进行测试
- 点击 提交 运行全面的连接测试
- 查看详细的诊断报告和故障排除提示
🕒 日期和时间选项卡
- 导航到 日期与时间 标签
- 点击 提交 获取当前系统日期和时间
🔌 API访问
所有功能都可以通过REST API端点获得:
/api/search-网络搜索功能/api/scrape-Web内容抓取/api/diagnostics-SearXNG诊断/api/datetime-当前日期/时间
配置
服务器支持通过环境变量或 .env 文件:
核心配置
默认情况下,MCP服务器在以下位置使用本地SearXNG实例 http://localhost:8080.要使用其他SearXNG实例,请执行以下操作:
选项1:环境变量
# On Windows PowerShell
$env:SEARXNG_URL="https://your-searxng-instance.com"
python main.py
选项2:.env文件
创建一个 .env 项目根目录中的文件(您可以使用 .env.example 作为模板):
SEARXNG_URL=https://your-searxng-instance.com
选项3:直接配置
编辑 config.py 文件:
SEARXNG_URL = "https://your-searxng-instance.com"
AI功能配置
AI功能(内容摘要、增强处理)需要OpenAI或OpenRouter API证书:
OpenAI配置:
OPENAI_API_URL=https://api.openai.com/v1
OPENAI_API_TOKEN=your_openai_api_key_here
OPENAI_MODEL=gpt-4o-mini # Optional, defaults to gpt-3.5-turbo
OpenRouter配置(备选):
OPENAI_API_URL=https://openrouter.ai/api/v1
OPENAI_API_TOKEN=your_openrouter_api_key_here
OPENAI_MODEL=openai/gpt-4o-mini # Model format for OpenRouter
高级配置选项
# Server Configuration
HOST=0.0.0.0 # Gradio server host (default: 127.0.0.1)
PORT=7870 # Gradio server port (default: 7870)
MCP_ENABLED=true # Enable MCP server functionality
# Search Configuration
MAX_RESULTS=20 # Maximum search results per query
DEFAULT_RESULTS=10 # Default number of results
DEFAULT_ENGINE=google # Default search engine
# Content Processing
CONTENT_TIMEOUT=30 # Timeout for webpage content fetching (seconds)
SUMMARY_MAX_LENGTH=10000 # Maximum content length for AI summarization
在本地运行SearXNG
该项目包括一个完整的Docker Compose设置,可以运行SearXNG和MCP服务器:
docker-compose up -d
这将:
- 在以下位置启动SearXNG实例
http://localhost:8080 - 启动SearXNG MCP服务器
http://localhost:7870 - 配置它们以自动协同工作
docker-compose.yml文件包括所有必要的配置和卷映射。
MCP集成
该服务器通过Gradio的启动功能启用MCP,使其能够作为工具与AI系统集成。当 MCP_ENABLED=true 在配置中设置,服务器提供:
- 标准化工具界面:与启用MCP的AI助手兼容
- 功能说明:每个可用功能的综合文档
- 类型安全:正确的参数验证和错误处理
- 多模式支持:文本、JSON和markdown输出格式
依赖项
核心依赖关系
- 度:支持MCP集成的Web界面框架
- 请求::用于API调用和web抓取的HTTP客户端
- 美容组4:HTML解析和内容提取
- html2text:将HTML转换为Markdown
- python dotenv:环境变量管理
- openai:用于内容摘要的AI集成(可选)
发展依赖性
- 标记语言:Markdown处理和验证
- pytest:测试框架(用于未来的测试开发)
- 黑色:代码格式
- 薄片8:代码linting
可选依赖关系
- 码头工人:用于集装箱化部署
- antml-mcp:增强的MCP集成功能
发展
使用VS代码任务运行
此项目包括易于执行的VS Code任务:
- 按
Ctrl+Shift+P然后选择“任务:运行任务” - 选择“运行SearXNG MCP服务器”
Docker支持
该项目包括Docker Compose支持,便于部署:
启动所有服务:
docker-compose up -d
停止所有服务:
docker-compose down
更改后重建:
docker-compose up -d --build
查看日志:
docker-compose logs -f
地方发展设置
-
克隆存储库:
git clone https://github.com/shgsousa/searxng-mcp-server.git cd searxng-mcp-server -
安装依赖项:
# Using pip with requirements.txt pip install -r requirements.txt # OR using the package setup pip install -e . -
配置环境变量:
# Copy the example environment file cp .env.example .env # Edit .env with your preferred settings -
运行服务器:
python main.py
API文档
当服务器运行时,API文档将自动可用:
- 交互式文档:参观
/docsSwagger UI的端点 - API架构:可在
/api/docs用于程序化访问 - OpenAPI规范:JSON模式可在
/openapi.json
功能文档
所有主要功能都包括全面的文档字符串,包括:
- 参数说明 具有类型和约束
- 返回值规格 带有示例结构
- 使用示例 适用于常见场景
- 错误处理 信息和故障排除提示
- 性能考虑 最佳实践
故障排除
常见问题
SearXNG连接问题:
- 使用“诊断”选项卡测试SearXNG实例
- 确保SearXNG正在运行,并且可以在配置的URL上访问
- 如果使用自定义实例,请检查防火墙设置
AI摘要不起作用:
- 验证
OPENAI_API_TOKEN在您的环境中设置 - 检查
OPENAI_API_URL指向正确的端点 - 确保您有足够的API信用/配额
内容抓取问题:
- 一些网站阻止自动请求
- 尝试不同的用户代理或请求标头
- 遵守robots.txt和网站服务条款
Docker问题:
- 确保已安装Docker和Docker Compose
- 检查端口7870和8080是否可用
- 使用以下工具查看容器日志
docker-compose logs
许可证
贡献
欢迎拉取请求!对于重大更改,请先打开一个问题来讨论您想要更改的内容。
贡献指南
- 分叉存储库 并创建一个特征分支
- 添加测试 在适用的情况下使用新功能
- 更新文档 包括文档字符串和README
- 遵循代码风格 指南(使用
black用于格式化) - 彻底测试 具有不同的SearXNG实例和配置
- 提交拉取请求 清晰地描述了变化
发展路线图
- []增强的内容过滤和提取算法
- []支持其他人工智能提供商(Anthropic、Cohere等)
- []高级搜索结果排名和相关性评分
- []内置缓存机制,可提高性能
- []WebSocket支持实时搜索更新
- []用于自定义内容处理器的插件系统