使用说明
搜索MCP服务器
一种基于模型上下文协议(MCP)的网络搜索服务器,支持具有自动回退功能的多个搜索引擎。
✨ 特性
- 🔍 多搜索引擎支持
- SerpAPI(推荐-需要API密钥)
- 百度
- 谷歌
- 鸭鸭搜
- SearXNG
- 🔄 自动回退机制
- 🌐 代理支持(自动使用
http://localhost:1081) - 📦 与MCP协议完全兼容
- 🎯 结构化搜索结果(标题、链接、片段)
📦 安装
npm install
npm run build
🚀 用法
选项1:使用SerpAPI(推荐)
为什么选择SerpAPI?
- ✅ 稳定可靠,无防刮擦问题
- ✅ 免费等级:每月100次搜索
- ✅ 支持多个搜索引擎(谷歌、必应、百度等)
- ✅ API官方,快速响应
获取API密钥:
- 访问https://serpapi.com/
- 注册一个免费账户
- 获取API密钥
配置:
# Method 1: Use .env.local file (recommended)
cp .env.example .env.local
# Edit .env.local, add your API Key
# SERPAPI_KEY=your_api_key_here
# Method 2: Use environment variable
export SERPAPI_KEY="your_api_key_here"
测试搜索:
# Build the project
npm run build
# Run test (automatically reads .env.local)
npm run dev
# or
npx tsx src/test.ts
选项2:使用开源引擎(可能会遇到反刮擦)
直接使用代码中实现的scraper引擎,但可能会遇到:
- 503错误
- 验证码阻止
- 超时问题
🔧 Claude代码配置
配置后 .env.local,将MCP服务器添加到Claude Code配置中:
推荐配置(使用.env.local):
{
"mcpServers": {
"search": {
"command": "node",
"args": ["/home/ubuntu/work/search-mcp/dist/index.js"]
}
}
}
或者在配置中指定环境变量:
{
"mcpServers": {
"search": {
"command": "node",
"args": ["/home/ubuntu/work/search-mcp/dist/index.js"],
"env": {
"SERPAPI_KEY": "your_serpapi_key_here"
}
}
}
}
提示: 使用
.env.local密钥管理文件更安全、更方便。
🛠️ 发展
# Development mode
npm run dev
# Build
npm run build
# Run built version
npm start
📖 搜索工具API
MCP服务器提供 web_search 工具具有以下参数:
query(必填):搜索查询字符串engine(可选):要使用的搜索引擎auto(默认):自动尝试所有具有回退功能的引擎serpapi:使用SerpAPI(需要SerpAPI_KEY)baidu:仅使用百度google:仅使用谷歌duckduckgo:仅使用DuckDuckGosearxng:仅使用SearXNG
max_results(可选):最大结果数(1-50,默认值:10)language(可选):语言首选项(默认值:“en”)
💡 使用示例
呼叫克劳德代码:
web_search({
query: "gold price today",
engine: "auto",
max_results: 5
})
🌍 环境变量
https_proxy/HTTPS_PROXY:代理服务器URL(默认值:http://localhost:1081)SERPAPI_KEY:SerpAPI密钥(可选,但强烈推荐)
📂 项目结构
search-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── search/
│ │ ├── base.ts # Search engine base class
│ │ ├── serpapi.ts # SerpAPI implementation (recommended)
│ │ ├── baidu.ts # Baidu search
│ │ ├── google.ts # Google search
│ │ ├── duckduckgo.ts # DuckDuckGo search
│ │ ├── searxng.ts # SearXNG search
│ │ └── manager.ts # Search manager (fallback logic)
│ └── utils/
│ └── http.ts # HTTP client (proxy support)
├── package.json
├── tsconfig.json
├── PLAN.md # Development plan
├── SOLUTION.md # Problem solutions
└── README.md # This file
⚠️ 防刮擦问题
由于各大搜索引擎(谷歌、百度、DuckDuckGo)采取了严格的反抓取措施,直接抓取可能会遇到:
- 503服务不可用
- 验证码阻止
- IP禁令
- 请求超时
强烈建议使用SerpAPI,提供了官方API访问,而无需考虑防刮问题。
看 SOLUTION.md 寻找替代解决方案。
📝 许可证
国际学生委员会
