关于 apify-mcp-server
apify-mcp-server 将 Apify Actor 提供给 AI Agent,用于从网站和在线服务提取数据,并管理 Actor 及其运行。支持远程 Streamable HTTP 或本地 stdio 接入,也提供动态工具发现。
主要功能
- 01将 Actor 转为 MCP 工具
- 02动态发现 Actor
- 03抓取网页与提取数据
- 04管理运行、存储和计划
- 05支持多种付费方式
适用场景
- 01抓取社交媒体或搜索结果
- 02提取地图与电商网站数据
- 03检查 Actor 运行及日志
- 04为付费 Actor 运行付款
MCP 相关
该 MCP 服务根据 Actor 的输入模式生成工具,并提供 Actor 搜索、运行、存储和计划管理等能力。客户端可通过 OAuth 或 Bearer token 连接托管端点,也可使用 stdio 本地运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.apify.com/claude mcp add --transport http com-apify-apify https://mcp.apify.com/{"mcpServers":{"com-apify-apify":{"type":"http","url":"https://mcp.apify.com/"}}}在 Cursor 中打开{"servers":{"com-apify-apify":{"type":"http","url":"https://mcp.apify.com/"}}}在 VS Code 中打开{"mcpServers":{"com-apify-apify":{"type":"http","url":"https://mcp.apify.com/"}}}{"mcpServers":{"com-apify-apify":{"serverUrl":"https://mcp.apify.com/"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.apify.com/需要授权工具
详细介绍
mcp.apify.com
Apify 模型上下文协议(MCP)服务 mcp.apify.com 可让你的 AI Agent 使用来自 Apify Store 的数千种现成抓取器、爬虫和自动化工具,从社交媒体、搜索引擎、地图、电商网站及其他任何网站提取数据。它支持 OAuth,因此你只需使用 URL,即可通过 Claude.ai 或 Visual Studio Code 等客户端连接。
🚀 使用托管的 Apify MCP 服务!
为获得最佳体验,请将你的 AI 助手连接到我们的托管服务
https://mcp.apify.com。托管服务支持最新功能,包括对结构化 Actor 结果推断输出架构;通过 stdio 在本地运行时则无法使用这些功能。
⚠️ 已移除旧版 SSE 传输。
https://mcp.apify.com/sse端点已被移除,改用 Streamable HTTP。请将客户端迁移到https://mcp.apify.com——从配置中删除/sse后缀。
💰 此服务还支持 Agent 付款:从 AGI 购买代币即可运行任意 Actor,也可以通过 直接 x402(仅限按事件付费的 Actor)或 Skyfire 按请求付费。
Apify MCP Server 兼容 Claude Code, Claude.ai, Cursor, VS Code,以及任何遵循模型上下文协议的客户端。
详情请查看 MCP 客户端部分,或访问 MCP 配置页面。

目录
- 🌐 Apify MCP Server 介绍
- 🚀 快速入门
- 🤖 MCP 客户端
- 🪄 立即试用 Apify MCP
- 💰 Agent 付款
- 🛠️ 工具、资源和提示词
- 📊 遥测
- 💬 使用示例
- 🐛 故障排除
- ⚙️ 开发
- 🔒 隐私政策
- 🤝 贡献
- 📚 了解更多
🌐 认识 Apify MCP 服务
Apify MCP 服务允许 AI 助手使用任意 Apify Actor 作为工具来执行特定任务。 例如,它可以:
- 使用 Facebook Posts Scraper 提取多个 Facebook 页面或个人资料中的帖子数据。
- 使用 Google Maps Email Extractor 提取 Google Maps 中的联系信息。
- 使用 Google Search Results Scraper 抓取 Google 搜索引擎结果页面(SERP)。
- 使用 Instagram Scraper 抓取 Instagram 帖子、个人资料、地点、照片和评论。
- 使用 RAG Web Browser 搜索网页、抓取排名前 N 的 URL,并返回其内容。
- 使用 Web Fetch 获取任意 URL,并以 Markdown、纯文本、HTML 或链接的形式返回其内容,同时支持 JavaScript 渲染和反爬虫保护。
视频教程:将 8,000 多个 Apify Actors 和 Agents 集成到 Claude
🚀 快速开始
你可以通过两种方式使用 Apify MCP 服务:
HTTPS 端点(mcp.apify.com):通过 OAuth,或在请求中添加 Authorization: Bearer <APIFY_TOKEN> 标头,从 MCP 客户端连接。这是大多数使用场景的推荐方式。由于支持 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了解更多选项。
如需设置 MCP 服务的详细说明,请参阅 Apify 文档。
🤖 MCP 客户端
Apify MCP 服务兼容所有遵循 Model Context Protocol 的 MCP 客户端,但不同客户端对动态工具发现和其他功能的支持程度可能有所不同。
你可以使用 Claude Desktop、Visual Studio Code 或 Apify Tester MCP Client 等客户端与 Apify MCP 服务交互。
访问 mcp.apify.com,为你偏好的客户端配置服务。

