MCP服务器

Apify MCP服务器是一个允许AI助手使用Apify Actors作为工具执行特定任务的平台,适用于数据提取、网页搜索等场景。

  • by MJBeauty
  • 混合部署
  • 1 星标
  • 更新于
在 GitHub 查看 mjbeauty/actors-mcp-server

使用说明

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

为所有人实施MCP服务器 优化演员. 此服务器允许与MCP服务器配置中定义的一个或多个Apify Actor进行交互。

服务器可以通过两种方式使用:

  • 🇦 MCP服务器执行器 –可通过服务器发送事件(SSE)访问HTTP服务器,请参阅 指南
  • ⾕ MCP服务器标准 –本地服务器可通过标准输入/输出(stdio)访问,请参阅 指南

您还可以使用类似聊天的UI与MCP服务器进行交互💬 测试仪MCP客户端

🎯 Apify MCP服务器做什么?

MCP服务器Actor允许AI助手使用任何 Apify演员 作为执行特定任务的工具。 例如,它可以:

MCP客户端

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

当您将Actor与MCP服务器集成时,您可以问:

  • “搜索网络并总结人工智能代理的最新趋势”
  • “查找旧金山十大最好的意大利餐厅”
  • “查找并分析the Rock的Instagram个人资料”
  • “提供关于使用源URL的模型上下文协议的分步指南”
  • “我可以使用哪些Apify演员?”

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

使用MCP Tester客户端,您可以动态加载Actor,但其他MCP客户端尚不支持。 我们还计划添加更多功能,请参阅 路线图 了解更多详情。

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

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

有关更多信息,请参阅 模型上下文协议 网站或博客文章 什么是MCP,为什么它很重要?.

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

Apify MCP服务器通过MCP协议公开Apify的Actor,允许实现MCP协议的AI代理或框架访问所有Apify Actor作为数据提取、网络搜索和其他任务的工具。

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

🧱 组件

工具

演员

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

'apify/instagram-scraper'
'apify/rag-web-browser'
'lukaskrivka/google-maps-with-contact-details'

MCP服务器加载Actor输入模式,并创建与Actor对应的MCP工具。 请参阅此输入模式示例 RAG网络浏览器.

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

{
  "query": "restaurants in San Francisco",
  "maxResults": 3
}

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

辅助工具

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

  • get-actor-details:检索特定Actor的文档、输入架构和详细信息。
  • discover-actors:使用关键字搜索相关参与者并返回其详细信息。

还有用于管理可用工具列表的工具。但是,动态添加和删除工具需要MCP客户端能够更新工具列表(句柄 ToolListChangedNotificationSchema),这通常不受支持。

您可以使用 Apify测试器MCP客户端 男演员 要启用它,请设置 enableActorAutoLoading 参数。

  • add-actor-as-tool:按名称将Actor添加到可用工具列表中,而不执行它,需要用户同意才能稍后运行。
  • remove-actor-from-tool:当不再需要时,按名称从可用工具列表中删除Actor。

提示和资源

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

⚙️ 用法

Apify MCP服务器有两种使用方式: 作为Apify演员 在Apify平台上运行 或作为a 本地服务器 在你的机器上运行。

🇦 MCP服务器执行器

备用web服务器

演员跑了进来 待机模式 具有接收和处理请求的HTTP web服务器。

要使用默认Actor启动服务器,请使用您的 Apify API令牌 转到以下URL:

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

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

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

https://USERNAME--actors-mcp-server-task.apify.actor?token=<APIFY_TOKEN>

您可以在中找到所有可用演员的列表 Apify商店.

💬 通过SSE与MCP服务器交互

服务器运行后,您可以与服务器发送事件(SSE)交互,向服务器发送消息并接收响应。 最简单的方法是使用 测试仪MCP客户端 关于Apify。

克劳德桌面 目前缺乏SSE支持,但您可以将其与Stdio传输一起使用;看见 本地主机上的MCP服务器 了解更多详情。 注意:免费版的Claude Desktop可能会遇到与服务器的间歇性连接问题。

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

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

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

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

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

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

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

    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请求,服务器将响应:

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

    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或任何其他配置在本地计算机上运行Apify MCP服务器 MCP客户端. 您还可以使用 史密瑟里 自动安装服务器。

先决条件

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

确保你有 node 和 npx 正确安装:

node -v
npx -v

如果没有,请按照以下指南安装Node.js: 下载并安装Node.js和npm.

克劳德桌面

要配置Claude Desktop以与MCP服务器一起工作,请执行以下步骤。有关详细指南,请参阅 克劳德桌面用户指南.

  1. 下载克劳德桌面版

    • 适用于Windows和macOS。
    • 对于Linux用户,您可以使用以下命令构建Debian软件包 非官方构建脚本.
  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
    {
     "mcpServers": {
       "actors-mcp-server": {
         "command": "npx",
         "args": ["-y", "@apify/actors-mcp-server"],
         "env": {
            "APIFY_TOKEN": "your-apify-token"
         }
       }
     }
    }
    

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

    {
    "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(确保它不是最小化或关闭的)。
    • 重新启动克劳德桌面。
    • 寻找🔌 图标确认Actors MCP服务器已连接。
  6. 打开克劳德桌面聊天,问“我可以使用哪些Apify Actor?”

  7. 例子

    您可以要求Claude执行以下任务:

    Find and analyze recent research papers about LLMs.
    Find the top 10 best Italian restaurants in San Francisco.
    Find and analyze the Instagram profile of The Rock.
    

VS代码

对于一键安装,请单击下面的安装按钮之一:

手动安装

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

或者,将以下JSON块添加到VS Code中的用户设置(JSON)文件中。您可以按 Ctrl + Shift + P 和打字 Preferences: Open User Settings (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 {} 钥匙。这将允许您与他人共享配置。

如果要指定要加载的Actor,可以添加 --actors 论点:

{
  "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代码

对于一键安装,请单击下面的安装按钮之一:

手动安装

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

或者,将以下JSON块添加到VS Code中的用户设置(JSON)文件中。您可以按 Ctrl + Shift + P 和打字 Preferences: Open User Settings (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 {} 钥匙。这将允许您与他人共享配置。

如果要指定要加载的Actor,可以添加 --actors 论点:

{
  "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服务器

要调试服务器,请使用 MCP检查员 工具:

export APIFY_TOKEN=your-apify-token
npx @modelcontextprotocol/inspector npx -y @apify/actors-mcp-server

通过Smithery安装

通过以下方式自动安装适用于Claude Desktop的Apify Actors MCP服务器 史密瑟里:

npx -y @smithery/cli install @apify/actors-mcp-server --client claude

Stdio客户端

创建环境文件 .env 内容如下:

APIFY_TOKEN=your-apify-token

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

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

👷🏼 发展

先决条件

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

创建环境文件 .env 内容如下:

APIFY_TOKEN=your-apify-token

构建actor-mcp服务器包:

npm run build

本地客户(SSE)

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

node dist/examples/clientSse.js

调试

由于MCP服务器在标准输入/输出(stdio)上运行,调试可能具有挑战性。 为了获得最佳的调试体验,请使用 MCP检查员.

您可以通过以下方式启动MCP检查器 npm 使用此命令:

export APIFY_TOKEN=your-apify-token
npx @modelcontextprotocol/inspector node ./dist/stdio.js

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

ⓘ 限制和反馈

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

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

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

如果您需要其他功能或有任何反馈, 提交问题 在Apify Console中让我们知道。

🚀 路线图(2025年3月)

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

🐛 故障排除

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

📚 了解更多