AnyCrawl MCP服务器
🚀 AnyCrawl MCP服务器 --通过模型上下文协议(MCP)为Cursor、Claude和其他LLM客户端提供强大的网络抓取和爬行功能。
特性
- Web剪贴:从具有多种输出格式的单个URL中提取内容
- 网站爬行:以可配置的深度和限制抓取整个网站
- 搜索引擎集成:搜索网络并可选择抓取结果
- 多引擎:自动模式(智能选择)、剧作家、Cheerio和木偶
- 灵活的输出:Markdown、HTML、文本、截图和结构化JSON
- 异步操作:具有状态监视的非阻塞爬网作业
- 错误处理:强大的错误处理和日志记录
- 多种模式:STDIO(默认)、MCP(HTTP)、SSE;支持Nginx代理的云就绪
安装
使用npx运行
ANYCRAWL_API_KEY=YOUR-API-KEY npx -y anycrawl-mcp手动安装
npm install -g anycrawl-mcp-server
ANYCRAWL_API_KEY=YOUR-API-KEY anycrawl-mcp配置
AnyCrawl MCP服务器支持两种部署模式: 云服务 (推荐)和 自托管.
云服务(推荐)
使用AnyCrawl云服务 mcp.anycrawl.dev。不需要设置服务器。
# Only need your API key
export ANYCRAWL_API_KEY="your-api-key-here"云端点:
- MCP(可流式传输_http):
https://mcp.anycrawl.dev/{API_KEY}/mcp - 上海证券交易所:
https://mcp.anycrawl.dev/{API_KEY}/sse
自托管部署
对于自托管部署,将基本URL配置为指向您自己的AnyCrawl API实例:
export ANYCRAWL_API_KEY="your-api-key-here"
export ANYCRAWL_BASE_URL="https://your-api-server.com" # Your self-hosted API URL对于使用自定义主机/端口的本地开发:
export ANYCRAWL_HOST="127.0.0.1" # Default: mcp.anycrawl.dev (cloud)
export ANYCRAWL_PORT="3000" # Default: 3000获取API密钥
- 访问AnyCrawl网站并注册或登录: AnyCrawl
- 🎉 免费注册可获得1500个学分,足以抓取近1500页。
- 打开仪表板→ API密钥→ 复制你的钥匙。
- 复制密钥并将其设置为
ANYCRAWL_API_KEY环境变量(见上文)。
用法
可用模式
AnyCrawl MCP服务器支持以下部署模式:
默认模式为 STDIO (不需要env)。集 ANYCRAWL_MODE 切换。
| 模式 | 描述 | 最适合 | 运输 |
|---|---|---|---|
STDIO | 标准MCP over stdio(默认) | 命令类型MCP客户端,本地工具 | stdio |
MCP | 可流式HTTP(JSON,有状态) | 游标(Streamable_HTTP),API集成 | HTTP+JSON |
SSE | 服务器发送事件 | Web应用程序、浏览器集成 | HTTP+SSE |
快速启动命令
# Development (local)
npm run dev # STDIO (default)
npm run dev:mcp # MCP mode (JSON /mcp)
npm run dev:sse # SSE mode (/sse)
# Production (built output)
npm start # STDIO (default)
npm run start:mcp
npm run start:sse
# Env examples
ANYCRAWL_MODE=MCP ANYCRAWL_API_KEY=YOUR-KEY npm run dev:mcp
ANYCRAWL_MODE=SSE ANYCRAWL_API_KEY=YOUR-KEY npm run dev:sseDocker Compose(MCP+SSE与Nginx)
此仓库提供了一个生产就绪映像,该映像在Nginx前面的同一容器中的端口3000上运行MCP(JSON),在端口3001上运行SSE。Nginx还支持API-key-prefixed路径 /{API_KEY}/mcp 和 /{API_KEY}/sse 并通过以下方式转发密钥 x-anycrawl-api-key 头球
docker compose build
docker compose up -dDocker镜像中使用的环境变量:
ANYCRAWL_MODE:MCP_AND_SSE(默认为compose),或MCP,SSEANYCRAWL_MCP_PORT:默认值3000ANYCRAWL_SSE_PORT:默认值3001CLOUD_SERVICE:true从中提取API密钥/{API_KEY}/...或标题ANYCRAWL_BASE_URL:默认值https://api.anycrawl.dev
在游标上运行
正在配置游标。注意:需要游标v0.45.6+。
对于Cursor v0.48.6及更高版本,请将此添加到MCP服务器设置中:
{
"mcpServers": {
"anycrawl-mcp": {
"command": "npx",
"args": ["-y", "anycrawl-mcp"],
"env": {
"ANYCRAWL_API_KEY": "YOUR-API-KEY"
}
}
}
}对于光标v0.45.6:
- 打开光标设置→ 特性→ MCP服务器→ “+添加新的MCP服务器”
- 名称:“anycrawl mcp”(或您的首选名称)
- 类型:“命令”
- 命令:
env ANYCRAWL_API_KEY=YOUR-API-KEY npx -y anycrawl-mcp在Windows上,如果遇到问题:
cmd /c "set ANYCRAWL_API_KEY=YOUR-API-KEY && npx -y anycrawl-mcp"在VS代码上运行
对于手动安装,请将此JSON添加到VS代码(命令面板)中的用户设置(JSON)中→ 首选项:打开用户设置(JSON)):
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "AnyCrawl API Key",
"password": true
}
],
"servers": {
"anycrawl": {
"command": "npx",
"args": ["-y", "anycrawl-mcp"],
"env": {
"ANYCRAWL_API_KEY": "${input:apiKey}"
}
}
}
}
}(可选)将以下内容放入 .vscode/mcp.json 在您的工作区中共享配置:
{
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "AnyCrawl API Key",
"password": true
}
],
"servers": {
"anycrawl": {
"command": "npx",
"args": ["-y", "anycrawl-mcp"],
"env": {
"ANYCRAWL_API_KEY": "${input:apiKey}"
}
}
}
}在风帆上跑步
将此添加到 ~/.codeium/windsurf/model_config.json:
{
"mcpServers": {
"mcp-server-anycrawl": {
"command": "npx",
"args": ["-y", "anycrawl-mcp"],
"env": {
"ANYCRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}在克劳德桌面上运行/克劳德代码
克劳德代码(CLI)
使用添加AnyCrawl MCP服务器 claude mcp add 命令:
claude mcp add --transport stdio anycrawl -e ANYCRAWL_API_KEY=your-api-key -- npx -y anycrawl-mcp克劳德桌面版
将此添加到您的Claude Desktop配置文件中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"anycrawl": {
"command": "npx",
"args": ["-y", "anycrawl-mcp"],
"env": {
"ANYCRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}以SSE服务器模式运行
SSE(服务器发送事件)模式为MCP通信提供了一个基于web的界面,非常适合web应用程序、测试以及与基于web的LLM客户端的集成。
快速开始
ANYCRAWL_MODE=SSE ANYCRAWL_API_KEY=YOUR-API-KEY npx -y anycrawl-mcp
# Or using npm scripts
ANYCRAWL_API_KEY=YOUR-API-KEY npm run dev:sse服务器配置
本地/自托管部署的可选服务器设置:
export ANYCRAWL_PORT=3000 # Default: 3000
export ANYCRAWL_HOST=127.0.0.1 # Set to override cloud default (mcp.anycrawl.dev)健康检查
curl -s http://localhost:${ANYCRAWL_PORT:-3000}/health
# Response: ok通用MCP/SSE客户端配置
对于支持SSE传输的其他MCP/SSE客户端,请使用以下配置:
{
"mcpServers": {
"anycrawl": {
"type": "sse",
"url": "https://mcp.anycrawl.dev/{API_KEY}/sse",
"name": "AnyCrawl MCP Server",
"description": "Web scraping and crawling tools"
}
}
}或
{
"mcpServers": {
"AnyCrawl": {
"type": "streamable_http",
"url": "https://mcp.anycrawl.dev/{API_KEY}/mcp"
}
}
}环境设置:
# Start SSE server with API key
ANYCRAWL_API_KEY=your-api-key-here npm run dev:sseHTTP模式的游标配置(streamable_HTTP)
配置Cursor以连接到HTTP MCP服务器。
本地HTTP流服务器:
{
"mcpServers": {
"anycrawl-http-local": {
"type": "streamable_http",
"url": "http://127.0.0.1:3000/mcp"
}
}
}云HTTP流服务器:
{
"mcpServers": {
"anycrawl-http-cloud": {
"type": "streamable_http",
"url": "https://mcp.anycrawl.dev/{API_KEY}/mcp"
}
}
}注意:对于HTTP模式,设置 ANYCRAWL_API_KEY (和可选的主机/端口)在服务器进程环境或URL中。使用时Cursor不需要您的API密钥 streamable_http.
可用工具
1.报废工具(anycrawl_scrape)
抓取单个URL并提取各种格式的内容。
最适合:
- 从单个页面提取内容
- 快速数据提取
- 测试特定URL
参数:
url(必填):要抓取的URLengine(可选):报废发动机(auto,playwright,cheerio,puppeteer;默认值:auto)formats(可选):输出格式(markdown,html,text,screenshot,screenshot@fullPage,rawHtml,json)proxy(可选):代理URLtimeout(可选):超时(毫秒)(默认值:300000)retry(可选):失败时是否重试(默认值:false)wait_for(可选):页面加载等待时间include_tags(可选):要包含的HTML标签exclude_tags(可选):要排除的HTML标签json_options(可选):JSON提取选项
例子:
{
"name": "anycrawl_scrape",
"arguments": {
"url": "https://example.com",
"formats": ["markdown", "html"],
"timeout": 30000
}
}2.爬行工具(anycrawl_crawl)
启动抓取作业,从网站中抓取多个页面。默认情况下,这会等待完成,并使用SDK返回聚合结果 client.crawl (默认值:每3秒轮询一次,60秒后超时)。
最适合:
- 从多个相关页面中提取内容
- 全面的网站分析
- 批量数据收集
参数:
url(必填):要爬网的基本URLengine(可选):报废发动机(auto,playwright,cheerio,puppeteer;默认值:auto)max_depth(可选):最大爬行深度(默认值:10)limit(可选):最大页数(默认值:100)strategy(可选):爬行策略(all,same-domain,same-hostname,same-origin)exclude_paths(可选):要排除的URL模式include_paths(可选):要包含的URL模式scrape_options(可选):单个页面抓取选项poll_seconds(可选):等待轮询间隔秒数(默认值:3)timeout_ms(可选):等待的总超时毫秒数(默认值:60000)
例子:
{
"name": "anycrawl_crawl",
"arguments": {
"url": "https://example.com/blog",
"max_depth": 2,
"limit": 50,
"strategy": "same-domain",
"poll_seconds": 3,
"timeout_ms": 60000
}
}退货: { "job_id": "...", "status": "completed", "total": N, "completed": N, "creditsUsed": N, "data": [...] }.
3.爬行状态工具(anycrawl_crawl_status)
检查爬网作业的状态。
参数:
job_id(必填):爬网作业ID
例子:
{
"name": "anycrawl_crawl_status",
"arguments": {
"job_id": "7a2e165d-8f81-4be6-9ef7-23222330a396"
}
}4.爬行结果工具(anycrawl_crawl_results)
从爬网作业中获取结果。
参数:
job_id(必填):爬网作业IDskip(可选):要跳过的结果数(用于分页)
例子:
{
"name": "anycrawl_crawl_results",
"arguments": {
"job_id": "7a2e165d-8f81-4be6-9ef7-23222330a396",
"skip": 0
}
}5.取消爬网工具(anycrawl_cancel_crawl)
取消挂起的爬网作业。
参数:
job_id(必填):要取消的爬网作业ID
例子:
{
"name": "anycrawl_cancel_crawl",
"arguments": {
"job_id": "7a2e165d-8f81-4be6-9ef7-23222330a396"
}
}6.搜索工具(anycrawl_search)
使用AnyCrawl搜索引擎搜索网络。
最适合:
- 在多个网站上查找特定信息
- 研究与发现
- 当你不知道哪个网站有这些信息时
参数:
query(必填):搜索查询engine(可选):搜索引擎(google)limit(可选):最大结果数(默认值:10)offset(可选):要跳过的结果数(默认值:0)pages(可选):要搜索的页数lang(可选):语言代码country(可选):国家代码scrape_options(必填):抓取搜索结果的选项safeSearch(可选):安全搜索级别(0=关闭,1=中等,2=严格)
例子:
{
"name": "anycrawl_search",
"arguments": {
"query": "latest AI research papers 2024",
"engine": "google",
"limit": 5,
"scrape_options": {
"formats": ["markdown"]
}
}
}输出格式
标记语言
干净、结构化的降价内容非常适合LLM消费。
超文本标记语言
保留所有格式的原始HTML内容。
文本
纯文本内容,格式最少。
截图
页面的视觉截图。
Screenshot@fullPage
全页截图,包括折页下方的内容。
原始HTML
未处理的HTML内容。
JSON
使用自定义模式进行结构化数据提取。
发动机
自动(默认)
- 自动为目标URL选择最佳引擎
- 无需手动配置,即可优化速度和精度
- 推荐用于大多数用例
再见
- 快速轻便
- 适用于静态内容
- 服务器端渲染
剧作家
- 完全浏览器自动化
- JavaScript渲染
- 最适合动态内容
操纵者
- Chrome/Chromium自动化
- 功能和性能的良好平衡
错误处理
服务器提供全面的错误处理:
- 验证错误:参数无效或缺少必填字段
- API错误:带有详细消息的AnyCrawl API错误
- 网络错误:连接和超时问题
- 速率限制:带回退的自动重试
日志记录
服务器包括详细的日志记录:
- 调试:详细操作信息
- 信息:一般运行状态
- 警告:非关键问题
- 错误:关键错误和失败
使用环境变量设置日志级别:
export LOG_LEVEL=debug # debug, info, warn, error发展
先决条件
- Node.js 18+
- npm
设置
git clone
cd anycrawl-mcp
npm ci构建
npm run build测试
npm test棉绒
npm run lint格式
npm run format贡献
- 分叉存储库
- 创建功能分支
- 运行测试:
npm test - 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
支持
- GitHub问题: 报告错误或请求功能
- 文档: AnyCrawl API文档
- 电子邮件:help@anycrawl.dev
关于AnyCrawl
AnyCrawl是一个功能强大的Node.js/TypeScript爬虫,可以将网站转换为LLM就绪的数据,并从Google/Bing/Budau/等中提取结构化的SERP结果。它具有用于批量处理的本机多线程功能,并支持多种输出格式。
- 网站: https://anycrawl.dev
- GitHub: https://github.com/any4ai/anycrawl
- API: https://api.anycrawl.dev

