多引擎搜索服务

MCP MixSearch是一款支持多搜索引擎的高级网络搜索服务,提供智能后端选择、内容提取和高级过滤功能。

  • by geosp
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 geosp/mcp-mixsearch

使用说明

MCP混音搜索

一个全面的模型上下文协议(MCP)服务器,用于高级网络搜索功能,支持多引擎和智能后端选择。

特性

  • 多引擎搜索:通过DDGS库访问多个搜索引擎(Brave、DuckDuckGo、Google、Bing、Yandex)
  • 高级过滤:基于时间、地理、语言和内容类型的过滤
  • 智能后端选择:根据参数自动选择最佳搜索引擎
  • 完整内容提取:从搜索结果和特定URL中提取可读内容
  • 双接口:具有相同功能的MCP协议和REST API
  • 优雅的退路:API失败时基于浏览器的可靠性搜索

快速开始

安装并运行

# Install
uv sync

# Run in MCP stdio mode (default)
uv run mcp-mixsearch

# Run in MCP HTTP mode
uv run mcp-mixsearch --mode mcp

# Or run with REST API
uv run mcp-mixsearch --mode rest

配置

在中设置环境变量 .env 文件或导出它们:

# Server Configuration
MCP_HOST=localhost
MCP_PORT=3000
MCP_TRANSPORT=stdio  # or 'http'
MCP_AUTH_ENABLED=true
MCP_CORS_ORIGINS="http://localhost:3000,http://localhost:5173"

# Web Search Configuration
BRAVE_API_KEY=your_brave_api_key_here
MAX_CONTENT_LENGTH=500000
MAX_CONCURRENT_REQUESTS=5

# Logging
LOG_LEVEL=INFO

运行模式

mcp-mixsearch支持三种不同的运行模式:

1.MCP HTTP模式

在没有REST API端点的情况下通过HTTP运行MCP服务器。

uv run mcp-mixsearch --mode mcp

2.MCP标准模式(默认)

在没有REST API端点的情况下通过stdio运行MCP服务器。

uv run mcp-mixsearch --mode stdio
# Or just run without flags (default)
uv run mcp-mixsearch

3.REST API+MCP模式

通过HTTP运行REST API端点和MCP协议。

uv run mcp-mixsearch --mode rest

环境变量

您还可以使用环境变量控制模式:

# MCP over HTTP
MCP_TRANSPORT=http MCP_ONLY=true uv run mcp-mixsearch

# MCP over stdio
MCP_TRANSPORT=stdio MCP_ONLY=true uv run mcp-mixsearch

# REST API + MCP over HTTP
MCP_TRANSPORT=http MCP_ONLY=false uv run mcp-mixsearch

在HTTP模式下,服务器在 http://localhost:3000 与:

  • MCP端点: http://localhost:3000/mcp
  • REST API文档: http://localhost:3000/docs (当启用REST API时)
  • 健康检查: http://localhost:3000/health (当启用REST API时)

可用工具

MCP工具

  1. full_web_search

    • 具有内容提取功能的全面网络搜索
    • 具有智能后端选择的多引擎搜索
    • 高级过滤:时间、语言、地理、内容类型筛选器
    • 参数:查询、限制(1-10)、include_content、max_content_length、top_n、recenty_days、来源、语言、国家
  2. get_web_search_summaries

    • 轻量级搜索仅返回摘要
    • 与full_web_search具有相同的高级过滤功能
    • 参数:查询、限制(1-10)、top_n、最近天数、来源、语言、国家
  3. get_single_web_page_content

    • 从特定URL提取内容
    • 参数:url,max_content_length

REST API端点

  • GET /search/full_web_search -与 full_web_search 具有相同的参数
  • GET /search/get_web_search_summaries -与 get_web_search_summaries 具有相同的参数
  • GET /search/get_single_web_page_content -与 get_single_web_page_content

高级搜索功能

多引擎架构

  • 主要的,重要的:支持多种后端的DDGS库(Brave、DuckDuckGo、Google、Bing、Yandex)
  • 智能后端选择:根据参数自动选择最佳发动机
  • 回退:基于浏览器的可靠性搜索

支持的参数

  • 核心: query (必填), limit/top_n, include_content, max_content_length
  • 时间滤波: recency_days (1=天,7=周,30=月,365=年)
  • 内容类型: source (“新闻”、“图片”、“视频”、“网络”)
  • 语言过滤: language (例如,“en”、“es”、“fr”、“de”)
  • 地理过滤: country (例如,“美国”、“英国”、“法国”、“德国”)

用法示例

基本搜索:

# MCP
{"query": "AI developments", "limit": 5}

# REST
GET /search/get_web_search_summaries?query=AI%20developments&limit=5

高级过滤:

# MCP
{"query": "climate policy", "country": "FR", "language": "fr", "recency_days": 30, "source": "news"}

# REST
GET /search/get_web_search_summaries?query=climate%20policy&country=FR&language=fr&recency_days=30&source=news

项目结构

mcp-mixsearch/
├── features/             # Feature implementations
│   └── web_search/       # Web search feature
│       ├── __init__.py
│       ├── models.py     # Pydantic models
│       ├── service.py    # Multi-engine search logic
│       ├── tool.py       # MCP tool registrations
│       ├── routes.py     # REST API routes
│       ├── instructions.md          # Full web search documentation
│       ├── instructions_summaries.md # Search summaries documentation
│       └── instructions_single_page.md # Single page extraction documentation
├── config.py             # Configuration management
├── server.py             # Main server entry point
├── pyproject.toml        # Project configuration
├── uv.lock              # Dependency lock file
├── README.md
└── LICENSE

发展

测试

pytest

建筑

uv build

依赖项

  • mcp天气:核心MCP基础设施
  • fastmcp:MCP协议实现
  • httpx:用于内容提取的HTTP客户端
  • 剧作家:动态内容的浏览器自动化
  • beautifulsoup4:HTML解析
  • 伪用户代理:随机用户代理

许可证

请参阅许可证文件。