搜索引擎聚合服务器

一个基于SearXNG的模型上下文协议(MCP)服务器,提供高级网页搜索、内容抓取和AI内容摘要功能。

  • by shgsousa
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 shgsousa/searxng-mcp-server

使用说明

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界面,每个功能都有专门的部分

设置和安装

  1. 克隆存储库:

    git clone https://github.com/shgsousa/searxng-mcp-server.git
    cd searxng-mcp-server
    
  2. 安装所需的软件包(选择一种方法):

    # Using pip with requirements.txt
    pip install -r requirements.txt
    
    # OR using the package setup
    pip install -e .
    
  3. 运行服务器:

    python main.py
    

用法

服务器提供了一个全面的web界面,其中有多个选项卡用于不同的功能:

🔍 搜索标签

  1. 在web浏览器中打开Gradio界面(默认: http://localhost:7870)
  2. 导航到 搜索 标签
  3. 在文本框中输入您的搜索查询
  4. 从下拉菜单中选择搜索引擎
  5. 选择结果格式:
    • 总结:快速获得基本信息
    • 满的:每个结果的完整网页内容
    • AI摘要:AI生成的摘要(需要API密钥)
  6. 配置高级选项(时间范围、语言、安全搜索、最大结果)
  7. (可选)指定自定义SearXNG实例URL
  8. 点击 提交 执行搜索

🌐 Web抓取器选项卡

  1. 导航到 Web剪贴器 标签
  2. 输入要抓取的网页的URL
  3. 可选启用 AI总结 浓缩内容
  4. 点击 提交 提取和处理内容

🛠 诊断选项卡

  1. 导航到 诊断 标签
  2. 可选择输入自定义SearXNG实例URL进行测试
  3. 点击 提交 运行全面的连接测试
  4. 查看详细的诊断报告和故障排除提示

🕒 日期和时间选项卡

  1. 导航到 日期与时间 标签
  2. 点击 提交 获取当前系统日期和时间

🔌 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

这将:

  1. 在以下位置启动SearXNG实例 http://localhost:8080
  2. 启动SearXNG MCP服务器 http://localhost:7870
  3. 配置它们以自动协同工作

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任务:

  1. 按 Ctrl+Shift+P 然后选择“任务:运行任务”
  2. 选择“运行SearXNG MCP服务器”

Docker支持

该项目包括Docker Compose支持,便于部署:

启动所有服务:

docker-compose up -d

停止所有服务:

docker-compose down

更改后重建:

docker-compose up -d --build

查看日志:

docker-compose logs -f

地方发展设置

  1. 克隆存储库:

    git clone https://github.com/shgsousa/searxng-mcp-server.git
    cd searxng-mcp-server
    
  2. 安装依赖项:

    # Using pip with requirements.txt
    pip install -r requirements.txt
    
    # OR using the package setup
    pip install -e .
    
  3. 配置环境变量:

    # Copy the example environment file
    cp .env.example .env
    
    # Edit .env with your preferred settings
    
  4. 运行服务器:

    python main.py
    

API文档

当服务器运行时,API文档将自动可用:

  • 交互式文档:参观 /docs Swagger 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

许可证

MIT许可证

贡献

欢迎拉取请求!对于重大更改,请先打开一个问题来讨论您想要更改的内容。

贡献指南

  1. 分叉存储库 并创建一个特征分支
  2. 添加测试 在适用的情况下使用新功能
  3. 更新文档 包括文档字符串和README
  4. 遵循代码风格 指南(使用 black 用于格式化)
  5. 彻底测试 具有不同的SearXNG实例和配置
  6. 提交拉取请求 清晰地描述了变化

发展路线图

  • []增强的内容过滤和提取算法
  • []支持其他人工智能提供商(Anthropic、Cohere等)
  • []高级搜索结果排名和相关性评分
  • []内置缓存机制,可提高性能
  • []WebSocket支持实时搜索更新
  • []用于自定义内容处理器的插件系统