小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
Apache License 2.0
157
最近更新:5天前

Model Context Protocol (MCP) 服务器用于 Apify 的 Actors

Apify 模型上下文协议 (MCP) 服务器

Actors MCP Server
smithery badge

这是为所有 Apify Actors 实现的 MCP 服务器。
该服务器允许与一个或多个在 MCP 服务器配置中定义的 Apify Actors 进行交互。

服务器有两种使用方式:

  • 🇦 MCP Server Actor – 可通过服务器发送事件 (SSE) 访问的 HTTP 服务器,参见 指南
  • ⾕ MCP Server Stdio – 可通过标准输入/输出 (stdio) 在本地主机上使用的服务器,参见 指南

您还可以使用类似聊天界面的 💬 Tester MCP Client 与 MCP 服务器进行交互。

🎯 Apify MCP 服务器能做什么?

MCP Server Actor 允许 AI 助手将任何 Apify Actor 作为一种工具来执行特定任务。
例如,它可以:

MCP 客户端

要与 Apify MCP 服务器交互,您可以使用以下 MCP 客户端:

当您将 Actors 集成到 MCP 服务器后,您可以询问:

  • “搜索网络并总结关于 AI Agents 的最新趋势”
  • “找出旧金山最好的 10 家意大利餐厅”
  • “查找并分析 The Rock 的 Instagram 个人资料”
  • “提供使用模型上下文协议的分步指南及源 URL”
  • “我可以使用哪些 Apify Actors?”

下图展示了 Apify MCP 服务器如何与 Apify 平台和 AI 客户端交互:

Actors-MCP-server

使用 MCP Tester 客户端可以动态加载 Actors,但其他 MCP 客户端尚不支持此功能。
我们还计划添加更多功能,请参阅 路线图 以获取更多详细信息。

🔄 什么是模型上下文协议?

模型上下文协议 (MCP) 允许 AI 应用程序(如 Claude Desktop)连接到外部工具和数据源。
MCP 是一种开放协议,可实现 AI 应用程序、AI 代理与本地或远程资源之间的安全、受控交互。

更多信息,请访问 Model Context Protocol 网站或博客文章 什么是 MCP 以及为什么它很重要?

🤖 MCP 服务器与 AI 代理有何关系?

Apify MCP 服务器通过 MCP 协议公开 Apify 的 Actors,使实现 MCP 协议的 AI 代理或框架能够将所有 Apify Actors 作为工具用于数据提取、网络搜索等任务。

想了解更多关于 AI 代理的信息,请浏览我们的博客文章:什么是 AI 代理? 并查看 Apify 精选的 AI 代理集合
有兴趣在 Apify 上构建并货币化自己的 AI 代理吗?请查看我们关于如何在 Apify 平台上创建、发布和货币化 AI 代理的 分步指南

🧱 组件

工具

Actors

任何 Apify Actor 都可以用作工具。
默认情况下,服务器预配置了以下指定的 Actors,但可以通过提供 Actor 输入来覆盖此配置。

text 复制代码
'apify/instagram-scraper'
'apify/rag-web-browser'
'lukaskrivka/google-maps-with-contact-details'

MCP 服务器会加载 Actor 输入模式并创建与 Actors 对应的 MCP 工具。
有关 RAG Web Browser 输入模式的示例,请参阅此链接。

工具名称必须始终是完整的 Actor 名称,例如 apify/rag-web-browser
MCP 工具的参数表示 Actor 的输入参数。
例如,对于 apify/rag-web-browser Actor,参数如下:

json 复制代码
{
  "query": "restaurants in San Francisco",
  "maxResults": 3
}

您无需指定输入参数或调用哪个 Actor;一切由 LLM 管理。
当工具被调用时,参数会自动传递给 Actor。
您可以参考特定 Actor 的文档以获取可用参数列表。

辅助工具

服务器提供了一组辅助工具来发现可用的 Actors 并检索其详细信息:

  • get-actor-details: 检索特定 Actor 的文档、输入模式和详细信息。
  • discover-actors: 使用关键词搜索相关 Actors 并返回其详细信息。

还有一些工具可以管理可用工具列表。然而,动态添加和删除工具需要 MCP 客户端具备更新工具列表的能力(处理 ToolListChangedNotificationSchema),这通常不受支持。

