actors-mcp-server官方
使用 Apify 提供的 3000 多个预构建的云工具(称为 Actors),从网站、电子商务平台、社交媒体、搜索引擎、地图等提取数据。
README
Apify 模型上下文协议 (MCP) 服务器
所有 Apify Actors 的 MCP 服务器实现。 此服务器支持与一个或多个 Apify Actors 交互,这些 Actors 可以在 MCP 服务器配置中定义。
服务器可以通过两种方式使用:
- 🇦 MCP 服务器 Actor – 可通过服务器发送事件 (SSE) 访问的 HTTP 服务器,请参阅 指南
- ⾕ MCP 服务器 Stdio – 可通过标准输入/输出 (stdio) 访问的本地服务器,请参阅 指南
它还可以使用类似聊天的 UI 与 MCP 服务器交互,使用 💬 Tester MCP Client
🎯 Apify MCP 服务器的作用是什么?
MCP 服务器 Actor 允许 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 并返回其内容
MCP 客户端
要与 Apify MCP 服务器交互,您可以使用 MCP 客户端,例如:
- Claude Desktop(仅支持 Stdio)
- LibreChat(支持 stdio 和 SSE(但尚无 Authorization 标头))
- Apify Tester MCP Client(支持带有 Authorization 标头的 SSE)
- https://modelcontextprotocol.io/clients 上的其他客户端
- https://glama.ai/mcp/clients 上的更多客户端
此外,您可以使用 examples 目录中找到的简单示例客户端。
当您将 Actors 与 MCP 服务器集成后,您可以询问:
- “搜索网络并总结关于 AI Agents 的最新趋势”
- “查找旧金山排名前 10 的最佳意大利餐厅”
- “查找并分析 The Rock 的 Instagram 个人资料”
- “提供使用模型上下文协议的分步指南,并提供源 URL。”
- “我可以使用哪些 Apify Actors?”
下图显示了 Apify MCP 服务器如何与 Apify 平台和 AI 客户端交互:
使用 MCP Tester 客户端,您可以动态加载 Actors,但其他 MCP 客户端尚不支持此功能。 我们还计划添加更多功能,请参阅 路线图 了解更多详细信息。
🔄 什么是模型上下文协议?
模型上下文协议 (MCP) 允许 AI 应用程序(和 AI 代理),例如 Claude Desktop,连接到外部工具和数据源。 MCP 是一种开放协议,可实现 AI 应用程序、AI 代理以及本地或远程资源之间的安全、受控的交互。
有关更多信息,请参阅 模型上下文协议 网站或博客文章 什么是 MCP 以及为什么它很重要?。
🤖 MCP 服务器与 AI Agents 有何关系?
Apify MCP 服务器通过 MCP 协议公开 Apify 的 Actors,允许实现 MCP 协议的 AI Agents 或框架访问所有 Apify Actors,作为数据提取、网络搜索和其他任务的工具。
要了解有关 AI Agents 的更多信息,请浏览我们的博客文章:什么是 AI Agents? 并浏览 Apify 精选的 AI Agent 集合。 有兴趣在 Apify 上构建和货币化您自己的 AI 代理吗?查看我们的 分步指南,了解如何在 Apify 平台上创建、发布和货币化 AI 代理。
🧱 组件
工具
Actors
任何 Apify Actor 都可以用作工具。 默认情况下,服务器预配置了下面指定的 Actors,但可以通过提供 Actor 输入来覆盖它。
'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,参数为:
{
"query": "restaurants in San Francisco",
"maxResults": 3
}
您无需指定输入参数或要调用的 Actor,一切都由 LLM 管理。 当调用工具时,参数会自动传递给 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 平台上运行的 Apify Actor 或作为在您的机器上运行的本地服务器。
🇦 MCP 服务器 Actor
备用 Web 服务器
Actor 在 备用模式 下运行,并带有一个接收和处理请求的 HTTP Web 服务器。
使用默认 Actors 启动服务器。要使用一组默认 Actors 的 Apify MCP 服务器,请将带有您的 Apify API 令牌 的 HTTP GET 请求发送到以下 URL。
https://actors-mcp-server.apify.actor?token=<APIFY_TOKEN>
也可以使用不同的 Actors 集启动 MCP 服务器。 为此,请创建一个 任务 并指定您要使用的 Actors 列表。
然后,在备用模式下使用选定的 Actors 运行任务。
https://USERNAME--actors-mcp-server-task.apify.actor?token=<APIFY_TOKEN>
您可以在 Apify Store 中找到所有可用 Actors 的列表。
💬 通过 SSE 与 MCP 服务器交互
服务器运行后,您可以使用服务器发送事件 (SSE) 与服务器交互,以向服务器发送消息并接收响应。 最简单的方法是在 Apify 上使用 Tester MCP Client。
大多数 MCP 客户端尚不支持 SSE(截至 2025 年 3 月),但这可能会改变。 Claude Desktop 尚不支持 SEE,但您可以将其与 Stdio 传输一起使用,请参阅 本地主机上的 MCP 服务器 了解更多详细信息。
在客户端设置中,您需要提供服务器配置:
{
"mcpServers": {
"apify": {
"type": "sse",
"url": "https://actors-mcp-server.apify.actor/sse",
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}
或者,您可以使用简单的 python client_see.py 或使用 curl
</> 命令测试服务器。
-
通过向以下 URL 发送 GET 请求来启动服务器发送事件 (SSE):
curl https://actors-mcp-server.apify.actor/sse?token=<APIFY_TOKEN>
服务器将响应一个
sessionId
,您可以使用它向服务器发送消息:event: endpoint data: /message?sessionId=a1b
-
通过使用
sessionId
发出 POST 请求来向服务器发送消息: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
-
接收响应。服务器将使用提供的查询参数调用指定的 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 或任何其他 MCP 客户端 配置 Apify MCP 服务器,在您的本地计算机上运行它。 您还可以使用 Smithery 自动安装服务器。
先决条件
- MacOS 或 Windows
- 必须安装最新版本的 Claude Desktop(或其他 MCP 客户端)
- Node.js(v18 或更高版本)
- Apify API 令牌 (
APIFY_TOKEN
)
Claude Desktop
要配置 Claude Desktop 以使用 MCP 服务器,请按照以下步骤操作。有关详细指南,请参阅 Claude Desktop 用户指南。
-
下载 Claude for desktop
- 适用于 Windows 和 macOS。
- 对于 Linux 用户,您可以使用此 非官方构建脚本 构建 Debian 包。
-
打开 Claude Desktop 应用程序并从左上角的菜单栏启用 开发者模式。
-
启用后,打开 设置(也从左上角的菜单栏)并导航到 开发者选项,您将在其中找到 编辑配置 按钮
-
打开配置文件并编辑以下文件:
- 在 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 Actors:{ "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" } } } }
- 在 macOS 上:
-
重新启动 Claude Desktop
- 完全退出 Claude Desktop(确保它不仅仅是最小化或关闭)。
- 重新启动 Claude Desktop。
- 查找 🔌 图标以确认 Exa 服务器已连接。
-
打开 Claude Desktop 聊天并询问“我可以使用哪些 Apify Actors?”
-
例子
您可以要求 Claude 执行任务,例如:
查找并分析关于 LLM 的最新研究论文。 查找旧金山排名前 10 的最佳意大利餐厅。 查找并分析 The Rock 的 instagram 个人资料。
使用 @modelcontextprotocol/inspector 调试 NPM 包 @apify/actors-mcp-server
要调试服务器,请使用 MCP Inspector 工具:
export APIFY_TOKEN=your-apify-token
npx @modelcontextprotocol/inspector npx -y @apify/actors-mcp-server
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 Apify Actors MCP Server:
npx -y @smithery/cli install @apify/actors-mcp-server --client claude
Stdio 客户端
创建包含以下内容的环境文件 .env
:
APIFY_TOKEN=your-apify-token
# 仅当您要运行 examples/clientStdioChat.js 时才需要 ANTHROPIC_API_KEY
ANTHROPIC_API_KEY=your-anthropic-api-token
在 examples
目录中,您可以找到两个通过标准输入/输出 (stdio) 与服务器交互的客户端:
-
clientStdio.ts
此客户端脚本使用两个指定的 Actors 启动 MCP 服务器。 然后,它使用查询调用apify/rag-web-browser
工具并打印结果。 它演示了如何连接到 MCP 服务器、列出可用的工具以及使用 stdio 传输调用特定的工具。node dist/examples/clientStdio.js
-
clientStdioChat.ts
此客户端脚本也启动 MCP 服务器,但提供了一个交互式命令行聊天界面。 它提示用户与服务器交互,允许动态工具调用和响应。 此示例对于以对话方式测试和调试与 MCP 服务器的交互非常有用。node dist/examples/clientStdioChat.js
👷🏼 开发
先决条件
- Node.js(v18 或更高版本)
- Python 3.9 或更高版本
创建包含以下内容的环境文件 .env
:
APIFY_TOKEN=your-apify-token
# 仅当您要运行 examples/clientStdioChat.js 时才需要 ANTHROPIC_API_KEY
ANTHROPIC_API_KEY=your-anthropic-api-key
本地客户端 (SSE)
要使用 SSE 传输测试服务器,您可以使用 python 脚本 examples/clientSse.ts
:
目前,node.js 客户端不支持建立与带有自定义标头的远程服务器的连接。
您需要在脚本中将 URL 更改为您的本地服务器 URL。
node dist/examples/clientSse.js
调试
由于 MCP 服务器通过标准输入/输出 (stdio) 运行,因此调试可能具有挑战性。 为了获得最佳调试体验,请使用 MCP Inspector。
构建 actor-mcp-server 包:
npm run build
您可以使用 npm
使用以下命令启动 MCP Inspector:
export APIFY_TOKEN=your-apify-token
npx @modelcontextprotocol/inspector node ./dist/index.js
启动后,Inspector 将显示一个 URL,您可以在浏览器中访问该 URL 以开始调试。
ⓘ 限制和反馈
处理 Actor 输入模式以使其与大多数 MCP 客户端兼容,同时遵守 JSON Schema 标准。处理包括:
- 描述 截断为 500 个字符(如
MAX_DESCRIPTION_LENGTH
中定义)。 - 枚举字段 截断为所有元素的最大组合长度为 200 个字符(如
ACTOR_ENUM_MAX_LENGTH
中定义)。 - 必需字段 在其描述中显式标记有“REQUIRED”前缀,以便与可能无法正确处理 JSON 模式的框架兼容。
- 为代理配置和请求列表源等特殊情况构建 嵌套属性,以确保正确的输入结构。
- 当未在模式中显式定义时,数组项目类型 会被推断,使用优先级顺序:项目中的显式类型 > 预填充类型 > 默认值类型 > 编辑器类型。
- 枚举值和示例 添加到属性描述中,以确保即使客户端不完全支持 JSON 模式,也能看到它们。
每个 Actor 的内存限制为 4GB。
免费用户有 8GB 的限制,需要为运行 Actors-MCP-Server
分配 128MB。
如果您需要其他功能或有任何反馈,请在 Apify Console 中 提交问题 让我们知道。
🚀 路线图(2025 年 3 月)
- 添加 Apify 的数据集和键值存储作为资源。
- 添加诸如 Actor 日志和 Actor 运行之类的工具以进行调试。
📚 了解更多
- 模型上下文协议
- 什么是 AI Agents?
- 什么是 MCP 以及为什么它很重要?
- Tester MCP Client
- AI 代理工作流程:构建一个代理来查询 Apify 数据集
- MCP 客户端开发指南
- 如何在 Apify 上构建和货币化 AI 代理
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Playwright MCP Server
提供一个利用模型上下文协议的服务器,以实现类人浏览器的自动化,该服务器使用 Playwright,允许控制浏览器行为,例如导航、元素交互和滚动。
@kazuph/mcp-fetch
用于获取网页内容和处理图像的模型上下文协议服务器。这使得 Claude Desktop(或任何 MCP 客户端)能够适当地获取网页内容和处理图像。
DuckDuckGo MCP Server
一个模型上下文协议 (MCP) 服务器,通过 DuckDuckGo 提供网页搜索功能,并具有内容获取和解析的附加功能。
YouTube Transcript MCP Server
这个服务器用于获取指定 YouTube 视频 URL 的字幕,从而可以与 Goose CLI 或 Goose Desktop 集成,进行字幕提取和处理。
serper-search-scrape-mcp-server
这个 Serper MCP 服务器支持搜索和网页抓取,并且支持 Serper API 引入的所有最新参数,例如位置。
The Verge News MCP Server
提供从The Verge的RSS feed获取和搜索新闻的工具,允许用户获取今日新闻、检索过去一周的随机文章,以及在最近的Verge内容中搜索特定关键词。
Tavily MCP Server
使用 Tavily 的搜索 API 提供 AI 驱动的网络搜索功能,使 LLM 能够执行复杂的网络搜索、获得问题的直接答案以及搜索最近的新闻文章。
mcp-pinterest
用于图像搜索和信息检索的 Pinterest 模型上下文协议 (MCP) 服务器

@wopal/mcp-server-hotnews
一个模型上下文协议服务器,提供来自中国主要社交平台和新闻网站的实时热点话题。