已测试的客户端
- Claude Desktop
- Claude.ai(网页)
- ChatGPT
- VS Code(Genie)
- Cursor
- OpenCode
- Kiro
- Apify Tester MCP Client — 专为测试 Apify MCP 服务而设计
🪄 即刻试用 Apify MCP
想要无需任何设置就试用 Apify MCP?
这个交互式聊天界面让你无需进行本地设置,就能轻松探索 Apify MCP 的功能。 使用你的 Apify 账号登录,即可开始体验网页抓取、数据提取和自动化工具!
也可以使用 MCP bundle 文件(以前称为 Anthropic Desktop extension 文件或 DXT)一键安装:Apify MCP Server MCPB 文件
💰 Agent 式支付
你无需 Apify API token,即可使用 AGI、直接 x402 或 Skyfire 为 Actor 运行付费。
- AGI(agi.apify.com)可通过 x402 或 MPP 支付铸造预付费 Apify API token。像使用普通 API token 一样,将该 token 用于
mcp.apify.com和api.apify.com,适用于任何 Actor,而不仅限于按事件付费的 Actor。新集成推荐使用此方式;请参阅下文的 AGI(推荐)。 - 直接 x402 按请求使用 Base 上的 USDC 付款,无需单独的平台账号。该方式由
mcpc完全支持(brew install apify/tap/mcpc或npm install -g @apify/mcpc)。我们使用mcpc,因为它是少数原生支持最新功能和 x402 协议的 MCP 客户端之一。 - Skyfire 使用 PAY token 付款,需要拥有已充值钱包的 Skyfire 账号。它不需要专用的 MCP 客户端;整个支付流程均通过 MCP 工具调用参数直接处理。
ℹ️ 适用范围: 直接 x402 和 Skyfire 均仅适用于按事件付费的 Actor,不支持 Standby Actor,并且按次运行结算,而不是铸造 token。
Agent 式支付的工作原理
Actor 运行费用各不相同,因此这两种支付方式都采用预付余额模式。支付流程分为四个步骤:
- 发现:Agent 使用
search-actors或fetch-actor-details查找 Actor。这些调用免费。 - 预付款:运行付费 Actor 工具前,Agent 会为预付余额充值。
- 直接 x402:
mcpc会自动签署一笔 $1.00 的 USDC 交易。 - Skyfire:Agent 使用 Skyfire 的
create-pay-token工具创建 PAY token(最低 $5.00)。
- 直接 x402:
- 执行:Agent 调用 Actor 工具。
- 直接 x402:由
mcpc使用预付余额自动处理。 - Skyfire:Agent 在
skyfire-pay-id输入属性中显式传入 PAY token。
- 直接 x402:由
- 结算:工具返回 Actor 的结果。未使用的资金可留待后续运行使用。
- 直接 x402:闲置 60 分钟后,服务会将任何未使用的余额退回到 Base 上的钱包。
- Skyfire:token 到期时,Skyfire 会退还未使用的资金。
🪙 AGI(推荐)
AGI(Apify Agent General Interface)是自主 Agent 无需账号即可为 Apify 使用付费的推荐方式。通过 x402 或 MPP 一次性付款,即可获得有支出上限的预付费 Apify API token,并将其直接用于 mcp.apify.com 和 api.apify.com(Authorization: Bearer <token>),适用于任何 Actor。
完整协议、支持的支付方式和当前条款(最低金额、token 有效期、退款政策)请参阅 agi.apify.com/AGENTS.md,并将其视为唯一权威信息来源。
💸 直接 x402
x402 协议支持点对点的机器支付。你的 MCP 客户端可以使用该协议,通过 Base 区块链 上的 USDC 为 Actor 运行付费,完全无需 Apify API token。
前提条件
- 一个在 Base 主网上持有 USDC 的钱包。
设置
创建或导入钱包:
# Create a new wallet
mcpc x402 init
# Import an existing wallet
mcpc x402 import <private-key>
# Show the wallet address and a funding QR code, so you can fund it with USDC on Base (https://base.org)
mcpc x402
连接到启用了 x402 的服务:
mcpc connect "mcp.apify.com?payment=x402" @apify --x402
现在可以调用付费工具:
mcpc @apify tools-call call-actor actor:="apify/rag-web-browser" input:='{"query": "latest AI news"}'
🔥 Skyfire
Skyfire 为 AI Agent 提供托管式支付基础设施。Agent 无需使用 Apify API 令牌进行身份验证,而是传递 Skyfire 支付令牌,使用 PAY 令牌支付每次工具调用的费用。
前提条件
- 一个已充值的钱包和 Skyfire 账户。
- 支持多个服务的 MCP 客户端,例如 Claude Desktop、OpenCode 或 VS Code。
设置
在客户端中配置 Skyfire MCP 服务和 Apify MCP 服务。在 Apify 服务 URL 中添加 payment=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 集成文档。《使用 Skyfire 实现 Agentic Payments》一文提供了更多背景信息。
🛠️ 工具、资源和提示词
MCP 服务提供一组用于与 Apify Actors 交互的工具。 由于 Apify Store 规模庞大且快速增长,MCP 服务提供了一种动态发现和使用新 Actor 的方式。
Actors
任何 Apify Actor 都可以用作工具。
默认情况下,服务已预先配置了两个 Actor:apify/rag-web-browser 和 apify/web-fetch,以及若干辅助工具。
MCP 服务会加载 Actor 的输入架构,并创建相应的 MCP 工具。
这样,AI Agent 就能准确了解要向 Actor 传递哪些参数,以及预期会收到什么结果。
例如,apify/rag-web-browser Actor 的输入参数如下:
{
"query": "restaurants in San Francisco",
"maxResults": 3
}
你无需手动指定要调用哪个 Actor 或其输入参数;大模型会自动处理这些内容。 调用工具时,大模型会自动将参数传递给 Actor。 你可以查阅特定 Actor 的文档,了解可用参数列表。
辅助工具
将 MCP 与 Apify 搭配使用的一项强大功能是动态发现工具。 这使 AI Agent 能够按需查找新工具(Actors)并加以使用。 以下是一些特殊的 MCP 操作,以及 Apify MCP 服务对它们的支持方式:
- Apify Actors:搜索 Actor、列出账户中的 Actor、查看其详情、将其用作 AI 的工具,以及删除自己的 Actor。
- Apify 文档:搜索 Apify 文档并获取特定文档,为 AI 提供上下文。
- Actor 运行记录:获取 Actor 运行记录列表、检查其详情并检索日志。
- Apify 存储:访问数据集和键值存储中的数据。
- Actor 任务:创建、检查和更新已保存的 Actor 任务,并发布或取消发布其公开落地页。
- 计划任务:创建、检查、更新和删除自动运行 Actor 和任务的计划任务。
- 构建:构建 Actor 版本、列出构建记录、检查构建状态并检索构建日志。
- Actor 版本:读取 Actor 版本的文件(每个文件都带有哈希值,整个文件集带有修订号);根据文件创建 Actor;更改版本文件,并检查自上次读取后是否发生了更改;根据文件或复制其他版本来添加版本;以及删除版本。
- Apify API:搜索 Apify API 参考文档、检查操作,并向 API 发送请求以读取或更改数据。
可用工具概览
以下是 Apify MCP 服务提供的所有工具的概览列表。 默认启用列图例:
- ✅ — 属于默认工具集。
- ⚡ — 存在
call-actor、Actor 工具或get-actor-run时自动注入(默认配置中确实如此)。 - ✅¹ — 默认提供,但仅在启用遥测且客户端未被排除时提供:Anthropic 界面(Claude.ai / Claude Desktop,包括其本地 Agent 模式 / Claude Code)。若要禁用,请传入不包含它的显式
tools=列表。显式选择它(tools=report-problem或tools=dev)时,无论客户端为何都会提供;但仍须启用遥测。 | 工具名称 | 类别 | 描述 | 默认启用 | | :--- | :--- | :--- | :---: | |search-actors| actors | 在 Apify Store 中搜索 Actor。 | ✅ | |fetch-actor-details| actors | 获取特定 Actor 的详细信息,包括其输入架构、README(如有摘要则提供摘要,否则提供全文)、定价、Actor 输出架构,以及 Server Actor 的 HTTP 操作。 | ✅ | |call-actor| actors | 调用 Actor 并获取其运行结果。请先使用 fetch-actor-details 获取 Actor 的输入架构。 | ✅ | |send-server-actor-request| 无(按名称选择:tools=send-server-actor-request) | 向 Server Actor 的 API(即其 API 架构所记录的服务器接口)发送一个 HTTP 请求,并返回响应。 | | |get-actor-run| runs | 获取特定 Actor 运行的详细信息。 | ⚡ | |get-dataset-items| storage | 获取数据集中的条目,支持筛选和分页。 | ⚡ | |get-key-value-store-record| storage | 获取键值存储中特定键对应的值。 | ⚡ | |abort-actor-run| runs | 中止正在运行的 Actor 运行,可选择是否平稳中止。 | ⚡ | |delete-actor| 无(按名称选择:tools=delete-actor) | 从你的账户中永久删除 Actor。公开 Actor 必须先取消发布。 | | |search-apify-docs| docs | 搜索 Apify 文档中的相关页面。 | ✅ | |fetch-apify-docs| docs | 根据 URL 获取 Apify 文档页面的完整内容。 | ✅ | |apify--rag-web-browser| Actor(参见工具配置) | 用于浏览网页的 Actor 工具。 | ✅ | |apify--web-fetch| Actor(参见工具配置) | 用于获取 URL 并返回其内容的 Actor 工具。 | ✅ | |report-problem| dev | 向 Apify 团队报告 Apify 工具或 Actor 的问题。 | ✅¹ | |get-actor-list| 无(按名称选择:tools=get-actor-list) | 列出你拥有以及与自己共享的 Actor,包括私有 Actor。 | | |get-actor-run-list| runs | 获取 Actor 运行列表,可按 Actor 和状态筛选。 | | |get-actor-run-log| runs | 获取特定 Actor 运行的日志。 | | |get-dataset| storage | 获取特定数据集的元数据。 | | |get-dataset-schema| storage | 根据数据集条目生成 JSON 架构。 | | |get-key-value-store| storage | 获取特定键值存储的元数据。 | | |get-key-value-store-keys| storage | 列出特定键值存储中的键。 | | |get-dataset-list| storage | 列出用户所有可用的数据集。 | | |get-key-value-store-list| storage | 列出用户所有可用的键值存储。 | | |create-actor-task| tasks | 创建已保存的 Actor 任务(命名且可重复使用的 Actor 配置)。 | | |get-actor-task| tasks | 获取已保存的 Actor 任务、其发布状态和公开显示配置。 | | |update-actor-task| tasks | 更新任务的输入、运行选项或公开显示配置。 | | |publish-actor-task| tasks | 在任务的公开落地页上发布任务。 | | |unpublish-actor-task| tasks | 取消在任务的公开落地页上发布任务。 | | |create-schedule| schedules | 创建一个按 cron 频率运行 Actor 或任务的计划。 | | |get-schedule| schedules | 获取计划、其 cron 表达式、状态及其运行的操作。 | | |update-schedule| schedules | 更新计划:cron 表达式、时区、启用状态或操作。 | | |delete-schedule| schedules | 删除计划。 | | |get-actor-build| builds | 获取 Actor 构建的状态。 | | |get-actor-build-log| builds | 获取特定 Actor 构建的日志。 | | |get-actor-build-list| builds | 按时间从新到旧列出账户的所有构建,或某个 Actor 的所有构建(涵盖所有状态)。 | | |build-actor| builds | 构建 Actor 版本,并在限定时间内等待构建完成。 | | |get-actor-version| versions | 获取 Actor 版本的文件列表(含哈希值),以及你指定文件的内容。 | | |create-actor| versions | 根据文件在你的账户中创建私有 Actor,可选择立即启动构建。 | | |update-actor-version| versions | 在一次要么全部成功、要么全部不执行的写入中,写入、编辑或删除 Actor 版本的文件。 | | |create-actor-version| versions | 根据文件或复制其他版本为 Actor 添加版本,可选择立即启动构建。 | | |delete-actor-version| versions | 删除 Actor 版本;其构建及其标签会保留。 | | |apify-api-search| api | 按关键词搜索 Apify API 参考中的操作。返回每项操作的方法、路径和文档页面。 | | |apify-api-details| api | 获取指定路径上 Apify API 操作的参数和请求正文架构。 | | |apify-api-read| api | 向 Apify API 路径发送 GET 请求,例如actor-runs或/v2/actor-runs,用法类似 Apify CLI 中的apify api。只读:该工具会拒绝method查询参数,以及会启动付费运行的同步运行端点 GET 请求。 | | |apify-api-write| api | 向任意 Apify API 路径发送带 JSON 正文的 POST、PUT、PATCH 或 DELETE 请求,用法类似 Apify CLI 中的apify api。该工具会拒绝method查询参数。 | |
注意:
当存在
call-actor、Actor 工具或get-actor-run时,服务会自动注入get-actor-run、get-dataset-items、get-key-value-store-record和abort-actor-run。当你调用 Actor(通过
call-actor或直接使用 Actor 工具,例如apify--rag-web-browser)时,响应会包含运行元数据、存储 ID,以及summary和nextStep,但不包含数据集条目。若要获取条目,请按照nextStep操作并调用get-dataset-items(自动注入),同时传入调用返回的datasetId。
工具注释
所有工具都包含元数据注释,帮助 MCP 客户端和大模型了解工具的行为:
title:工具的简短显示名称(例如,“搜索 Actors”“调用 Actor”“apify/rag-web-browser”)readOnlyHint:对于只读取数据、不修改状态的工具(例如get-dataset、fetch-actor-details),值为true。只有由 Apify 维护、权限有限且不接受密钥、可写存储、MCP 连接器或代码输入的 Actor 工具才会获得此标记(例如apify--web-fetch)。直接工具可以限制原始 Actor 输入:apify--website-content-crawler会排除并拒绝pageFunction和initialCookies,因此它是只读的。其他 Actor 工具会标记为具有破坏性。openWorldHint:对于访问 Apify 平台以外外部资源的工具(例如,call-actor会执行外部 Actors),值为true。仅与 Apify 平台交互的工具(例如search-actors或fetch-apify-docs)不会带有此标记。
直接工具 apify--website-content-crawler 默认将 respectRobotsTxtFile 设为 true;显式指定的 false 会保留。这些限制和默认值仅适用于直接工具。call-actor、call-actor-widget 和 fetch-actor-details 保留原始 Actor 输入约定。
工具配置
tools 配置参数用于指定已加载的工具——可以是类别、直接指定的工具,也可以是 Apify Actors。例如,tools=storage,runs 会加载两个类别;tools=call-actor 只加载一个工具。
未提供查询参数时,MCP 服务默认加载以下 tools:
actorsdocsapify/rag-web-browserapify/web-fetch
如果指定了 tools 参数,则只会启用列出的工具或类别,不会包含任何默认工具。
默认情况下会提供 report-problem(受上方脚注中的门控机制限制),但它属于 dev 类别,因此显式指定 tools=dev 也会选择它。若要禁用它,请传入不包含它的显式 tools= 列表(例如 tools=actors,docs)。
轻松配置:
使用 UI 配置器 配置服务,然后将配置复制到客户端。
配置托管服务:
可以使用 URL 中的查询参数配置托管服务。例如,若要加载默认工具,请使用:
https://mcp.apify.com?tools=actors,docs,apify/rag-web-browser,apify/web-fetch
若要进行最简配置,只使用单个 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,apify/web-fetch
最简配置与托管服务配置类似:
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。
- 内部会将它们合并到
enableAddingActors(URL)、enable-adding-actors(CLI)和旧版别名enableActorAutoLoading已移除。要动态调用 Actors,请使用tools=call-actor(默认通过actors类别包含)。任何残留的原始值都会被忽略。- 默认行为保持兼容:未指定
tools时,服务会加载actors、docs、apify/rag-web-browser和apify/web-fetch。- 如果指定了任何
tools,则不会添加默认项(与 v1 显式选择时的设计意图相同)。
- 如果指定了任何
call-actor现在默认通过actors类别包含(新增行为)。若要排除它,请指定一个不含actors的显式tools列表。tools=add-actor、tools=experimental和tools=preview已停用:它们会被忽略且不会加载任何工具。请改用tools=call-actor(或默认的actors类别)。tools=get-actor-log已停用:该工具已重命名为get-actor-run-log。旧选择器会被忽略且不会加载任何工具。请改用tools=get-actor-run-log(或runs类别)。tools=source已停用:该类别已重命名为versions。旧选择器会被忽略且不会加载任何工具。请改用tools=versions。
现有使用 ?actors=... 或 --actors 的 URL 和命令仍可照常使用。
提示词
服务声明了 prompts 能力,但目前未注册任何提示词——prompts/list 会返回空列表。
资源
你的 Apify 数据不会在 resources/list 中枚举——读取按需进行:将任意 Apify API GET URL(https://api.apify.com/v2/...)传递给 resources/read,服务便会注入会话的 Apify 令牌并返回响应正文。resources/templates/list 会列出常见结构——数据集条目、键值存储记录和键、运行元数据、运行日志——及其分页参数。响应正文不超过 256 KB 时会直接内嵌;超过此大小时则返回简短提示和下载 URL,而非正文。API 读取需要 Apify 令牌,因此仅使用付款方式的会话(x402 或 Skyfire)会收到 JSON-RPC 错误。
💬 使用示例
下面是一些真实示例,展示 AI 助手如何使用 Apify MCP Server 工具。
示例 1:使用 RAG Web Browser 搜索网页
用户提示词:
查找有关自主 AI Agent 的最新消息,并总结主要进展。
AI 助手调用预配置的 apify--rag-web-browser Actor 工具搜索网页,并返回排名靠前的结果内容。
该工具会返回排名前 3 的搜索结果的 Markdown 内容,随后 AI 助手会为用户总结这些内容。
示例 2:从 Apify Store 中发现并运行 Actor
用户提示词:
使用 Google Maps 抓取布拉格排名前 10 的餐厅及其联系方式。
AI 助手会先搜索合适的 Actor,检查其输入架构,然后执行它。 该工具会返回抓取数据的预览,包括餐厅名称、地址、评分、电话号码和网站。
示例 3:检索 Actor 运行结果并分页浏览
用户提示:
显示该抓取任务的接下来 10 条结果。
AI 助手使用上一次 Actor 运行返回的数据集 ID 来获取更多条目。 预期输出:工具从 Actor 的输出数据集中返回下一页结构化数据条目。
📡 遥测
Apify MCP 服务会收集工具调用的遥测数据,以帮助 Apify 了解使用模式并改进服务。
默认情况下,所有工具调用均启用遥测。
启用遥测后,在 Apify Store 中搜索 Actor 时会将 MCP 会话 ID 作为 _traceId 发送,工具调用事件则会携带该 ID 作为 trace_id。
search-actors 还接受可选的 useCase:由模型撰写的一句话,说明用户进行搜索的原因。它会随 Store 搜索请求以 _useCase 的形式发送,Apify 会在 Store 搜索分析中记录该信息,以改进搜索结果。
选择退出遥测后,以上所有功能都会禁用。
stdio 传输还会使用 Sentry 跟踪错误,帮助我们更快地发现并修复问题。 选择退出遥测后,Sentry 会自动禁用。
选择退出遥测
你可以将 --telemetry-enabled CLI 标志或 TELEMETRY_ENABLED 环境变量设置为 false,以选择退出遥测(包括 Sentry 错误跟踪)。
CLI 标志的优先级高于环境变量。
示例
远程服务(mcp.apify.com):
# Disable via URL parameter
https://mcp.apify.com?telemetry-enabled=false
本地 stdio 服务:
# Disable via CLI flag
npx @apify/actors-mcp-server --telemetry-enabled=false
# Or set environment variable
export TELEMETRY_ENABLED=false
npx @apify/actors-mcp-server
⚙️ 开发
有关贡献指南和提交消息规范,请参阅 CONTRIBUTING.md。
有关详细的开发环境设置、项目结构和本地测试说明,请参阅 DEVELOPMENT.md。
先决条件
- Node.js(v22 或更高版本)
创建环境文件 .env,并写入以下内容:
APIFY_TOKEN="your-apify-token"
构建 actors-mcp-server 包:
pnpm 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、apify-api-search、apify-api-details。
示例:https://mcp.apify.com?tools=search-actors。
🐦 Canary PR 版本
Apify MCP 分为两个仓库:本仓库负责核心 MCP 逻辑,私有仓库 apify-mcp-server-internal 负责托管服务。
两者的更改必须保持同步。
要创建 Canary 版本,请为你的拉取请求添加 beta 标签。
这会将包发布到 pkg.pr.new,以便在合并前进行预发布和测试。
详情请参阅工作流文件。
🐋 Docker Hub 集成
Apify MCP Server 也可在 Docker Hub 上获取,并通过 mcp-registry 仓库注册。Docker Hub MCP 注册表应会自动部署 servers/apify-mcp-server/server.yaml 中的条目(部署频率未知)。对 stdio 服务版本进行重大更改前,请先在本地测试,确保 Docker 构建通过。 测试方法:将 source.branch 改为你的 PR 分支,然后运行 task build -- apify-mcp-server。更多详情请参阅 CONTRIBUTING.md。
🐛 故障排除
分步故障排除说明,请参阅 Apify 文档中的 Claude Desktop 集成指南。
💡 限制
Actor 输入架构经过处理,以兼容大多数 MCP 客户端,同时遵循 JSON Schema 标准。处理内容包括:
- 描述:超过 500 个字符(由
ACTOR_MAX_DESCRIPTION_LENGTH定义)的描述会截断至该范围内最后一个完整句子;如果没有句子分隔,则截断至最后一个完整单词,并标记为[Description truncated]。 - 枚举字段:合计不超过 2000 个字符(由
ACTOR_ENUM_MAX_LENGTH定义)的枚举会完整保留;较大的枚举则会省略,并在描述中添加简短说明和几个示例值。 - 必填字段:描述中会明确添加
REQUIRED前缀,以兼容可能无法正确处理 JSON 架构的框架。 - 嵌套属性:针对代理配置和请求列表来源等特殊情况构建,以确保输入结构正确。
- 数组项类型:如果架构中未明确指定,则按优先级推断类型:items 中的显式类型 > 预填类型 > 默认值类型 > 编辑器类型。
- 枚举值和示例:会添加到属性描述中,以确保可见,即使客户端不完全支持 JSON 架构也一样。
- 租用型 Actor:仅可通过托管 MCP 服务 https://mcp.apify.com 使用。在本地通过 stdio 运行服务时,只能访问已添加到本地工具集的 Actor。若要动态搜索并使用 Apify Store 中的任意 Actor(包括租用型 Actor),请连接到托管端点。
🔒 隐私政策
使用此服务时,你的请求和 Actor 输入会发送至 Apify API 执行。 除运行所请求的 Actor 所必需的数据外,不会与第三方共享数据。 有关数据收集、使用、共享和保留的完整详情,请参阅 Apify 法律条款。
🤝 贡献
欢迎提交错误报告、功能请求和文档修正。请告诉我们问题,而不是提交补丁——附有复现步骤的清晰问题,比拉取请求更有帮助。
- 🐛 报告错误:提交问题并附上复现步骤。这是你能提供的最有帮助的信息。
- 💡 提出功能建议:提交问题——说明问题以及受影响的用户,而不是实现方案。
- 🔧 代码:仅处理维护者邀请的议题。公开议题不代表邀请你着手处理;未经邀请的拉取请求会被关闭。
- 📚 文档:拼写错误、失效链接和错误命令可直接提交 PR。
完整规则(包括 AI 辅助贡献):CONTRIBUTING.md。
📚 了解更多
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
