README
🚀 Apify模型上下文协议(MCP)服务器
Apify模型上下文协议(MCP)服务器 mcp.apify.com 可让您的AI代理使用 Apify Store 中的数千个现成的抓取器、爬虫和自动化工具,从社交媒体、搜索引擎、地图、电子商务网站和任何其他网站提取数据。它支持OAuth,允许您仅使用URL从Claude.ai或Visual Studio Code等客户端进行连接。
🚀 使用托管的Apify MCP服务器!
为获得最佳体验,请将您的AI助手连接到我们的托管服务器
https://mcp.apify.com。托管服务器支持最新功能,包括结构化Actor结果的输出模式推断,而通过标准输入输出(stdio)本地运行时则无法使用这些功能。
💰 该服务器还支持 Skyfire代理支付,允许AI代理在无需API令牌的情况下为Actor运行付费。
Apify MCP服务器与 Claude Code、Claude.ai、Cursor、VS Code 以及任何遵循模型上下文协议的客户端兼容。有关更多详细信息,请查看 MCP客户端部分,或访问 MCP配置页面。

🚀 快速开始
您可以通过以下两种方式使用Apify MCP服务器:
HTTPS端点(mcp.apify.com):通过OAuth从您的MCP客户端进行连接,或者在请求中包含 Authorization: Bearer <APIFY_TOKEN> 标头。对于大多数用例,这是推荐的方法。由于它支持OAuth,您可以仅使用URL https://mcp.apify.com 从 Claude.ai 或 Visual Studio Code 等客户端进行连接。
https://mcp.apify.com可流式传输
标准输入/输出(stdio):非常适合本地集成和命令行工具,如Claude for Desktop客户端。
- 将MCP客户端服务器命令设置为
npx @apify/actors-mcp-server,并将APIFY_TOKEN环境变量设置为您的Apify API令牌。 - 有关更多选项,请参阅
npx @apify/actors-mcp-server --help。
您可以在 Apify文档 中找到设置MCP服务器的详细说明。
✨ 主要特性
丰富的工具支持
Apify MCP服务器允许AI助手使用任何 Apify Actor 作为工具来执行特定任务,例如:
- 使用 Facebook Posts Scraper 从多个页面/个人资料的Facebook帖子中提取数据。
- 使用 Google Maps Email Extractor 从Google地图中提取联系信息。
- 使用 Google Search Results Scraper 抓取Google搜索引擎结果页面(SERP)。
- 使用 Instagram Scraper 抓取Instagram帖子、个人资料、地点、照片和评论。
- 使用 RAG Web Browser 搜索网络,抓取前N个URL并返回其内容。
视频教程
视频教程:将8000多个Apify Actors和Agents与Claude集成
多客户端兼容
Apify MCP服务器与任何遵循 模型上下文协议 的MCP客户端兼容,但不同客户端对动态工具发现和其他功能的支持程度可能有所不同。您可以使用以下客户端与Apify MCP服务器进行交互:Claude Desktop、Visual Studio Code 或 Apify Tester MCP Client。
动态工具发现
MCP服务器提供了一种动态发现和使用新Actors的方法,允许AI代理根据需要找到新工具(Actors)并将其纳入使用。
智能工具选择
当请求 actors 工具类别时,服务器会根据客户端的功能智能选择最合适的与Actor相关的工具:
- 支持动态工具的客户端(例如Claude.ai网页版、VS Code Genie):服务器提供
add-actor工具而不是call-actor,这允许用户在对话过程中动态发现并添加新的Actors作为工具,提供更好的用户体验。 - 动态工具支持有限的客户端(例如Claude Desktop):服务器提供标准的
call-actor工具以及其他Actor类别工具,确保兼容性的同时保持功能。
Skyfire代理支付集成
Apify MCP服务器与 Skyfire 集成,实现代理支付功能,AI代理可以在无需Apify API令牌的情况下自动为Actor运行付费。
工具配置灵活
可以通过URL查询参数或命令行标志来配置服务器加载的工具,支持指定工具类别或特定工具,还可以启用UI模式以在工具响应中渲染 MCP Apps 小部件。
遥测数据收集
Apify MCP服务器收集工具调用的遥测数据,以帮助Apify了解使用模式并改进服务。默认情况下,所有工具调用的遥测功能均已启用。
📦 安装指南
开发环境准备
- Node.js(v18或更高版本)
创建一个环境文件 .env,内容如下:
APIFY_TOKEN="your-apify-token"
构建 actor-mcp-server 包
npm run build
启动HTTP可流式传输的MCP服务器
使用Apify CLI运行:
export APIFY_TOKEN="your-apify-token"
export APIFY_META_ORIGIN=STANDBY
apify run -p
服务器启动后,您可以使用 MCP Inspector 调试暴露在 http://localhost:3001 的服务器。
启动标准输入/输出(stdio)MCP服务器
您可以使用以下命令启动MCP Inspector:
export APIFY_TOKEN="your-apify-token"
npx @modelcontextprotocol/inspector node ./dist/stdio.js
启动后,Inspector将显示一个URL,您可以在浏览器中打开该URL以开始调试。
无认证访问
当 tools 查询参数仅包含明确允许无认证使用的工具时,托管服务器允许在无需API令牌的情况下进行访问。目前允许的工具包括:search-actors、fetch-actor-details、search-apify-docs、fetch-apify-docs。例如:https://mcp.apify.com?tools=search-actors。
💻 使用示例
基础用法
以下是使用 apify/rag-web-browser Actor的示例输入参数:
{
"query": "restaurants in San Francisco",
"maxResults": 3
}
您无需手动指定要调用的Actor或其输入参数,大语言模型(LLM)会自动处理这些。当调用工具时,参数会由LLM自动传递给Actor。您可以参考特定Actor的文档以获取可用参数列表。
高级用法
使用Skyfire代理支付功能时,需要进行如下配置:
{
"mcpServers": {
"skyfire": {
"url": "https://api.skyfire.xyz/mcp/sse",
"headers": {
"skyfire-api-key": "<YOUR_SKYFIRE_API_KEY>"
}
},
"apify": {
"url": "https://mcp.apify.com?payment=skyfire"
}
}
}
当启用Skyfire模式时,代理将自动处理完整的支付流程:
- 代理通过
search-actors或fetch-actor-details发现相关Actors(这些操作免费)。 - 在执行Actor之前,代理使用Skyfire MCP服务器的
create-pay-token工具创建一个PAY令牌(最低5美元)。 - 代理在调用Actor工具时,在
skyfire-pay-id输入属性中传递PAY令牌。 - 结果照常返回。令牌上未使用的资金可用于未来运行,或在过期时返还。
📚 详细文档
MCP客户端
Apify MCP服务器与任何遵循 模型上下文协议 的MCP客户端兼容,但不同客户端对动态工具发现和其他功能的支持程度可能有所不同。
支持的客户端矩阵
| 客户端 | 动态工具发现 | 注意事项 | |-----------------------------|------------------------|------------------------------------------------------| | Claude.ai(网页版) | 🟡 部分支持 | 可能需要在客户端手动重新加载工具 | | Claude Desktop | 🟡 部分支持 | 可能需要在客户端手动重新加载工具 | | VS Code(Genie) | ✅ 完全支持 | | | Cursor | ✅ 完全支持 | | | Apify Tester MCP Client | ✅ 完全支持 | 专为测试Apify MCP服务器设计 | | OpenCode | ✅ 完全支持 | |
工具、资源和提示
Actors
任何 Apify Actor 都可以用作工具。默认情况下,服务器预配置了一个Actor apify/rag-web-browser 和几个辅助工具。MCP服务器会加载Actor的输入模式并创建相应的MCP工具,使AI代理能够确切知道要传递给Actor的参数以及预期的返回结果。
辅助工具
使用MCP与Apify的最强大功能之一是动态工具发现,它允许AI代理根据需要找到新工具(Actors)并将其纳入使用。以下是一些特殊的MCP操作以及Apify MCP服务器的支持方式:
- Apify Actors:搜索Actors,查看其详细信息,并将其用作AI的工具。
- Apify文档:搜索Apify文档并获取特定文档,为AI提供上下文。
- Actor运行:获取您的Actor运行列表,检查其详细信息并检索日志。
- Apify存储:访问您的数据集中的数据和键值存储。
可用工具概述
| 工具名称 | 类别 | 描述 | 默认启用 |
| :--- | :--- | :--- | :---: |
| search-actors | actors | 在Apify Store中搜索Actors。 | ✅ |
| fetch-actor-details | actors | 检索特定Actor的详细信息,包括其输入模式、README(有摘要时显示摘要,否则显示全文)、定价和Actor输出模式。 | ✅ |
| call-actor* | actors | 调用Actor并获取其运行结果。首先使用 fetch-actor-details 获取Actor的输入模式。 | ❔ |
| get-actor-run | runs | 获取特定Actor运行的详细信息。 | |
| get-actor-output* | - | 检索Actor调用的输出,该输出不包含在Actor工具的输出预览中。 | ✅ |
| search-apify-docs | docs | 在Apify文档中搜索相关页面。 | ✅ |
| fetch-apify-docs | docs | 根据URL获取Apify文档页面的完整内容。 | ✅ |
| apify-slash-rag-web-browser | Actor(请参阅 工具配置) | 用于浏览网页的Actor工具。 | ✅ |
| get-actor-run-list | runs | 获取Actor的运行列表,可按状态过滤。 | |
| get-actor-log | runs | 检索特定Actor运行的日志。 | |
| get-dataset | storage | 获取特定数据集的元数据。 | |
| get-dataset-items | storage | 从数据集中检索项目,支持过滤和分页。 | |
| get-dataset-schema | storage | 根据数据集项目生成JSON模式。 | |
| get-key-value-store | storage | 获取特定键值存储的元数据。 | |
| get-key-value-store-keys| storage | 列出特定键值存储中的键。 | |
| get-key-value-store-record| storage | 获取键值存储中特定键关联的值。 | |
| get-dataset-list | storage | 列出用户的所有可用数据集。 | |
| get-key-value-store-list| storage | 列出用户的所有可用键值存储。 | |
| add-actor* | experimental | 将Actor添加为用户可调用的新工具。 | ❔ |
注意:
使用
actors工具类别时,支持动态工具发现的客户端(如Claude.ai网页版和VS Code)会自动接收add-actor工具而不是call-actor,以增强Actor发现功能。
get-actor-output工具会自动包含在任何与Actor相关的工具中,如call-actor、add-actor或任何特定的Actor工具(如apify-slash-rag-web-browser)。当您调用Actor时,无论是通过call-actor工具还是直接通过Actor工具(如apify-slash-rag-web-browser),都会收到输出预览。预览取决于Actor的输出格式和长度;对于某些Actors和运行,可能会包含整个输出,而对于其他Actors,只返回有限版本以避免使LLM过载。要检索Actor运行的完整输出,请使用get-actor-output工具(支持限制、偏移和字段过滤),并使用Actor调用提供的datasetId。
工具注释
所有工具都包含元数据注释,以帮助MCP客户端和LLM理解工具的行为:
title:工具的简短显示名称(例如,“Search Actors”、“Call Actor”、“apify/rag-web-browser”)readOnlyHint:对于仅读取数据而不修改状态的工具为true(例如,get-dataset、fetch-actor-details)openWorldHint:对于访问Apify平台之外的外部资源的工具为true(例如,call-actor执行外部Actors,get-html-skeleton抓取外部网站)。仅与Apify平台交互的工具(如search-actors或fetch-apify-docs)没有此提示。
工具配置
tools 配置参数用于指定要加载的工具,可以是类别或特定工具,也可以是Apify Actors。例如,tools=storage,runs 加载两个类别;tools=add-actor 仅加载一个工具。
如果未提供查询参数,MCP服务器默认加载以下 tools:
actorsdocsapify/rag-web-browser
如果指定了 tools 参数,则仅启用列出的工具或类别,不会包含默认工具。
轻松配置:
使用 UI配置器 配置您的服务器,然后将配置复制到您的客户端。
配置托管服务器
可以使用URL中的查询参数配置托管服务器。例如,要加载默认工具,请使用:
https://mcp.apify.com?tools=actors,docs,apify/rag-web-browser
如果您只想使用单个Actor工具,而不需要任何发现或通用调用工具,可以将服务器配置如下:
https://mcp.apify.com?tools=apify/my-actor
此设置仅将指定的Actor(apify/my-actor)作为工具公开,不会提供其他工具。
配置CLI
可以使用命令行标志配置CLI。例如,要加载与托管服务器配置相同的工具,请使用:
npx @apify/actors-mcp-server --tools actors,docs,apify/rag-web-browser
最小配置与托管服务器配置类似:
npx @apify/actors-mcp-server --tools apify/my-actor
同样,此设置仅将指定的Actor(apify/my-actor)作为工具公开,不会提供其他工具。
⚠️ 重要建议
默认工具配置可能会在未来版本中更改。 当未指定
tools参数时,服务器当前会加载默认工具,但此行为可能会发生变化。对于生产使用和稳定接口,请始终明确指定
tools参数,以确保您的配置在更新过程中保持一致。
UI模式配置
ui 参数可在工具响应中启用 MCP Apps 小部件渲染。启用后,像 search-actors 这样的工具会返回交互式MCP App响应。
配置托管服务器
使用 ui 查询参数启用UI模式:
https://mcp.apify.com?ui=true
您可以将其与其他参数结合使用:
https://mcp.apify.com?tools=actors,docs&ui=true
配置CLI
可以使用命令行标志配置CLI。例如,要启用UI模式:
npx @apify/actors-mcp-server --ui true
您也可以通过 UI_MODE 环境变量设置:
export UI_MODE=true
npx @apify/actors-mcp-server
向后兼容性
v2配置保留了与v1用法的向后兼容性。注意事项如下:
actors参数(URL)和--actors标志(CLI)仍然支持。- 内部它们会合并到
tools选择器中。 - 示例:
?actors=apify/rag-web-browser等同于?tools=apify/rag-web-browser;--actors apify/rag-web-browser等同于--tools apify/rag-web-browser。
- 内部它们会合并到
enable-adding-actors(CLI)和enableAddingActors(URL)支持但已弃用。- 建议使用
tools=experimental或包含特定工具tools=add-actor。 - 行为保持不变:当启用但未指定
tools时,服务器仅公开add-actor;当选择类别/工具时,也会包含add-actor。
- 建议使用
enableActorAutoLoading仍然作为enableAddingActors的旧别名存在,并会自动映射。- 默认值保持兼容:当未指定
tools时,服务器加载actors、docs和apify/rag-web-browser。- 如果指定了任何
tools,则不会添加默认值(与v1显式选择的意图相同)。
- 如果指定了任何
call-actor现在通过actors类别默认包含(增量更改)。要排除它,请指定不包含actors的显式tools列表。preview类别已弃用并移除。请使用特定工具名称代替。
使用 ?actors=... 或 --actors 的现有URL和命令将继续正常工作。
提示
服务器提供了一组预定义的示例提示,帮助您开始通过MCP与Apify进行交互。例如,有一个 GetLatestNewsOnTopic 提示,允许您使用 RAG Web Browser Actor轻松检索特定主题的最新新闻。
资源
服务器目前尚未提供任何资源。
🔧 技术细节
遥测
Apify MCP服务器收集工具调用的遥测数据,以帮助Apify了解使用模式并改进服务。默认情况下,所有工具调用的遥测功能均已启用。
标准输入输出传输还使用 Sentry 进行错误跟踪,这有助于我们更快地识别和修复问题。当选择退出遥测时,Sentry会自动禁用。
选择退出遥测
您可以通过将 --telemetry-enabled CLI标志设置为 false 或将 TELEMETRY_ENABLED 环境变量设置为 false 来选择退出遥测(包括Sentry错误跟踪)。CLI标志优先于环境变量。
示例
对于远程服务器(mcp.apify.com):
# 通过URL参数禁用
https://mcp.apify.com?telemetry-enabled=false
对于本地标准输入输出服务器:
# 通过CLI标志禁用
npx @apify/actors-mcp-server --telemetry-enabled=false
# 或设置环境变量
export TELEMETRY_ENABLED=false
npx @apify/actors-mcp-server
开发
请参阅 CONTRIBUTING.md 指南,了解贡献准则和提交消息约定。
有关详细的开发设置、项目结构和本地测试说明,请参阅 DEVELOPMENT.md 指南。
限制
Actor输入模式经过处理以与大多数MCP客户端兼容,同时遵循 JSON Schema 标准。处理包括:
- 描述 截断为500个字符(由
MAX_DESCRIPTION_LENGTH定义)。 - 枚举字段 截断为所有元素的最大组合长度为2000个字符(由
ACTOR_ENUM_MAX_LENGTH定义)。 - 必需字段 在其描述中明确标记为
REQUIRED前缀,以确保与可能无法正确处理JSON模式的框架兼容。 - 嵌套属性 为特殊情况(如代理配置和请求列表源)构建,以确保正确的输入结构。
- 数组项类型 在模式中未明确定义时进行推断,使用优先级顺序:项中的显式类型 > 预填充类型 > 默认值类型 > 编辑器类型。
- 枚举值和示例 添加到属性描述中,以确保即使客户端不完全支持JSON模式也能看到这些信息。
- 租赁Actors 仅可在托管的MCP服务器
https://mcp.apify.com上使用。通过标准输入输出本地运行服务器时,您只能访问已添加到本地工具集的Actors。要动态搜索并使用Apify Store中的任何Actor(包括租赁Actors),请连接到托管端点。
🐛 故障排除(本地MCP服务器)
- 运行
node -v确保已安装node。 - 确保已设置
APIFY_TOKEN环境变量。 - 始终使用
@apify/actors-mcp-server@latest以使用MCP服务器的最新版本。
调试NPM包
要调试服务器,请使用 MCP Inspector 工具:
export APIFY_TOKEN="your-apify-token"
npx @modelcontextprotocol/inspector npx -y @apify/actors-mcp-server
🤝 贡献
我们欢迎您为改进Apify MCP服务器做出贡献!您可以通过以下方式提供帮助:
- 🐛 报告问题:发现错误或有功能请求?打开一个问题。
- 🔧 提交拉取请求:分叉仓库并提交包含增强或修复的拉取请求。
- 📚 文档:欢迎对文档和示例进行改进。
- 💡 分享用例:贡献示例以帮助其他用户。
对于重大更改,请先打开一个问题,讨论您的提案,确保其符合项目目标。
微信扫一扫