您可以使用 Apify Tester MCP Client Actor 尝试此功能。
要启用它,请设置 enableActorAutoLoading 参数。

  • add-actor-as-tool: 将 Actor 按名称添加到可用工具列表中,而无需立即执行,稍后运行时需用户同意。
  • remove-actor-from-tool: 当不再需要某个 Actor 时,按名称将其从可用工具列表中移除。

提示 & 资源

服务器不提供任何资源和提示。
我们计划在未来添加 Apify 的数据集键值存储 作为资源。

⚙️ 使用方法

Apify MCP 服务器有两种使用方式:作为 Apify Actor 在 Apify 平台上运行,
或者作为在您机器上运行的 本地服务器

🇦 MCP Server Actor

待机 Web 服务器

Actor 在 待机模式 下运行,并带有一个接收和处理请求的 HTTP Web 服务器。

要使用默认 Actors 启动服务器,请将您的 Apify API 令牌 发送到以下 URL 的 HTTP GET 请求:

复制代码
https://actors-mcp-server.apify.actor?token=<APIFY_TOKEN>

也可以使用不同的 Actors 集合启动 MCP 服务器。
为此,请创建一个 任务 并指定您要使用的 Actors 列表。

然后,在待机模式下运行选定的 Actors 任务:

shell 复制代码
https://USERNAME--actors-mcp-server-task.apify.actor?token=<APIFY_TOKEN>

您可以在 Apify Store 中找到所有可用的 Actors 列表。

💬 通过 SSE 与 MCP 服务器交互

一旦服务器运行起来,您可以使用服务器发送事件 (SSE) 向服务器发送消息并接收响应。
最简单的方法是在 Apify 上使用 Tester MCP Client

Claude Desktop 目前不支持 SSE,但您可以使用 Stdio 传输方式;详见 本地主机上的 MCP 服务器
注意:Claude Desktop 的免费版本可能会间歇性地出现与服务器的连接问题。

在客户端设置中,您需要提供服务器配置:

json 复制代码
{
    "mcpServers": {
        "apify": {
            "type": "sse",
            "url": "https://actors-mcp-server.apify.actor/sse",
            "env": {
                "APIFY_TOKEN": "your-apify-token"
            }
        }
    }
}

