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 mcp2.MCP标准模式(默认)
在没有REST API端点的情况下通过stdio运行MCP服务器。
uv run mcp-mixsearch --mode stdio
# Or just run without flags (default)
uv run mcp-mixsearch3.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工具
- full_web_search
- 具有内容提取功能的全面网络搜索 - 具有智能后端选择的多引擎搜索 - 高级过滤:时间、语言、地理、内容类型筛选器 - 参数:查询、限制(1-10)、include_content、max_content_length、top_n、recenty_days、来源、语言、国家
- get_web_search_summaries
- 轻量级搜索仅返回摘要 - 与full_web_search具有相同的高级过滤功能 - 参数:查询、限制(1-10)、top_n、最近天数、来源、语言、国家
- 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解析
- 伪用户代理:随机用户代理
许可证
请参阅许可证文件。
