AI Search MCP
通用 AI 搜索 MCP 服务器,支持任何兼容 OpenAI API 格式的 AI 模型进行联网搜索
Ask AI about AI Search MCP
Powered by Claude · Grounded in docs
I know everything about AI Search MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
AI Search MCP Server
通用 AI 搜索 MCP 服务器,支持任何兼容 OpenAI API 格式的 AI 模型进行联网搜索。
高性能 Rust 实现,支持真正的并发搜索。
特性
- ✅ 支持任何 OpenAI API 兼容的模型
- ✅ 支持流式和非流式响应
- ✅ 自动过滤 AI 思考内容
- ✅ 自动时间注入:每次搜索自动注入当前时间
- ✅ 多维度搜索:自动拆分复杂查询为多个子问题并行搜索
- ✅ 智能重试机制:自动重试失败的请求
- ✅ 高性能并发:基于 Tokio 异步运行时
- ✅ 零依赖部署:单一二进制文件
- ✅ 完全可配置(支持自定义系统提示词)
快速开始
1. 安装
一键安装(推荐):
# Windows (PowerShell)
irm https://raw.githubusercontent.com/lianwusuoai/ai-search-mcp/main/scripts/install.ps1 | iex
# Linux/macOS
curl -fsSL https://raw.githubusercontent.com/lianwusuoai/ai-search-mcp/main/scripts/install.sh | bash
手动安装:
# 使用 pip
pip install ai-search-mcp
# 或使用 uvx(推荐)
uvx ai-search-mcp
2. 配置
Web UI 配置(推荐):
# 启动配置界面
ai-search-mcp --http --port 11000
# 浏览器打开
http://localhost:11000/config
配置文件(~/.ai-search-mcp/config.json):
{
"api_url": "http://localhost:10000",
"api_key": "your-api-key",
"search_model_id": "Grok",
"analysis_model_id": "MiniMax",
"timeout": 180,
"stream": true,
"filter_thinking": true,
"analysis_retry_count": 1,
"search_retry_count": 0,
"log_level": "INFO",
"max_query_plan": 10
}
3. 集成到 MCP 客户端
方式 1:stdio 模式(推荐,本地使用)
编辑配置文件(Kiro: .kiro/settings/mcp.json | Claude Desktop: claude_desktop_config.json):
{
"mcpServers": {
"ai-search": {
"command": "uvx",
"args": ["ai-search-mcp"]
}
}
}
特点:
- 自动启动进程,无需手动管理
- 通过标准输入/输出通信
- 客户端关闭时自动退出
- 适合:IDE 集成(Kiro、Claude Desktop、Cursor)
方式 2:HTTP 模式(启动独立服务器)
{
"mcpServers": {
"ai-search": {
"command": "ai-search-mcp",
"args": ["--http", "--port", "11000"]
}
}
}
特点:
- 启动独立 HTTP 服务器进程
- 支持多客户端并发连接
- 需要手动管理进程生命周期
- 适合:临时测试、开发调试
方式 3:SSE 模式(连接远程服务器)
前提:需要先启动 HTTP 服务器(Docker 或手动启动)
# Docker 启动(推荐)
docker-compose up -d
# 或手动启动
ai-search-mcp --http --port 11000
配置:
{
"mcpServers": {
"ai-search": {
"url": "http://localhost:11000/sse?key=xinchen"
}
}
}
特点:
- 连接到已运行的远程服务器
- 通过 SSE 实时推送消息
- 服务器独立运行,支持多客户端
- 适合:生产环境、远程部署、多客户端共享
对比:
| 特性 | stdio 模式 | HTTP 模式 | SSE 模式 |
|---|---|---|---|
| 启动方式 | 自动启动进程 | 自动启动进程 | 连接远程服务器 |
| 服务器管理 | 自动管理 | 手动管理 | 独立运行 |
| 多客户端 | ❌ | ✅ | ✅ |
| 远程访问 | ❌ | ❌ | ✅ |
| 适用场景 | 本地 IDE | 开发测试 | 生产环境 |
**说明**:
- `url`:SSE 端点地址,通过 query 参数传递 API key
- `transport`:必须设置为 `"sse"`
- `key=xinchen`:API 认证(默认 key 是 `xinchen`,生产环境请修改)
## 运行模式说明
### stdio 模式(默认)
- 由 MCP 客户端按需启动,作为子进程运行
- 适用于 IDE 集成(Kiro、Claude Desktop、Cursor 等)
- 客户端关闭时自动退出
### HTTP 模式
**Docker 部署(推荐)**:
```bash
# 快速启动
.\docker-start.ps1 # Windows
./docker-start.sh # Linux/macOS
# 或手动启动
docker-compose up -d
手动启动:
ai-search-mcp --http --port 11000
对比:
| 特性 | stdio 模式 | HTTP (Docker) | HTTP (手动) |
|---|---|---|---|
| 启动方式 | 自动 | 一次性设置 | 每次手动 |
| 自动重启 | ✅ | ✅ | ❌ |
| 多客户端 | ❌ | ✅ | ✅ |
| 适用场景 | IDE 集成 | 生产环境 | 临时测试 |
配置说明
核心配置
| 变量 | 必需 | 默认值 | 说明 |
|---|---|---|---|
api_url | ✅ | - | AI API 地址 |
api_key | ✅ | - | API 密钥 |
search_model_id | ✅ | - | 搜索查询生成模型 ID |
analysis_model_id | ❌ | 未设置用 search_model_id | 查询拆分模型 ID |
timeout | ❌ | 180 | 超时时间(秒) |
stream | ❌ | true | 是否启用流式响应 |
filter_thinking | ❌ | true | 是否过滤思考内容 |
analysis_retry_count | ❌ | 1 | 分析重试次数 |
search_retry_count | ❌ | 0 | 搜索重试次数 |
max_query_plan | ❌ | 10 | 复杂查询拆分维度数(建议 1~1000) |
模型使用逻辑
系统根据 max_query_plan 和 analysis_model_id 配置决定使用哪些模型:
graph TD
A[用户查询] --> B{max_query_plan = 1?}
B -->|是| C[单查询模式]
B -->|否| D[多维度搜索模式]
C --> E[使用搜索模型]
E --> F[使用搜索系统提示词]
F --> G[返回搜索结果]
D --> H{是否配置分析模型?}
H -->|是| I[使用分析模型拆分]
H -->|否| J[使用搜索模型拆分]
I --> K[使用查询拆分提示词]
J --> K
K --> L[生成多个子查询]
L --> M[并发执行子查询]
M --> N[使用搜索模型]
N --> F
F --> O[返回各子查询结果]
O --> P[AI 合并所有结果]
P --> Q[返回完整答案]
关键点:
max_query_plan = 1:不拆分查询,不使用分析模型max_query_plan > 1+ 无分析模型:使用搜索模型拆分查询max_query_plan > 1+ 有分析模型:使用分析模型拆分查询
模型配置建议:
单模型配置: "search_model_id": "Grok" 单联网搜索模型
双模型配置: "search_model_id": "Grok" 使用可以高并发渠道的联网搜索模型 "analysis_model_id": "MiniMax" 建议使用非思考模型,提升速度
### 提示词配置
**推荐方式**:通过 Web UI 配置(`http://localhost:11000`)
**配置文件方式**:
```json
{
"system_prompt": "自定义搜索系统提示词(必须保留 {current_time} 占位符)",
"split_prompt": "自定义查询拆分提示词"
}
详细说明请查看 提示词配置说明
工具说明
web_search - 网络搜索
输入:{"query": "搜索内容"}
多维度搜索(由 max_query_plan 控制):
= 1:直接返回搜索结果> 1:首次调用返回拆分要求,AI 需拆分成 N 个子问题并行搜索
多维度搜索示例
简单查询(max_query_plan = 1)
用户:Python 是什么
→ AI 调用:web_search("Python 是什么")
→ MCP 返回:直接返回搜索结果
复杂查询(max_query_plan = 10)
用户:春节北京到上海高铁票价
→ AI 首次调用:web_search("春节北京到上海高铁票价")
→ MCP 返回:拆分要求(提示拆成多个子问题)
→ AI 并行调用:
web_search("[SUB_QUERY] 春节北京到上海直达高铁票价")
web_search("[SUB_QUERY] 北京到上海中转方案票价对比")
web_search("[SUB_QUERY] 北京周边站点到上海买长乘短策略")
→ MCP 返回:每个子查询的搜索结果
→ AI 整合:自动整合结果,返回完整答案
性能提升:Rust 版本并发执行子查询,总耗时约 1 秒(Python 顺序执行约 3 秒)
常见问题
如何更新?
# 升级 Python 包
pip install --upgrade ai-search-mcp
# 自动检测并更新 Docker(如果使用)
ai-search-mcp-deploy
Docker 容器无法启动?
# 查看日志
docker-compose logs
# 重新构建
docker-compose down
docker-compose up -d --build
版本不一致?
# 查看 Python 包版本(MCP 服务器版本)
ai-search-mcp --version
# 查看 Docker 容器版本(HTTP 服务器版本)
curl http://localhost:11000/health
# 强制重新部署(同步版本)
ai-search-mcp-deploy --force
许可证
MIT License
