WebSearch-MCP
一个模型上下文协议服务器,它使 AI 助手能够执行实时网络搜索,并通过爬虫 API 从互联网检索最新的信息。
Tools
web_search
README
WebSearch-MCP
一个模型上下文协议 (MCP) 服务器实现,通过 stdio 传输提供网络搜索功能。此服务器与 WebSearch 爬虫 API 集成以检索搜索结果。
目录
关于
WebSearch-MCP 是一个模型上下文协议服务器,为支持 MCP 的 AI 助手提供网络搜索功能。它允许像 Claude 这样的 AI 模型实时搜索网络,检索关于任何主题的最新信息。
该服务器与处理实际网络搜索的爬虫 API 服务集成,并使用标准化的模型上下文协议与 AI 助手通信。
安装
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 WebSearch:
npx -y @smithery/cli install @mnhlt/WebSearch-MCP --client claude
手动安装
npm install -g websearch-mcp
或者无需安装即可使用:
npx websearch-mcp
配置
WebSearch MCP 服务器可以使用环境变量进行配置:
API_URL: WebSearch 爬虫 API 的 URL (默认:http://localhost:3001)MAX_SEARCH_RESULT: 未在请求中指定时返回的最大搜索结果数 (默认:5)
示例:
# 配置 API URL
API_URL=https://crawler.example.com npx websearch-mcp
# 配置最大搜索结果数
MAX_SEARCH_RESULT=10 npx websearch-mcp
# 同时配置两者
API_URL=https://crawler.example.com MAX_SEARCH_RESULT=10 npx websearch-mcp
设置 & 集成
设置 WebSearch-MCP 涉及两个主要部分:配置执行实际网络搜索的爬虫服务,以及将 MCP 服务器与您的 AI 客户端应用程序集成。
设置爬虫服务
WebSearch MCP 服务器需要一个爬虫服务来执行实际的网络搜索。您可以使用 Docker Compose 轻松设置爬虫服务。
先决条件
启动爬虫服务
- 创建一个名为
docker-compose.yml的文件,内容如下:
version: '3.8'
services:
crawler:
image: laituanmanh/websearch-crawler:latest
container_name: websearch-api
restart: unless-stopped
ports:
- "3001:3001"
environment:
- NODE_ENV=production
- PORT=3001
- LOG_LEVEL=info
- FLARESOLVERR_URL=http://flaresolverr:8191/v1
depends_on:
- flaresolverr
volumes:
- crawler_storage:/app/storage
flaresolverr:
image: 21hsmw/flaresolverr:nodriver
container_name: flaresolverr
restart: unless-stopped
environment:
- LOG_LEVEL=info
- TZ=UTC
volumes:
crawler_storage:
适用于 Mac Apple Silicon 的解决方法
version: '3.8'
services:
crawler:
image: laituanmanh/websearch-crawler:latest
container_name: websearch-api
platform: "linux/amd64"
restart: unless-stopped
ports:
- "3001:3001"
environment:
- NODE_ENV=production
- PORT=3001
- LOG_LEVEL=info
- FLARESOLVERR_URL=http://flaresolverr:8191/v1
depends_on:
- flaresolverr
volumes:
- crawler_storage:/app/storage
flaresolverr:
image: 21hsmw/flaresolverr:nodriver
platform: "linux/arm64"
container_name: flaresolverr
restart: unless-stopped
environment:
- LOG_LEVEL=info
- TZ=UTC
volumes:
crawler_storage:
- 启动服务:
docker-compose up -d
- 验证服务是否正在运行:
docker-compose ps
- 测试爬虫 API 健康端点:
curl http://localhost:3001/health
预期响应:
{
"status": "ok",
"details": {
"status": "ok",
"flaresolverr": true,
"google": true,
"message": null
}
}
爬虫 API 将在 http://localhost:3001 上可用。
测试爬虫 API
您可以使用 curl 直接测试爬虫 API:
curl -X POST http://localhost:3001/crawl \
-H "Content-Type: application/json" \
-d '{
"query": "typescript best practices",
"numResults": 2,
"language": "en",
"filters": {
"excludeDomains": ["youtube.com"],
"resultType": "all"
}
}'
自定义配置
您可以通过修改 docker-compose.yml 文件中的环境变量来自定义爬虫服务:
PORT: 爬虫 API 监听的端口 (默认: 3001)LOG_LEVEL: 日志级别 (选项: debug, info, warn, error)FLARESOLVERR_URL: FlareSolverr 服务的 URL (用于绕过 Cloudflare 保护)
与 MCP 客户端集成
快速参考:MCP 配置
以下是不同客户端的 MCP 配置的快速参考:
{
"mcpServers": {
"websearch": {
"command": "npx",
"args": [
"websearch-mcp"
],
"environment": {
"API_URL": "http://localhost:3001",
"MAX_SEARCH_RESULT": "5" // 减少以节省您的 tokens,增加以获得更广泛的信息
}
}
}
}
由于 Issue,适用于 Windows 的解决方法
{
"mcpServers": {
"websearch": {
"command": "cmd",
"args": [
"/c",
"npx",
"websearch-mcp"
],
"environment": {
"API_URL": "http://localhost:3001",
"MAX_SEARCH_RESULT": "1"
}
}
}
}
使用
此软件包使用 stdio 传输实现了一个 MCP 服务器,该服务器公开了一个 web_search 工具,具有以下参数:
参数
query(必需): 要查找的搜索查询numResults(可选): 要返回的结果数 (默认: 5)language(可选): 搜索结果的语言代码 (例如, 'en')region(可选): 搜索结果的区域代码 (例如, 'us')excludeDomains(可选): 要从结果中排除的域名includeDomains(可选): 仅在结果中包含这些域名excludeTerms(可选): 要从结果中排除的术语resultType(可选): 要返回的结果类型 ('all', 'news', 或 'blogs')
示例搜索响应
以下是一个搜索响应的示例:
{
"query": "machine learning trends",
"results": [
{
"title": "Top Machine Learning Trends in 2025",
"snippet": "The key machine learning trends for 2025 include multimodal AI, generative models, and quantum machine learning applications in enterprise...",
"url": "https://example.com/machine-learning-trends-2025",
"siteName": "AI Research Today",
"byline": "Dr. Jane Smith"
},
{
"title": "The Evolution of Machine Learning: 2020-2025",
"snippet": "Over the past five years, machine learning has evolved from primarily supervised learning approaches to more sophisticated self-supervised and reinforcement learning paradigms...",
"url": "https://example.com/ml-evolution",
"siteName": "Tech Insights",
"byline": "John Doe"
}
]
}
本地测试
要本地测试 WebSearch MCP 服务器,您可以使用包含的测试客户端:
npm run test-client
这将启动 MCP 服务器和一个简单的命令行界面,允许您输入搜索查询并查看结果。
您还可以为测试客户端配置 API_URL:
API_URL=https://crawler.example.com npm run test-client
作为库
您可以以编程方式使用此软件包:
import { createMCPClient } from '@modelcontextprotocol/sdk';
// 创建一个 MCP 客户端
const client = createMCPClient({
transport: { type: 'subprocess', command: 'npx websearch-mcp' }
});
// 执行网络搜索
const response = await client.request({
method: 'call_tool',
params: {
name: 'web_search',
arguments: {
query: 'your search query',
numResults: 5,
language: 'en'
}
}
});
console.log(response.result);
故障排除
爬虫服务问题
- API 无法访问: 确保爬虫服务正在运行并且可以在配置的 API_URL 上访问。
- 搜索结果不可用: 检查爬虫服务的日志以查看是否存在任何错误:
docker-compose logs crawler - FlareSolverr 问题: 某些网站使用 Cloudflare 保护。如果您看到与此相关的错误,请检查 FlareSolverr 是否正在工作:
docker-compose logs flaresolverr
MCP 服务器问题
- 导入错误: 确保您拥有最新版本的 MCP SDK:
npm install -g @modelcontextprotocol/sdk@latest - 连接问题: 确保为您的客户端正确配置了 stdio 传输。
开发
要开发此项目:
- 克隆存储库
- 安装依赖项:
npm install - 构建项目:
npm run build - 在开发模式下运行:
npm run dev
服务器需要一个 WebSearch 爬虫 API,如包含的 swagger.json 文件中所定义。确保 API 在配置的 API_URL 上运行。
项目结构
.gitignore: 指定 Git 应该忽略的文件 (node_modules, dist, logs, 等等).npmignore: 指定发布到 npm 时不应包含的文件package.json: 项目元数据和依赖项src/: 源 TypeScript 文件dist/: 编译后的 JavaScript 文件 (构建时生成)
发布到 npm
要将此软件包发布到 npm:
- 确保您拥有一个 npm 帐户并已登录 (
npm login) - 更新 package.json 中的版本 (
npm version patch|minor|major) - 运行
npm publish
.npmignore 文件确保只有必要的文件包含在已发布的软件包中:
dist/中的已编译代码- README.md 和 LICENSE 文件
- package.json
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
ISC
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。