或者,您可以使用 clientSse.ts 脚本或使用 curl </> 命令测试服务器。

  1. 通过向以下 URL 发送 GET 请求来启动服务器发送事件 (SSE):

    复制代码
    curl https://actors-mcp-server.apify.actor/sse?token=<APIFY_TOKEN>

    服务器将返回一个 sessionId,您可以使用它向服务器发送消息:

    shell 复制代码
    event: endpoint
    data: /message?sessionId=a1b
  2. 通过使用 sessionId 发送 POST 请求向服务器发送消息:

    shell 复制代码
    curl -X POST "https://actors-mcp-server.apify.actor/message?token=<APIFY_TOKEN>&session_id=a1b" -H "Content-Type: application/json" -d '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "arguments": { "searchStringsArray": ["restaurants in San Francisco"], "maxCrawledPlacesPerSearch": 3 },
        "name": "lukaskrivka/google-maps-with-contact-details"
      }
    }'

    MCP 服务器将以提供的参数作为输入启动 Actor lukaskrivka/google-maps-with-contact-details
    对于这个 POST 请求,服务器将返回:

    text 复制代码
    Accepted
  3. 接收响应。服务器将使用提供的查询参数调用指定的 Actor 作为工具,并通过 SSE 将响应流式传输回客户端。
    响应将以 JSON 文本形式返回。

    text 复制代码
    event: message
    data: {"result":{"content":[{"type":"text","text":"{\"searchString\":\"restaurants in San Francisco\",\"rank\":1,\"title\":\"Gary Danko\",\"description\":\"Renowned chef Gary Danko's fixed-price menus of American cuisine ... \",\"price\":\"$100+\"...}}]}}

⾕ 本地主机上的 MCP 服务器

您可以通过配置 Claude Desktop 或任何其他 MCP 客户端 在本地机器上运行 Apify MCP 服务器。
您还可以使用 Smithery 自动安装服务器。

先决条件

  • MacOS 或 Windows
  • 必须安装最新版本的 Claude Desktop(或其他 MCP 客户端)
  • Node.js(v18 或更高版本)
  • Apify API Token (APIFY_TOKEN)

确保正确安装了 nodenpx

bash 复制代码
node -v
npx -v

如果未安装,请按照此指南安装 Node.js:下载和安装 Node.js 和 npm

Claude Desktop

要配置 Claude Desktop 以使其与 MCP 服务器一起工作,请按照以下步骤操作。欲了解详细指南,请参阅 Claude Desktop 用户指南

  1. 下载桌面版 Claude

  2. 打开 Claude Desktop 应用程序并从左上角菜单栏启用 开发者模式

  3. 启用后,打开 设置(同样从左上角菜单栏),导航至 开发者选项,您将在其中找到 编辑配置 按钮。

  4. 打开配置文件并编辑以下文件:

    • 在 macOS 上:~/Library/Application\ Support/Claude/claude_desktop_config.json
    • 在 Windows 上:%APPDATA%/Claude/claude_desktop_config.json
    • 在 Linux 上:~/.config/Claude/claude_desktop_config.json
    json 复制代码
    {
     "mcpServers": {
       "actors-mcp-server": {
         "command": "npx",
         "args": ["-y", "@apify/actors-mcp-server"],
         "env": {
            "APIFY_TOKEN": "your-apify-token"
         }
       }
     }
    }

    或者,您可以使用 actors 参数选择一个或多个 Apify Actors:

    json 复制代码
    {
    "mcpServers": {
      "actors-mcp-server": {
        "command": "npx",
        "args": [
          "-y", "@apify/actors-mcp-server",
          "--actors", "lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper"
        ],
        "env": {
           "APIFY_TOKEN": "your-apify-token"
        }
      }
    }
    }
  5. 重启 Claude Desktop

    • 完全退出 Claude Desktop(确保它不只是最小化或关闭)。
    • 重新启动 Claude Desktop。
    • 查找 🔌 图标以确认 Actors MCP 服务器已连接。
  6. 打开 Claude Desktop 聊天并询问“我可以使用哪些 Apify Actors?”

    Claude-desktop-with-Actors-MCP-server
  7. 示例

    您可以要求 Claude 执行任务,例如:

    text 复制代码
    查找并分析关于 LLMs 的最新研究论文。
    找出旧金山最好的 10 家意大利餐厅。
    查找并分析 The Rock 的 Instagram 个人资料。

VS Code

一键安装,请点击以下安装按钮之一:

使用 NPX 在 VS Code 中安装 使用 NPX 在 VS Code Insiders 中安装

手动安装

您可以手动在 VS Code 中安装 Apify MCP 服务器。首先,点击本节顶部的一键安装按钮之一进行一键安装。

或者,将以下 JSON 块添加到 VS Code 的用户设置 (JSON) 文件中。您可以通过按下 Ctrl + Shift + P 并输入 Preferences: Open User Settings (JSON) 来完成此操作。

json 复制代码
{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "apify_token",
        "description": "Apify API Token",
        "password": true
      }
    ],
    "servers": {
      "actors-mcp-server": {
        "command": "npx",
        "args": ["-y", "@apify/actors-mcp-server"],
        "env": {
          "APIFY_TOKEN": "${input:apify_token}"
        }
      }
    }
  }
}

可选地,您可以将其添加到工作区中的 .vscode/mcp.json 文件中——只需省略顶层的 mcp {} 键即可。这将允许您与他人共享配置。

如果您想指定要加载的 Actors,可以添加 --actors 参数:

json 复制代码
{
  "servers": {
    "actors-mcp-server": {
      "command": "npx",
      "args": [
        "-y", "@apify/actors-mcp-server",
        "--actors", "lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper"
      ],
      "env": {
        "APIFY_TOKEN": "${input:apify_token}"
      }
    }
  }
}

VS Code

一键安装,请点击以下安装按钮之一:

使用 NPX 在 VS Code 中安装 使用 NPX 在 VS Code Insiders 中安装

手动安装

您可以手动在 VS Code 中安装 Apify MCP 服务器。首先,点击本节顶部的一键安装按钮之一进行一键安装。

或者,将以下 JSON 块添加到 VS Code 的用户设置 (JSON) 文件中。您可以通过按下 Ctrl + Shift + P 并输入 Preferences: Open User Settings (JSON) 来完成此操作。

json 复制代码
{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "apify_token",
        "description": "Apify API Token",
        "password": true
      }
    ],
    "servers": {
      "actors-mcp-server": {
        "command": "npx",
        "args": ["-y", "@apify/actors-mcp-server"],
        "env": {
          "APIFY_TOKEN": "${input:apify_token}"
        }
      }
    }
  }
}

