返回 MCP 目录
public公开dns本地运行

apify-mcp-server

Apify MCP服务器是一个基于模型上下文协议(MCP)的工具,允许AI助手通过数千个现成的爬虫、抓取器和自动化工具(Apify Actor)从社交媒体、搜索引擎、电商等网站提取数据。它支持OAuth和Skyfire代理支付,可通过HTTPS端点或本地stdio方式集成到Claude、VS Code等MCP客户端中。

article

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 CodeClaude.aiCursorVS Code 以及任何遵循模型上下文协议的客户端兼容。有关更多详细信息,请查看 MCP客户端部分,或访问 MCP配置页面

Apify-MCP-server

🚀 快速开始

您可以通过以下两种方式使用Apify MCP服务器:

HTTPS端点(mcp.apify.com):通过OAuth从您的MCP客户端进行连接,或者在请求中包含 Authorization: Bearer <APIFY_TOKEN> 标头。对于大多数用例,这是推荐的方法。由于它支持OAuth,您可以仅使用URL https://mcp.apify.comClaude.aiVisual 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 作为工具来执行特定任务,例如:

视频教程

视频教程:将8000多个Apify Actors和Agents与Claude集成

Apify MCP Server Tutorial: Integrate 5,000+ Apify Actors and Agents with Claude

多客户端兼容

Apify MCP服务器与任何遵循 模型上下文协议 的MCP客户端兼容,但不同客户端对动态工具发现和其他功能的支持程度可能有所不同。您可以使用以下客户端与Apify MCP服务器进行交互:Claude DesktopVisual Studio CodeApify 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了解使用模式并改进服务。默认情况下,所有工具调用的遥测功能均已启用。

📦 安装指南

开发环境准备

创建一个环境文件 .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-actorsfetch-actor-detailssearch-apify-docsfetch-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模式时,代理将自动处理完整的支付流程:

  1. 代理通过 search-actorsfetch-actor-details 发现相关Actors(这些操作免费)。
  2. 在执行Actor之前,代理使用Skyfire MCP服务器的 create-pay-token 工具创建一个PAY令牌(最低5美元)。
  3. 代理在调用Actor工具时,在 skyfire-pay-id 输入属性中传递PAY令牌。
  4. 结果照常返回。令牌上未使用的资金可用于未来运行,或在过期时返还。

📚 详细文档

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-actoradd-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-datasetfetch-actor-details
  • openWorldHint:对于访问Apify平台之外的外部资源的工具为 true(例如,call-actor 执行外部Actors,get-html-skeleton 抓取外部网站)。仅与Apify平台交互的工具(如 search-actorsfetch-apify-docs)没有此提示。

工具配置

tools 配置参数用于指定要加载的工具,可以是类别或特定工具,也可以是Apify Actors。例如,tools=storage,runs 加载两个类别;tools=add-actor 仅加载一个工具。

如果未提供查询参数,MCP服务器默认加载以下 tools

  • actors
  • docs
  • apify/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 时,服务器加载 actorsdocsapify/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服务器做出贡献!您可以通过以下方式提供帮助:

  • 🐛 报告问题:发现错误或有功能请求?打开一个问题
  • 🔧 提交拉取请求:分叉仓库并提交包含增强或修复的拉取请求。
  • 📚 文档:欢迎对文档和示例进行改进。
  • 💡 分享用例:贡献示例以帮助其他用户。

对于重大更改,请先打开一个问题,讨论您的提案,确保其符合项目目标。

📚 了解更多

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端