使用说明
网络搜索MCP
一 主控程序 提供八种工具的服务器:a 网络搜索 由...驱动 SearXNG,五 Crawl4AI-电动工具(web_fetch, web_screenshot, web_pdf, webexecute.js, web_crawl),和2 时间机器 工具(网络快照, web_archive).
建筑
graph LR
Client["MCP Client<br/>(Claude, Cursor, etc.)"] -->|web_search| Server["MCP Server"]
Client -->|web_fetch| Server
Client -->|web_screenshot| Server
Client -->|web_pdf| Server
Client -->|web_execute_js| Server
Client -->|web_crawl| Server
Client -->|web_snapshots| Server
Client -->|web_archive| Server
Server --> SearXNG
SearXNG --> Redis
Server --> Crawl4AI
Server --> Wayback["Wayback Machine"]
这 web_search 该工具向SearXNG查询搜索结果。Crawl4AI工具处理内容提取、屏幕截图、PDF、JS执行和多URL抓取。Wayback机床列表和检索存档页面。
全栈部署为 4服务:Redis、SearXNG、Crawl4AI和这个MCP服务器。
工具
服务器公开了八个MCP工具:
web_search
通过SearXNG进行轻量级网络搜索。返回结构化结果。
| 参数 | 类型 | 说明 |
|---|---|---|
query |
string(必填) | 搜索查询 |
limit |
number(可选) | 要返回的最大结果数(默认值:10,最大值:20) |
返回一个JSON数组 { url, title, description } 结果。
web_fetch
获取一个URL,并通过Crawl4AI将其内容作为干净的标记返回。
| 参数 | 类型 | 说明 |
|---|---|---|
url |
string(必需) | 要获取的URL |
f |
enum(可选) | 内容筛选策略: raw, fit, bm25,或 llm (默认值: fit) |
q |
string(可选) | BM25/LLM筛选器的查询字符串 |
以markdown形式返回页面内容。
web_screenshot
通过Crawl4AI捕获URL的全页PNG屏幕截图。
| 参数 | 类型 | 说明 |
|---|---|---|
url |
string(必填) | 截图URL |
screenshot_wait_for |
number(可选) | 捕获前等待的秒数(默认值:2) |
返回base64编码的PNG图像。
web_pdf
通过Crawl4AI生成URL的PDF文档。
| 参数 | 类型 | 说明 |
|---|---|---|
url |
string(必填) | 转换为PDF的URL |
返回base64编码的PDF。
web_execute_js
通过Crawl4AI在URL上执行JavaScript代码段,并返回完整的爬网结果。
| 参数 | 类型 | 说明 |
|---|---|---|
url |
string(必需) | 执行脚本的URL |
scripts |
string[](必填) | 按顺序执行的JavaScript代码段列表 |
返回完整的CrawlResult JSON,包括markdown、链接、媒体和JS执行结果。
web_crawl
使用Crawl4AI抓取一个或多个URL并提取其内容。
| 参数 | 类型 | 说明 |
|---|---|---|
urls |
string[](必填) | 要爬网的URL列表 |
browser_config |
对象(可选) | Crawl4AI浏览器配置 |
crawler_config |
object(可选) | Crawl4AI爬虫配置 |
返回从每个URL提取的内容。
web_snapshots
列出URL的Wayback Machine快照。
| 参数 | 类型 | 说明 |
|---|---|---|
url |
string(必需) | 用于检查快照的URL |
from |
string(可选) | YYYYMMDD格式的开始日期 |
to |
string(可选) | YYYYMMDD格式的结束日期 |
limit |
number(可选) | 要返回的最大快照数(默认值:100) |
match_type |
enum(可选) | URL匹配: exact, prefix, host,或 domain (默认值: exact) |
filter |
string[](可选) | CDX API筛选器(例如。 ["statuscode:200", "mimetype:text/html"]) |
返回一个包含时间戳、状态代码和存档URL的JSON快照数组。
web_archive
从Wayback Machine中检索存档页面。
| 参数 | 类型 | 说明 |
|---|---|---|
url |
string(必填) | 要检索的页面的URL |
timestamp |
string(必填) | YYYYMMDDHHMMSS格式的时间戳 |
original |
boolean(可选) | 获取没有Wayback Machine横幅的原始内容(默认值:false) |
返回存档的页面内容。
连接到服务器
以下所有示例均假设您的服务器正在运行 https://your-server.up.railway.app/mcp 使用API密钥。将URL和键替换为您自己的值。
克劳德代码(CLI)
claude mcp add web_search \
--transport http \
https://your-server.up.railway.app/mcp \
--header "Authorization: Bearer your-api-key"
项目级配置(.mcp.json)
增添 .mcp.json 在任何项目的基础上,让所有合作者都能使用该工具:
{
"mcpServers": {
"web_search": {
"type": "http",
"url": "https://your-server.up.railway.app/mcp",
"headers": {
"Authorization": "Bearer your-api-key"
}
}
}
}
克劳德桌面(claude_desktop_config.json)
{
"mcpServers": {
"web_search": {
"type": "http",
"url": "https://your-server.up.railway.app/mcp",
"headers": {
"Authorization": "Bearer your-api-key"
}
}
}
}
替换Claude Code的内置Web搜索和Web提取(可选)
默认情况下,Claude Code使用自己的 WebSearch 和 WebFetch 工具。您可以用此服务器的 web_search 和 web_fetch 用于尊重隐私、自我托管结果的工具。
1.全局添加MCP服务器:
claude mcp add web_search --scope user \
--transport http \
https://your-server.up.railway.app/mcp \
--header "Authorization: Bearer your-api-key"
2.禁用内置工具 通过编辑 ~/.claude/settings.json:
{
"permissions": {
"deny": ["WebSearch", "WebFetch"]
}
}
3.引导克劳德通过 ~/.claude/CLAUDE.md 所以它使用你的工具:
## Search & Fetch
- Use the web_search MCP tool for all web searches
- Use the web_fetch MCP tool to fetch and read web pages
- Do not attempt to use the built-in WebSearch or WebFetch tools
4.验证 通过跑步 /mcp 在Claude Code中检查服务器是否已连接,然后让Claude搜索某些内容或获取URL。
部署
铁路
该项目在铁路上部署了4项服务:
- 瑞迪斯 -SearXNG缓存
- SearXNG -元搜索引擎
- Crawl4AI -浏览器自动化服务
- MCP服务器 -此网络搜索mcp服务器
部署步骤:
-
分叉/克隆 将此存储库添加到您的GitHub帐户
-
创建新项目 上 铁路
-
部署Redis:
- 点击“添加服务”→ “数据库”→ “Redis”
-
部署SearXNG:
- 点击“添加服务”→ “图像”
- 图片:
searxng/searxng:latest - 添加端口:
8080 - 集
SEARXNG_SECRET_KEY和SEARXNG_REDIS_URL环境变量
-
部署Crawl4AI:
- 点击“添加服务”→ “图像”
- 图片:
unclecode/crawl4ai:latest - 添加端口:
11235 - (可选)设置
CRAWL4AI_API_TOKEN环境变量
-
部署MCP服务器:
- 点击“添加服务”→ “GitHub回购”
- 选择您的分叉存储库
- Railway将自动检测Dockerfile
- 设置环境变量:
API_KEY-您的API密钥(使用${{random(32)}}生成)CRAWL4AI_URL-http://crawl4ai.railway.internal:11235(或您的Crawl4AI服务URL)
-
获取您的URL 并测试:
curl -X POST https://your-service.up.railway.app/mcp \ -H "Authorization: Bearer your-api-key" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
其他平台
服务器可以部署到任何支持Docker或Node.js的平台:
- Fly.io -使用Dockerfile
- 渲染 -使用Dockerfile
- 数字海洋应用平台 -使用Dockerfile
- 自托管 -使用docker编写
快速入门(本地)
1.克隆并安装
git clone https://github.com/your-username/web-search-mcp
cd web-search-mcp
pnpm install
2.配置环境
cp .env.example .env.local
# Edit .env.local and set your API_KEY
3.启动Crawl4AI
docker compose up -d crawl4ai
4.运行MCP服务器
CRAWL4AI_URL=http://localhost:11235 pnpm run start
服务器位于 http://localhost:3000/mcp.
5.或者在Docker中运行所有内容
docker compose up
认证
这 API_KEY 环境变量为 必需的.
在铁路上,手动设置钥匙或使用 ${{random(32)}} 自动生成。对于本地开发,请将其设置在您的 .env.local 文件。
客户提供密钥作为 Bearer 令牌在 Authorization 标题(如上述示例所示)或作为 ?api_key= 查询参数。这 /health 端点未经身份验证。
许可证
麻省理工学院