可选地,您可以将其添加到工作区中的 .vscode/mcp.json 文件中——只需省略顶层的 mcp {} 键即可。这将允许您与他人共享配置。

如果您想指定要加载的 Actors,可以添加 --actors 参数:

json 复制代码
{
  "servers": {
    "actors-mcp-server": {
      "command": "npx",
      "args": [
        "-y", "@apify/actors-mcp-server",
        "--actors", "lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper"
      ],
      "env": {
        "APIFY_TOKEN": "${input:apify_token}"
      }
    }
  }
}

使用 @modelcontextprotocol/inspector 调试 NPM 包 @apify/actors-mcp-server

要调试服务器,请使用 MCP Inspector 工具:

shell 复制代码
export APIFY_TOKEN=your-apify-token
npx @modelcontextprotocol/inspector npx -y @apify/actors-mcp-server

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 Apify Actors MCP 服务器:

bash 复制代码
npx -y @smithery/cli install @apify/actors-mcp-server --client claude

Stdio 客户端

创建一个名为 .env 的环境文件,内容如下:

text 复制代码
APIFY_TOKEN=your-apify-token

examples 目录中,您可以找到一个示例客户端,通过标准输入/输出 (stdio) 与服务器交互:

  • clientStdio.ts
    此客户端脚本启动包含两个指定 Actors 的 MCP 服务器。
    然后,它调用 apify/rag-web-browser 工具并打印结果。
    它演示了如何连接到 MCP 服务器、列出可用工具并使用 stdio 传输调用特定工具。
    bash 复制代码
    node dist/examples/clientStdio.js

👷🏼 开发

先决条件

  • Node.js(v18 或更高版本)
  • Python 3.9 或更高版本

创建一个名为 .env 的环境文件,内容如下:

text 复制代码
APIFY_TOKEN=your-apify-token

构建 actor-mcp-server 包:

bash 复制代码
npm run build

本地客户端 (SSE)

要使用 SSE 传输测试服务器,您可以使用脚本 examples/clientSse.ts
目前,Node.js 客户端不支持建立带有自定义标头的远程服务器连接。
您需要在脚本中将 URL 更改为您的本地服务器 URL。

bash 复制代码
node dist/examples/clientSse.js

调试

由于 MCP 服务器通过标准输入/输出 (stdio) 运行,因此调试可能会很困难。
为了获得最佳调试体验,请使用 MCP Inspector

您可以通过 npm 使用以下命令启动 MCP Inspector:

bash 复制代码
export APIFY_TOKEN=your-apify-token
npx @modelcontextprotocol/inspector node ./dist/stdio.js

启动后,Inspector 将显示一个 URL,您可以在浏览器中访问该 URL 开始调试。

ⓘ 限制和反馈

Actor 输入模式经过处理以兼容大多数 MCP 客户端,同时遵守 JSON Schema 标准。处理包括:

  • 描述 截断为 500 个字符(在 MAX_DESCRIPTION_LENGTH 中定义)。
  • 枚举字段 截断为所有元素的最大组合长度为 200 个字符(在 ACTOR_ENUM_MAX_LENGTH 中定义)。
  • 必填字段 明确标记为“REQUIRED”前缀在其描述中,以兼容可能无法正确处理 JSON 模式的框架。
  • 嵌套属性 为特殊情况(如代理配置和请求列表来源)构建,以确保正确的输入结构。
  • 数组项类型 在未在模式中明确定义时推断,使用优先级顺序:items 中的显式类型 > 预填充类型 > 默认值类型 > 编辑器类型。
  • 枚举值和示例 添加到属性描述中,以确保即使客户端不完全支持 JSON 模式也能可见。

每个 Actor 的内存限制为 4GB。
免费用户有 8GB 的限制,需要为运行 Actors-MCP-Server 分配 128MB。

如果您需要其他功能或有任何反馈,请在 Apify 控制台中 提交问题 告知我们。

🚀 路线图(2025 年 3 月)

  • 添加 Apify 的数据集和键值存储作为资源。
  • 添加调试工具,如 Actor 日志和 Actor 运行记录。

🐛 故障排除

  • 确保通过运行 node -v 安装了 node
  • 确保设置了 APIFY_TOKEN 环境变量
  • 始终通过设置 @apify/actors-mcp-server@latest 使用最新版本的 MCP 服务器

📚 了解更多