@apify/actors-mcp-server 0.19.6-beta.3 β 0.19.6-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +318 -452
- package/dist/tools/storage/get_dataset.d.ts.map +1 -1
- package/dist/tools/storage/get_dataset.js +7 -7
- package/dist/tools/storage/get_dataset.js.map +1 -1
- package/dist/tools/storage/get_dataset_items.d.ts.map +1 -1
- package/dist/tools/storage/get_dataset_items.js +10 -6
- package/dist/tools/storage/get_dataset_items.js.map +1 -1
- package/dist/tools/storage/get_dataset_schema.d.ts.map +1 -1
- package/dist/tools/storage/get_dataset_schema.js +6 -6
- package/dist/tools/storage/get_dataset_schema.js.map +1 -1
- package/dist/tools/storage/get_key_value_store.d.ts.map +1 -1
- package/dist/tools/storage/get_key_value_store.js +7 -7
- package/dist/tools/storage/get_key_value_store.js.map +1 -1
- package/dist/tools/storage/get_key_value_store_keys.d.ts.map +1 -1
- package/dist/tools/storage/get_key_value_store_keys.js +9 -8
- package/dist/tools/storage/get_key_value_store_keys.js.map +1 -1
- package/dist/tools/storage/get_key_value_store_record.d.ts.map +1 -1
- package/dist/tools/storage/get_key_value_store_record.js +15 -9
- package/dist/tools/storage/get_key_value_store_record.js.map +1 -1
- package/dist/tools/storage/storage_helpers.d.ts +34 -0
- package/dist/tools/storage/storage_helpers.d.ts.map +1 -1
- package/dist/tools/storage/storage_helpers.js +38 -0
- package/dist/tools/storage/storage_helpers.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,614 +1,480 @@
|
|
|
1
|
-
<
|
|
1
|
+
<p align="center">
|
|
2
2
|
<a href="https://mcp.apify.com">
|
|
3
|
-
<
|
|
4
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/apify/apify-mcp-server/refs/heads/master/docs/apify_mcp_server_dark_background.png">
|
|
5
|
-
<img alt="Apify MCP Server" src="https://raw.githubusercontent.com/apify/apify-mcp-server/refs/heads/master/docs/apify_mcp_server_white_background.png" width="500">
|
|
6
|
-
</picture>
|
|
3
|
+
<img alt="Apify MCP server" src="docs/apify-mcp-server-header.png" width="100%">
|
|
7
4
|
</a>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<p align=center>
|
|
13
|
-
<a href="https://www.npmjs.com/package/@apify/actors-mcp-server"
|
|
14
|
-
<a href="https://www.npmjs.com/package/@apify/actors-mcp-server"
|
|
15
|
-
<a href="https://github.com/apify/
|
|
16
|
-
<a href="
|
|
5
|
+
</p>
|
|
6
|
+
<p align="center">
|
|
7
|
+
<a href="https://mcp.apify.com"><img src="https://img.shields.io/badge/Any_MCP_client-Get_config-F86606?style=for-the-badge&logo=modelcontextprotocol&logoColor=white" alt="Get the config for any MCP client" height="32"></a>
|
|
8
|
+
</p>
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://www.npmjs.com/package/@apify/actors-mcp-server"><img src="https://img.shields.io/npm/v/@apify/actors-mcp-server.svg" alt="npm version"></a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/@apify/actors-mcp-server"><img src="https://img.shields.io/npm/dm/@apify/actors-mcp-server.svg" alt="npm downloads"></a>
|
|
12
|
+
<a href="https://github.com/apify/apify-mcp-server/actions/workflows/on_master.yaml"><img src="https://github.com/apify/apify-mcp-server/actions/workflows/on_master.yaml/badge.svg?branch=master" alt="CI status"></a>
|
|
13
|
+
<a href="./LICENSE.md"><img src="https://img.shields.io/github/license/apify/apify-mcp-server" alt="MIT license"></a>
|
|
14
|
+
</p>
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="https://github.com/apify/apify-mcp-server/stargazers"><img src="https://img.shields.io/github/stars/apify/apify-mcp-server?style=social" alt="GitHub stars"></a>
|
|
17
|
+
<a href="https://discord.apify.com"><img src="https://img.shields.io/badge/Discord-Join_the_community-5865F2?logo=discord&logoColor=white" alt="Apify Discord"></a>
|
|
17
18
|
</p>
|
|
18
19
|
|
|
20
|
+
# Apify MCP server
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
> **π Use the hosted Apify MCP Server!**
|
|
23
|
-
>
|
|
24
|
-
> For the best experience, connect your AI assistant to our hosted server at **[`https://mcp.apify.com`](https://mcp.apify.com)**. The hosted server supports the latest features - including output schema inference for structured Actor results - that are not available when running locally via stdio.
|
|
25
|
-
|
|
26
|
-
> β οΈ **Legacy SSE transport removed.** The `https://mcp.apify.com/sse` endpoint has been removed in favor of Streamable HTTP. Migrate your client to **[`https://mcp.apify.com`](https://mcp.apify.com)** β drop the `/sse` suffix from your configuration.
|
|
27
|
-
|
|
28
|
-
π° The server also supports [agentic payments](#-agentic-payments): buy a token from [AGI](#-agi-recommended) to run any Actor, or pay per-request via [direct x402](#-direct-x402) (Pay Per Event Actors only) or [Skyfire](#-skyfire).
|
|
29
|
-
|
|
30
|
-
Apify MCP Server is compatible with `Claude Code, Claude.ai, Cursor, VS Code` and any client that adheres to the Model Context Protocol.
|
|
31
|
-
Check out the [MCP clients section](#-mcp-clients) for more details or visit the [MCP configuration page](https://mcp.apify.com).
|
|
32
|
-
|
|
33
|
-

|
|
34
|
-
|
|
35
|
-
## Table of Contents
|
|
36
|
-
- [π Introducing Apify MCP Server](#-introducing-apify-mcp-server)
|
|
37
|
-
- [π Quickstart](#-quickstart)
|
|
38
|
-
- [π€ MCP clients](#-mcp-clients)
|
|
39
|
-
- [πͺ Try Apify MCP instantly](#-try-apify-mcp-instantly)
|
|
40
|
-
- [π° Agentic payments](#-agentic-payments)
|
|
41
|
-
- [How agentic payments work](#how-agentic-payments-work)
|
|
42
|
-
- [πͺ AGI (recommended)](#-agi-recommended)
|
|
43
|
-
- [πΈ Direct x402](#-direct-x402)
|
|
44
|
-
- [π₯ Skyfire](#-skyfire)
|
|
45
|
-
- [π οΈ Tools, resources, and prompts](#%EF%B8%8F-tools-resources-and-prompts)
|
|
46
|
-
- [π Telemetry](#-telemetry)
|
|
47
|
-
- [π¬ Usage examples](#-usage-examples)
|
|
48
|
-
- [π Troubleshooting](#-troubleshooting)
|
|
49
|
-
- [βοΈ Development](#%EF%B8%8F-development)
|
|
50
|
-
- [π Privacy policy](#-privacy-policy)
|
|
51
|
-
- [π€ Contributing](#-contributing)
|
|
52
|
-
- [π Learn more](#-learn-more)
|
|
53
|
-
|
|
54
|
-
# π Introducing Apify MCP Server
|
|
55
|
-
|
|
56
|
-
The Apify MCP Server allows an AI assistant to use any [Apify Actor](https://apify.com/store) as a tool to perform a specific task.
|
|
57
|
-
For example, it can:
|
|
58
|
-
- Use [Facebook Posts Scraper](https://apify.com/apify/facebook-posts-scraper) to extract data from Facebook posts from multiple pages/profiles.
|
|
59
|
-
- Use [Google Maps Email Extractor](https://apify.com/lukaskrivka/google-maps-with-contact-details) to extract contact details from Google Maps.
|
|
60
|
-
- Use [Google Search Results Scraper](https://apify.com/apify/google-search-scraper) to scrape Google Search Engine Results Pages (SERPs).
|
|
61
|
-
- Use [Instagram Scraper](https://apify.com/apify/instagram-scraper) to scrape Instagram posts, profiles, places, photos, and comments.
|
|
62
|
-
- Use [RAG Web Browser](https://apify.com/apify/rag-web-browser) to search the web, scrape the top N URLs, and return their content.
|
|
63
|
-
- Use [Web Fetch](https://apify.com/apify/web-fetch) to fetch any URL and return its content as Markdown, plain text, HTML, or links β with JavaScript rendering and anti-bot protection.
|
|
64
|
-
|
|
65
|
-
**Video tutorial: Integrate 8,000+ Apify Actors and Agents with Claude**
|
|
66
|
-
|
|
67
|
-
[](https://www.youtube.com/watch?v=BKu8H91uCTg)
|
|
68
|
-
|
|
69
|
-
# π Quickstart
|
|
70
|
-
|
|
71
|
-
You can use the Apify MCP Server in two ways:
|
|
72
|
-
|
|
73
|
-
**HTTPS Endpoint (mcp.apify.com)**: Connect from your MCP client via OAuth or by including the `Authorization: Bearer <APIFY_TOKEN>` header in your requests. This is the recommended method for most use cases. Because it supports OAuth, you can connect from clients like [Claude.ai](https://claude.ai) or [Visual Studio Code](https://code.visualstudio.com/) using just the URL: `https://mcp.apify.com`.
|
|
74
|
-
- `https://mcp.apify.com` streamable transport
|
|
75
|
-
|
|
76
|
-
**Standard Input/Output (stdio)**: Ideal for local integrations and command-line tools like the Claude for Desktop client.
|
|
77
|
-
- Set the MCP client server command to `npx @apify/actors-mcp-server` and the `APIFY_TOKEN` environment variable to your Apify API token.
|
|
78
|
-
- See `npx @apify/actors-mcp-server --help` for more options.
|
|
79
|
-
|
|
80
|
-
You can find detailed instructions for setting up the MCP server in the [Apify documentation](https://docs.apify.com/platform/integrations/mcp).
|
|
81
|
-
|
|
82
|
-
# π€ MCP clients
|
|
83
|
-
|
|
84
|
-
Apify MCP Server is compatible with any MCP client that adheres to the [Model Context Protocol](https://modelcontextprotocol.org/), but the level of support for dynamic tool discovery and other features may vary between clients.
|
|
85
|
-
<!--Therefore, the server uses [mcp-client-capabilities](https://github.com/apify/mcp-client-capabilities) to detect client capabilities and adjust its behavior accordingly.-->
|
|
22
|
+
Connect your agent to the largest marketplace of tools for AI.
|
|
86
23
|
|
|
87
|
-
|
|
24
|
+
**The official Apify Model Context Protocol (MCP) server gives AI agents web scraping, data extraction, and browser automation through thousands of ready-made Actors from [Apify Store](https://apify.com/store), at [`https://mcp.apify.com`](https://mcp.apify.com).**
|
|
88
25
|
|
|
89
|
-
|
|
26
|
+
Apify is the marketplace of ready-to-run tools for AI agents. One connection to the Apify MCP server gives your agent thousands of tools to choose from, for jobs like web fetch, SERP monitoring, lead generation and enrichment, and pulling data from e-commerce sites and social media. The server loads only what each task needs.
|
|
90
27
|
|
|
91
|
-
|
|
28
|
+
Your agent searches Apify Store, checks an Actor's input and pricing, runs it, and reads the structured results, so you don't install a separate MCP server for every site. Connect to the hosted server with OAuth, or run it locally over stdio with the [`@apify/actors-mcp-server`](https://www.npmjs.com/package/@apify/actors-mcp-server) npm package.
|
|
92
29
|
|
|
93
|
-
|
|
30
|
+
<img alt="Diagram: AI agents such as Claude, ChatGPT, Cursor, Grok Bot, Hermes Agent, and OpenCode connect to the Apify MCP server, which searches Apify Store, runs Actors like Web Search, Web Fetch, and Google Maps Scraper, and returns structured results" src="docs/apify-mcp-server-diagram.png">
|
|
94
31
|
|
|
95
|
-
|
|
96
|
-
- Claude.ai (web)
|
|
97
|
-
- [ChatGPT](https://docs.apify.com/platform/integrations/chatgpt)
|
|
98
|
-
- VS Code (Genie)
|
|
99
|
-
- Cursor
|
|
100
|
-
- OpenCode
|
|
101
|
-
- [Kiro](https://kiro.dev)
|
|
102
|
-
- [Apify Tester MCP Client](https://apify.com/jiri.spilka/tester-mcp-client) β designed for testing Apify MCP servers
|
|
32
|
+
<!-- TODO: add the new setup video here once it is published. The old 2025 Claude tutorial (BKu8H91uCTg) was removed as outdated. -->
|
|
103
33
|
|
|
34
|
+
## Contents
|
|
104
35
|
|
|
105
|
-
|
|
36
|
+
- [Quickstart](#-quickstart)
|
|
37
|
+
- [Set up your client](#-set-up-your-client)
|
|
38
|
+
- [Remote (hosted) or local MCP server](#remote-hosted-or-local-mcp-server)
|
|
39
|
+
- [How an agent uses Apify Actors](#how-an-agent-uses-apify-actors)
|
|
40
|
+
- [Tools, resources, and prompts](#%EF%B8%8F-tools-resources-and-prompts)
|
|
41
|
+
- [Choose which tools load](#choose-which-tools-load)
|
|
42
|
+
- [UI mode configuration](#ui-mode-configuration)
|
|
43
|
+
- [Example prompts](#-example-prompts)
|
|
44
|
+
- [Pricing and limits](#-pricing-and-limits)
|
|
45
|
+
- [Telemetry](#-telemetry)
|
|
46
|
+
- [Troubleshooting and limitations](#-troubleshooting-and-limitations)
|
|
47
|
+
- [FAQ](#-faq)
|
|
48
|
+
- [Development](#-development)
|
|
49
|
+
- [Contributing](#-contributing)
|
|
50
|
+
- [Privacy and license](#-privacy-and-license)
|
|
51
|
+
- [Learn more](#-learn-more)
|
|
106
52
|
|
|
107
|
-
|
|
53
|
+
## π Quickstart
|
|
108
54
|
|
|
109
|
-
|
|
55
|
+
1. Open the [MCP configurator](https://mcp.apify.com), pick your client, and choose the tools you want.
|
|
56
|
+
2. Copy the generated configuration, deeplink, or command into your client.
|
|
57
|
+
3. Sign in to Apify in the browser window that opens. If you don't have an account, you can create a free one there.
|
|
110
58
|
|
|
111
|
-
|
|
112
|
-
Sign in with your Apify account and start experimenting with web scraping, data extraction, and automation tools!
|
|
59
|
+
The hosted endpoint is `https://mcp.apify.com`. If your client can't use OAuth, send your [Apify API token](https://docs.apify.com/integrations/api#api-token) in an `Authorization: Bearer <APIFY_TOKEN>` header instead. Treat the token like a password and keep it out of repositories.
|
|
113
60
|
|
|
114
|
-
|
|
61
|
+
Using a coding agent such as Claude Code, Codex, Cursor, or GitHub Copilot? An [official Apify plugin](https://docs.apify.com/agents/plugins) installs this MCP server together with [Apify agent skills](https://docs.apify.com/agents/skills) in one step.
|
|
115
62
|
|
|
63
|
+
## π€ Set up your client
|
|
116
64
|
|
|
117
|
-
|
|
65
|
+
The [configurator](https://mcp.apify.com) generates the exact setup for each supported client, including Claude Code, ChatGPT, Cursor, VS Code, GitHub Copilot CLI, Claude, Claude Desktop, Codex, OpenCode, Kiro, and more. The snippets below cover the most common cases.
|
|
118
66
|
|
|
119
|
-
|
|
67
|
+

|
|
120
68
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
- **Skyfire** pays with PAY tokens and requires a Skyfire account with a funded wallet. It does not require a special MCP client; the entire payment flow is handled directly through the MCP tool call parameters.
|
|
69
|
+
<details>
|
|
70
|
+
<summary><b>Claude Code</b></summary>
|
|
124
71
|
|
|
125
|
-
|
|
72
|
+
```bash
|
|
73
|
+
claude mcp add apify "https://mcp.apify.com" -t http
|
|
74
|
+
```
|
|
126
75
|
|
|
127
|
-
|
|
76
|
+
Claude Code opens the Apify sign-in page the first time it uses the server. To install the [Apify plugin](https://docs.apify.com/agents/plugins) with Apify agent skills instead, run `/plugin marketplace add apify/apify-claude-code-plugin`, then `/plugin install apify@apify` and `/reload-plugins`.
|
|
128
77
|
|
|
129
|
-
|
|
78
|
+
</details>
|
|
130
79
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
- **Direct x402**: `mcpc` automatically signs a $1.00 USDC transaction.
|
|
134
|
-
- **Skyfire**: The agent creates a PAY token (minimum $5.00) using Skyfire's `create-pay-token` tool.
|
|
135
|
-
3. **Execution**: The agent calls the Actor tool.
|
|
136
|
-
- **Direct x402**: Handled automatically by `mcpc` using the prepaid balance.
|
|
137
|
-
- **Skyfire**: The agent explicitly passes the PAY token in the `skyfire-pay-id` input property.
|
|
138
|
-
4. **Resolution**: The tool returns the Actor results. Unused funds stay available for later runs.
|
|
139
|
-
- **Direct x402**: After 60 minutes of inactivity, the server refunds any unused balance to the wallet on [Base](https://base.org).
|
|
140
|
-
- **Skyfire**: Skyfire returns unused funds when the token expires.
|
|
80
|
+
<details>
|
|
81
|
+
<summary><b>ChatGPT</b></summary>
|
|
141
82
|
|
|
142
|
-
|
|
83
|
+
1. Open [ChatGPT Plugins](https://chatgpt.com/plugins), select **+**, then **Add custom MCP server**.
|
|
84
|
+
2. Name it `Apify`, enter `https://mcp.apify.com` as the server URL, and choose **OAuth** authentication.
|
|
85
|
+
3. Review the risk warning, select **I understand and want to continue**, then **Create as a plugin**.
|
|
86
|
+
4. Sign in with Apify, review the tools, and install the plugin. No API token is needed.
|
|
87
|
+
5. Start a new conversation, type `@`, and select **Apify**.
|
|
143
88
|
|
|
144
|
-
|
|
89
|
+
In Business, Enterprise, and Edu workspaces, an admin or owner may need to create or publish the plugin. If the option is missing, ask your workspace admin. When the server's tools change, open the plugin and select **Refresh**.
|
|
145
90
|
|
|
146
|
-
|
|
91
|
+
The ChatGPT desktop app uses local MCP configuration shared with Codex instead: go to **Settings** > **MCP servers** > **Add server**, choose Streamable HTTP, and enter `https://mcp.apify.com`. See OpenAI's [custom MCP server guide](https://help.openai.com/en/articles/12584461-connecting-custom-mcp-servers-in-chatgpt).
|
|
147
92
|
|
|
148
|
-
|
|
93
|
+
</details>
|
|
149
94
|
|
|
150
|
-
|
|
95
|
+
<details>
|
|
96
|
+
<summary><b>Cursor</b></summary>
|
|
151
97
|
|
|
152
|
-
|
|
98
|
+
Use the one-click install link from the [configurator](https://mcp.apify.com), or let the [Apify CLI](https://docs.apify.com/cli) write the configuration, including your API token:
|
|
153
99
|
|
|
154
|
-
|
|
100
|
+
```bash
|
|
101
|
+
apify mcp install cursor
|
|
102
|
+
```
|
|
155
103
|
|
|
156
|
-
|
|
104
|
+
The same command works for `claude-code`, `vscode`, `codex`, `kiro`, and `antigravity`.
|
|
157
105
|
|
|
158
|
-
|
|
106
|
+
</details>
|
|
159
107
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
mcpc x402 init
|
|
108
|
+
<details>
|
|
109
|
+
<summary><b>VS Code and GitHub Copilot</b></summary>
|
|
163
110
|
|
|
164
|
-
|
|
165
|
-
mcpc x402 import <private-key>
|
|
111
|
+
Use the one-click install link from the [configurator](https://mcp.apify.com), run `apify mcp install vscode`, or add `https://mcp.apify.com` as an HTTP server in your MCP configuration:
|
|
166
112
|
|
|
167
|
-
|
|
168
|
-
|
|
113
|
+
```json
|
|
114
|
+
{
|
|
115
|
+
"servers": {
|
|
116
|
+
"apify": {
|
|
117
|
+
"type": "http",
|
|
118
|
+
"url": "https://mcp.apify.com"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
169
122
|
```
|
|
170
123
|
|
|
171
|
-
|
|
124
|
+
</details>
|
|
172
125
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
```
|
|
126
|
+
<details>
|
|
127
|
+
<summary><b>Claude</b></summary>
|
|
176
128
|
|
|
177
|
-
You can
|
|
129
|
+
Apify is available as a Claude connector. Open **Settings** > **Connectors**, find **Apify** in the connector directory, and connect it. You can also select **Add custom connector**, name it `Apify`, and enter `https://mcp.apify.com` as the remote MCP server URL. Sign in with Apify when prompted. The same connector works on Claude.ai and in Claude Desktop. See the [Claude guide](https://docs.apify.com/integrations/claude-desktop).
|
|
178
130
|
|
|
179
|
-
|
|
180
|
-
mcpc @apify tools-call call-actor actor:="apify/rag-web-browser" input:='{"query": "latest AI news"}'
|
|
181
|
-
```
|
|
131
|
+
</details>
|
|
182
132
|
|
|
183
|
-
|
|
133
|
+
<details>
|
|
134
|
+
<summary><b>Any other MCP client (JSON config)</b></summary>
|
|
184
135
|
|
|
185
|
-
|
|
136
|
+
Most clients that support remote servers and OAuth accept a configuration like this:
|
|
186
137
|
|
|
187
|
-
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"mcpServers": {
|
|
141
|
+
"apify": {
|
|
142
|
+
"url": "https://mcp.apify.com"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
```
|
|
188
147
|
|
|
189
|
-
|
|
190
|
-
- An MCP client that supports multiple servers, such as Claude Desktop, OpenCode, or VS Code.
|
|
148
|
+
</details>
|
|
191
149
|
|
|
192
|
-
|
|
150
|
+
<details>
|
|
151
|
+
<summary><b>Local stdio (npx)</b></summary>
|
|
193
152
|
|
|
194
|
-
|
|
153
|
+
Requires Node.js 22 or later.
|
|
195
154
|
|
|
196
155
|
```json
|
|
197
156
|
{
|
|
198
157
|
"mcpServers": {
|
|
199
|
-
"
|
|
200
|
-
"
|
|
201
|
-
"
|
|
202
|
-
|
|
158
|
+
"actors-mcp-server": {
|
|
159
|
+
"command": "npx",
|
|
160
|
+
"args": ["-y", "@apify/actors-mcp-server"],
|
|
161
|
+
"env": {
|
|
162
|
+
"APIFY_TOKEN": "YOUR_APIFY_TOKEN"
|
|
203
163
|
}
|
|
204
|
-
},
|
|
205
|
-
"apify": {
|
|
206
|
-
"url": "https://mcp.apify.com?payment=skyfire"
|
|
207
164
|
}
|
|
208
165
|
}
|
|
209
166
|
}
|
|
210
167
|
```
|
|
211
168
|
|
|
212
|
-
|
|
169
|
+
If you've run `apify login`, the server can also read the token saved by the Apify CLI. Run `npx @apify/actors-mcp-server --help` for all options.
|
|
213
170
|
|
|
214
|
-
|
|
171
|
+
</details>
|
|
215
172
|
|
|
216
|
-
The MCP server
|
|
217
|
-
Since Apify Store is large and growing rapidly, the MCP server provides a way to dynamically discover and use new Actors.
|
|
173
|
+
The server is also listed in the [Docker MCP catalog](https://hub.docker.com/mcp/server/apify-mcp-server/overview), and each [release](https://github.com/apify/apify-mcp-server/releases/latest) ships an MCP bundle file ([`apify-mcp-server.mcpb`](https://github.com/apify/apify-mcp-server/releases/latest/download/apify-mcp-server.mcpb)) for one-click installation in clients that support it.
|
|
218
174
|
|
|
219
|
-
|
|
175
|
+
## Remote (hosted) or local MCP server
|
|
220
176
|
|
|
221
|
-
|
|
222
|
-
By default, the server is pre-configured with two Actors, `apify/rag-web-browser` and `apify/web-fetch`, and several helper tools.
|
|
223
|
-
The MCP server loads an Actor's input schema and creates a corresponding MCP tool.
|
|
224
|
-
This allows the AI agent to know exactly what arguments to pass to the Actor and what to expect in return.
|
|
177
|
+
The hosted remote MCP server with OAuth is the recommended option. Use the local server when you want to run the MCP process on your own machine; Actors still run and store their results on the Apify platform in both modes. If your client supports only stdio, you can also bridge it to the hosted server with [`mcp-remote`](https://www.npmjs.com/package/mcp-remote): `npx mcp-remote https://mcp.apify.com`.
|
|
225
178
|
|
|
179
|
+
| | Hosted (`https://mcp.apify.com`) | Local (`npx @apify/actors-mcp-server`) |
|
|
180
|
+
| :--- | :--- | :--- |
|
|
181
|
+
| Transport | Streamable HTTP | stdio |
|
|
182
|
+
| Authentication | OAuth or Bearer token | `APIFY_TOKEN` environment variable or Apify CLI login |
|
|
183
|
+
| Output schemas inferred for Actor results | Yes | No |
|
|
184
|
+
| Tool selection | `tools` URL parameter | `--tools` flag or `TOOLS` environment variable |
|
|
185
|
+
| Updates | Always the latest server | The npm version you install |
|
|
226
186
|
|
|
227
|
-
|
|
187
|
+
## How an agent uses Apify Actors
|
|
228
188
|
|
|
229
|
-
|
|
230
|
-
{
|
|
231
|
-
"query": "restaurants in San Francisco",
|
|
232
|
-
"maxResults": 3
|
|
233
|
-
}
|
|
234
|
-
```
|
|
235
|
-
You don't need to manually specify which Actor to call or its input parameters; the LLM handles this automatically.
|
|
236
|
-
When a tool is called, the arguments are automatically passed to the Actor by the LLM.
|
|
237
|
-
You can refer to the specific Actor's documentation for a list of available arguments.
|
|
189
|
+
[Actors](https://docs.apify.com/actors) are serverless programs on the Apify platform. Each one does a specific job, like scraping Google Maps, crawling a website for RAG, or collecting social media posts. The MCP server turns Actors into tools an agent can find and call without you configuring each one in advance.
|
|
238
190
|
|
|
239
|
-
|
|
191
|
+
A typical task follows four steps:
|
|
192
|
+
|
|
193
|
+
1. `search-actors` finds candidate Actors in Apify Store for the task.
|
|
194
|
+
2. `fetch-actor-details` returns the Actor's input schema, README, and pricing, plus its output schema on request.
|
|
195
|
+
3. `call-actor` starts the run and waits for it to finish, 30 seconds by default and up to 45. It returns the **run status and storage IDs**; the scraped items stay in the run's dataset.
|
|
196
|
+
4. `get-dataset-items` reads the results from the run's dataset, with `limit` and `offset` for pagination.
|
|
240
197
|
|
|
241
|
-
|
|
242
|
-
It allows an AI agent to find new tools (Actors) as needed and incorporate them.
|
|
243
|
-
Here are some special MCP operations and how the Apify MCP Server supports them:
|
|
198
|
+
The server adds `get-dataset-items`, `get-key-value-store-record`, `get-actor-run`, and `abort-actor-run` whenever `call-actor` or an Actor tool is loaded, so the agent can always read results and check on long runs that outlast the wait.
|
|
244
199
|
|
|
245
|
-
|
|
246
|
-
- **Apify documentation**: Search the Apify documentation and fetch specific documents to provide context to the AI.
|
|
247
|
-
- **Actor runs**: Get lists of your Actor runs, inspect their details, and retrieve logs.
|
|
248
|
-
- **Apify storage**: Access data from your datasets and key-value stores.
|
|
249
|
-
- **Actor tasks**: Create, inspect, and update your saved Actor tasks, and publish or unpublish their public landing pages.
|
|
250
|
-
- **Schedules**: Create, inspect, update, and delete schedules that run your Actors and tasks automatically.
|
|
251
|
-
- **Builds**: Build an Actor version, list builds, check the status of a build, and retrieve its build log.
|
|
252
|
-
- **Actor versions**: Read an Actor version's files with a hash for each file and a revision for the whole set, create an Actor from files, change a version's files with checks that catch changes made since your last read, add a version from files or as a copy of another version, and delete a version.
|
|
253
|
-
- **Apify API**: Search the Apify API reference, inspect an operation, and send requests to the API to read or change data.
|
|
200
|
+
You can also expose a specific Actor as its own tool, for example `apify/web-search` or `apify/instagram-scraper`. The server builds the tool's parameters from the Actor's input schema, so the agent knows exactly what to pass.
|
|
254
201
|
|
|
255
|
-
|
|
202
|
+
**Actors that run their own MCP server.** Some Actors are MCP servers themselves. `fetch-actor-mcp-tool-list` lists their tools, and `call-actor-mcp-tool` calls one. When such an Actor is loaded as a tool source, its tools are exposed under names in the form `username--actor-name--tool-name`. Apify Store also lists MCP-related Actors from independent creators; those are separate products with their own READMEs and pricing.
|
|
256
203
|
|
|
257
|
-
|
|
204
|
+
## π οΈ Tools, resources, and prompts
|
|
205
|
+
|
|
206
|
+
Any [Actor](https://apify.com/store) can be a tool, and agents discover new ones as they work. By default, the server loads the `actors` and `docs` categories, two Actor tools ([RAG Web Browser](https://apify.com/apify/rag-web-browser) and [Web Fetch](https://apify.com/apify/web-fetch)), and `report-problem`. Everything else is opt-in by category or by tool name.
|
|
207
|
+
|
|
208
|
+
### Helper tools
|
|
209
|
+
|
|
210
|
+
Besides Actor tools, the server provides helper tools for the Apify platform:
|
|
211
|
+
|
|
212
|
+
- **Actors:** search Apify Store, list the Actors in your account, view their details, call tools on Actors that run MCP servers, send requests to Server Actors, and delete your own Actors.
|
|
213
|
+
- **Documentation:** search the Apify and Crawlee docs and fetch pages as context.
|
|
214
|
+
- **Runs and storage:** list runs, inspect them, read their logs, and read datasets and key-value stores.
|
|
215
|
+
- **Tasks and schedules:** manage saved Actor tasks and their public landing pages, and schedules that run Actors and tasks automatically.
|
|
216
|
+
- **Builds and versions:** build Actors, read build logs, and create, read, change, copy, and delete versions from files.
|
|
217
|
+
- **Apify API:** search the API reference, inspect an operation, and send requests to read or change data.
|
|
218
|
+
|
|
219
|
+
### Available tools
|
|
258
220
|
|
|
259
221
|
Legend for the **Enabled by default** column:
|
|
260
|
-
|
|
261
|
-
-
|
|
262
|
-
-
|
|
222
|
+
|
|
223
|
+
- β
In the default tool set.
|
|
224
|
+
- β‘ Added automatically when `call-actor`, an Actor tool, or `get-actor-run` is loaded, which is true in the default configuration.
|
|
225
|
+
- β
ΒΉ Served by default only when telemetry is on and the client name doesn't contain `claude`, `anthropic`, or `local-agent-mode`. Select it explicitly with `tools=report-problem` or `tools=dev` to serve it to any client; telemetry still has to be on.
|
|
263
226
|
|
|
264
227
|
| Tool name | Category | Description | Enabled by default |
|
|
265
228
|
| :--- | :--- | :--- | :---: |
|
|
266
229
|
| `search-actors` | actors | Search for Actors in Apify Store. | β
|
|
|
267
|
-
| `fetch-actor-details` | actors |
|
|
268
|
-
| `call-actor` | actors |
|
|
269
|
-
| `
|
|
270
|
-
| `fetch-actor-mcp-tool-list` | actors | List an Actor's MCP tools with their schemas, annotations, and metadata. | β
|
|
|
230
|
+
| `fetch-actor-details` | actors | Get an Actor's input schema, README (summary when available, full otherwise), pricing, and a Server Actor's HTTP operations. The output schema is opt-in. | β
|
|
|
231
|
+
| `call-actor` | actors | Run an Actor and return its run status and storage IDs. Use `fetch-actor-details` first to get the input schema. | β
|
|
|
232
|
+
| `fetch-actor-mcp-tool-list` | actors | List the tools of an Actor that runs an MCP server, with their schemas, annotations, and metadata. | β
|
|
|
271
233
|
| `call-actor-mcp-tool` | actors | Call one tool on an Actor's MCP server and return its result. | β
|
|
|
272
|
-
| `get-actor-run` | runs | Get
|
|
273
|
-
| `get-dataset-items` | storage |
|
|
274
|
-
| `get-key-value-store-record
|
|
234
|
+
| `get-actor-run` | runs | Get details about an Actor run. | β‘ |
|
|
235
|
+
| `get-dataset-items` | storage | Read items from a dataset, with filtering and pagination. | β‘ |
|
|
236
|
+
| `get-key-value-store-record` | storage | Get the value stored under a key in a key-value store. | β‘ |
|
|
275
237
|
| `abort-actor-run` | runs | Abort a running Actor run, optionally gracefully. | β‘ |
|
|
276
|
-
| `
|
|
277
|
-
| `
|
|
278
|
-
| `
|
|
279
|
-
| [`apify--
|
|
280
|
-
| [`apify--web-fetch`](https://apify.com/apify/web-fetch) | Actor (see [tool configuration](#tools-configuration)) | An Actor tool to fetch a URL and return its content. | β
|
|
|
238
|
+
| `search-apify-docs` | docs | Search the Apify and Crawlee documentation for relevant pages. | β
|
|
|
239
|
+
| `fetch-apify-docs` | docs | Fetch the full content of a documentation page by its URL. | β
|
|
|
240
|
+
| [`apify--rag-web-browser`](https://apify.com/apify/rag-web-browser) | Actor (see [Choose which tools load](#choose-which-tools-load)) | Search the web and return the content of the top results. | β
|
|
|
241
|
+
| [`apify--web-fetch`](https://apify.com/apify/web-fetch) | Actor (see [Choose which tools load](#choose-which-tools-load)) | Fetch a URL and return its content as Markdown, text, HTML, or other formats. | β
|
|
|
281
242
|
| `report-problem` | dev | Report a problem with an Apify tool or Actor to the Apify team. | β
ΒΉ |
|
|
282
|
-
| `get-actor-list` | none (select by name: `tools=get-actor-list`) | List the Actors you own and those shared with you, including private ones. |
|
|
283
|
-
| `
|
|
284
|
-
| `
|
|
285
|
-
| `get-
|
|
286
|
-
| `get-
|
|
287
|
-
| `get-
|
|
288
|
-
| `get-
|
|
289
|
-
| `get-dataset-list` | storage | List
|
|
290
|
-
| `get-key-value-store
|
|
291
|
-
| `
|
|
292
|
-
| `get-
|
|
293
|
-
| `
|
|
294
|
-
| `
|
|
295
|
-
| `
|
|
296
|
-
| `
|
|
297
|
-
| `
|
|
298
|
-
| `
|
|
299
|
-
| `
|
|
300
|
-
| `
|
|
301
|
-
| `
|
|
302
|
-
| `
|
|
303
|
-
| `
|
|
304
|
-
| `get-actor-
|
|
305
|
-
| `
|
|
306
|
-
| `
|
|
307
|
-
| `create-actor
|
|
308
|
-
| `
|
|
309
|
-
| `
|
|
310
|
-
| `
|
|
311
|
-
| `apify-api-
|
|
312
|
-
| `apify-api-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
>
|
|
318
|
-
> When you call an Actor β through `call-actor` or directly via an Actor tool (e.g., `apify--rag-web-browser`) β the response contains run metadata, storage IDs, and a `summary` + `nextStep`, but no dataset items. To fetch items, follow `nextStep` and call `get-dataset-items` (auto-injected), passing the `datasetId` returned from the call.
|
|
243
|
+
| `get-actor-list` | none (select by name: `tools=get-actor-list`) | List the Actors you own and those shared with you, including private ones. | |
|
|
244
|
+
| `send-server-actor-request` | none (select by name: `tools=send-server-actor-request`) | Send one HTTP request to a Server Actor's API, as documented by its API schema, and return the response. | |
|
|
245
|
+
| `delete-actor` | none (select by name: `tools=delete-actor`) | Delete an Actor from your account permanently. Public Actors must be unpublished first. | |
|
|
246
|
+
| `get-actor-run-list` | runs | List Actor runs, filtered by Actor and status. | |
|
|
247
|
+
| `get-actor-run-log` | runs | Read the log of an Actor run. | |
|
|
248
|
+
| `get-dataset` | storage | Get metadata about a dataset. | |
|
|
249
|
+
| `get-dataset-schema` | storage | Generate a JSON schema from dataset items. | |
|
|
250
|
+
| `get-dataset-list` | storage | List the datasets in your account. | |
|
|
251
|
+
| `get-key-value-store` | storage | Get metadata about a key-value store. | |
|
|
252
|
+
| `get-key-value-store-keys` | storage | List the keys in a key-value store. | |
|
|
253
|
+
| `get-key-value-store-list` | storage | List the key-value stores in your account. | |
|
|
254
|
+
| `create-actor-task` | tasks | Create a saved Actor task (a named, reusable Actor configuration). | |
|
|
255
|
+
| `get-actor-task` | tasks | Get a saved Actor task, its publication state, and its public display configuration. | |
|
|
256
|
+
| `update-actor-task` | tasks | Update a task's input, run options, or public display configuration. | |
|
|
257
|
+
| `publish-actor-task` | tasks | Publish a task on its public landing page. | |
|
|
258
|
+
| `unpublish-actor-task` | tasks | Unpublish a task from its public landing page. | |
|
|
259
|
+
| `create-schedule` | schedules | Create a schedule that runs Actors or tasks on a cron expression. | |
|
|
260
|
+
| `get-schedule` | schedules | Get a schedule, its cron expression, state, and the actions it runs. | |
|
|
261
|
+
| `update-schedule` | schedules | Update a schedule's cron expression, time zone, enabled state, or actions. | |
|
|
262
|
+
| `delete-schedule` | schedules | Delete a schedule. | |
|
|
263
|
+
| `build-actor` | builds | Build an Actor version and wait a bounded time for the build to finish. | |
|
|
264
|
+
| `get-actor-build` | builds | Get the status of an Actor build. | |
|
|
265
|
+
| `get-actor-build-list` | builds | List the account's builds, or one Actor's, in every status, newest first. | |
|
|
266
|
+
| `get-actor-build-log` | builds | Read the log of an Actor build. | |
|
|
267
|
+
| `get-actor-version` | versions | Get an Actor version's file listing with hashes, plus the content of the files you ask for. | |
|
|
268
|
+
| `create-actor` | versions | Create a private Actor in your account from files, optionally starting a build. | |
|
|
269
|
+
| `update-actor-version` | versions | Write, edit, or delete files of an Actor version in one all-or-nothing write. | |
|
|
270
|
+
| `create-actor-version` | versions | Add a version to an Actor, from files or as a copy of another version, optionally starting a build. | |
|
|
271
|
+
| `delete-actor-version` | versions | Delete an Actor version. Its builds and their tags stay. | |
|
|
272
|
+
| `apify-api-search` | api | Search the Apify API reference by keywords. Returns each operation's method, path, and docs page. | |
|
|
273
|
+
| `apify-api-details` | api | Get the parameters and request body schema of the Apify API operations on a path. | |
|
|
274
|
+
| `apify-api-read` | api | Send a GET request to an Apify API path, like `apify api` in the Apify CLI. It refuses GETs to the synchronous run endpoints, which start a paid run. | |
|
|
275
|
+
| `apify-api-write` | api | Send a POST, PUT, PATCH, or DELETE request with a JSON body to any Apify API path, like `apify api` in the Apify CLI. | |
|
|
276
|
+
|
|
277
|
+
The `tasks` category manages saved [Actor tasks](https://docs.apify.com/actors/running/tasks). It is unrelated to the MCP Tasks protocol. The [tool reference](https://docs.apify.com/mcp#available-tools) has full descriptions of each tool.
|
|
319
278
|
|
|
320
279
|
### Tool annotations
|
|
321
280
|
|
|
322
|
-
|
|
281
|
+
Every tool carries a `title`, a `readOnlyHint`, and an `openWorldHint`. `readOnlyHint` is `true` for tools that only read data. Actor tools get it only for Apify-maintained Actors with limited permissions and no inputs that accept secrets, writable storage, an MCP connector, or code; other Actor tools are marked destructive. `openWorldHint` is `true` for tools that reach outside the Apify platform, such as `call-actor`, and `false` for platform-only tools.
|
|
323
282
|
|
|
324
|
-
|
|
325
|
-
- **`readOnlyHint`**: `true` for tools that only read data without modifying state (e.g., `get-dataset`, `fetch-actor-details`). Actor tools get it only for Apify-maintained Actors with limited permissions and no accepted secret, writable storage, MCP connector, or code input (e.g., `apify--web-fetch`). Direct tools can restrict the original Actor inputs: `apify--website-content-crawler` excludes and rejects `pageFunction` and `initialCookies`, so it is read-only. Other Actor tools are marked destructive.
|
|
326
|
-
- **`openWorldHint`**: `true` for tools that access external resources outside the Apify platform (e.g., `call-actor` executes external Actors). Tools that interact only with the Apify platform (like `search-actors` or `fetch-apify-docs`) do not have this hint.
|
|
283
|
+
### Prompts and resources
|
|
327
284
|
|
|
328
|
-
|
|
285
|
+
No prompts are registered yet, so `prompts/list` returns an empty list. `resources/read` accepts any Apify API GET URL (`https://api.apify.com/v2/...`) and returns the response body using the session's Apify token, inlined up to 256 KB. Your data isn't enumerated in `resources/list`; `resources/templates/list` lists the common shapes with their paging parameters.
|
|
329
286
|
|
|
330
|
-
|
|
287
|
+
## Choose which tools load
|
|
331
288
|
|
|
332
|
-
The `tools`
|
|
289
|
+
The `tools` parameter takes categories, tool names, and Actor names, separated by commas. When you set it, the defaults are dropped and only what you list is loaded, plus the β‘ run and storage tools whenever the list includes `call-actor` or an Actor. The easiest way to build a selection is the [configurator](https://mcp.apify.com).
|
|
333
290
|
|
|
334
|
-
|
|
291
|
+
Hosted server:
|
|
335
292
|
|
|
336
|
-
|
|
337
|
-
-
|
|
338
|
-
- `apify/rag-web-browser`
|
|
339
|
-
- `apify/web-fetch`
|
|
340
|
-
|
|
341
|
-
If the tools parameter is specified, only the listed tools or categories will be enabled β no default tools will be included.
|
|
342
|
-
|
|
343
|
-
`report-problem` is served by default (subject to the gating in the footnote above) but lives in the `dev` category, so an explicit `tools=dev` selects it too. To disable it, pass an explicit `tools=` list that omits it (e.g. `tools=actors,docs`).
|
|
344
|
-
|
|
345
|
-
> **Easy configuration:**
|
|
346
|
-
>
|
|
347
|
-
> Use the [UI configurator](https://mcp.apify.com/) to configure your server, then copy the configuration to your client.
|
|
348
|
-
|
|
349
|
-
**Configuring the hosted server:**
|
|
350
|
-
|
|
351
|
-
The hosted server can be configured using query parameters in the URL. For example, to load the default tools, use:
|
|
352
|
-
|
|
353
|
-
```
|
|
354
|
-
https://mcp.apify.com?tools=actors,docs,apify/rag-web-browser,apify/web-fetch
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
For minimal configuration, if you want to use only a single Actor tool - without any discovery or generic calling tools, the server can be configured as follows:
|
|
359
|
-
|
|
360
|
-
```
|
|
361
|
-
https://mcp.apify.com?tools=apify/my-actor
|
|
293
|
+
```text
|
|
294
|
+
https://mcp.apify.com?tools=actors,docs,apify/web-search,apify/web-fetch
|
|
362
295
|
```
|
|
363
296
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
**Configuring the CLI:**
|
|
367
|
-
|
|
368
|
-
The CLI can be configured using command-line flags. For example, to load the same tools as in the hosted server configuration, use:
|
|
297
|
+
Local server:
|
|
369
298
|
|
|
370
299
|
```bash
|
|
371
|
-
npx @apify/actors-mcp-server --tools actors,docs,apify/
|
|
300
|
+
npx @apify/actors-mcp-server --tools actors,docs,apify/web-search,apify/web-fetch
|
|
372
301
|
```
|
|
373
302
|
|
|
374
|
-
The
|
|
303
|
+
To give an agent a single Actor, list only that Actor. The agent gets its tool plus the four β‘ tools it needs to read the results:
|
|
375
304
|
|
|
376
|
-
```
|
|
377
|
-
|
|
305
|
+
```text
|
|
306
|
+
https://mcp.apify.com?tools=apify/instagram-scraper
|
|
378
307
|
```
|
|
379
308
|
|
|
380
|
-
|
|
309
|
+
> **Pin your tools in production.** The default tool set can change between versions. Set `tools` explicitly if you need a stable interface.
|
|
381
310
|
|
|
382
|
-
>
|
|
383
|
-
>
|
|
384
|
-
> **The default tools configuration may change in future versions.** When no `tools` parameter is specified, the server currently loads default tools, but this behavior is subject to change.
|
|
385
|
-
>
|
|
386
|
-
> **For production use and stable interfaces, always explicitly specify the `tools` parameter** to ensure your configuration remains consistent across updates.
|
|
311
|
+
<details>
|
|
312
|
+
<summary><b>Backward compatibility with older configurations</b></summary>
|
|
387
313
|
|
|
388
|
-
|
|
314
|
+
- The `actors` URL parameter and `--actors` flag still work. They're merged into `tools`, so `?actors=apify/web-fetch` equals `?tools=apify/web-fetch`.
|
|
315
|
+
- `enableAddingActors`, `enable-adding-actors`, and `enableActorAutoLoading` were removed and are ignored. Dynamic Actor calls come from `call-actor`, which the default `actors` category includes.
|
|
316
|
+
- The selectors `add-actor`, `experimental`, and `preview` are retired and load nothing. Use `call-actor` or the `actors` category.
|
|
317
|
+
- `get-actor-log` was renamed to `get-actor-run-log`, and the `source` category to `versions`. The old names load nothing.
|
|
318
|
+
- `call-actor` no longer calls tools on MCP server Actors: the `actorName:toolName` form is rejected. Use `call-actor-mcp-tool` with `actor`, `tool`, and `arguments`. A selection that names `call-actor` alone needs `call-actor-mcp-tool` added.
|
|
319
|
+
- `fetch-actor-details` no longer lists an MCP server Actor's tools, and `output.mcpTools` is ignored. Use `fetch-actor-mcp-tool-list`, which returns the definitions in `structuredContent.tools`. A selection that names `fetch-actor-details` alone needs `fetch-actor-mcp-tool-list` added.
|
|
389
320
|
|
|
390
|
-
|
|
321
|
+
</details>
|
|
391
322
|
|
|
392
|
-
|
|
323
|
+
## UI mode configuration
|
|
393
324
|
|
|
394
|
-
|
|
325
|
+
The `ui` parameter controls [MCP Apps](https://github.com/modelcontextprotocol/ext-apps) widget tools. With UI mode on, the server adds `search-actors-widget` and `fetch-actor-details-widget` next to their base tools, which keep returning standard responses. By default (`auto`), UI mode turns on when the client supports MCP Apps.
|
|
395
326
|
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
327
|
+
| Value | Behavior |
|
|
328
|
+
| :--- | :--- |
|
|
329
|
+
| `auto` (default) | Widget tools added when the client supports MCP Apps |
|
|
330
|
+
| `true`, `on`, or `apps` | Widget tools always added |
|
|
331
|
+
| `false`, `off`, or `default` | No widget tools |
|
|
399
332
|
|
|
400
|
-
|
|
333
|
+
Hosted server:
|
|
401
334
|
|
|
402
|
-
```
|
|
335
|
+
```text
|
|
403
336
|
https://mcp.apify.com?tools=actors,docs&ui=true
|
|
404
337
|
```
|
|
405
338
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
The CLI can be configured using command-line flags. For example, to enable UI mode:
|
|
339
|
+
Local server, with a CLI flag or the `UI_MODE` environment variable:
|
|
409
340
|
|
|
410
341
|
```bash
|
|
411
342
|
npx @apify/actors-mcp-server --ui true
|
|
343
|
+
UI_MODE=true npx @apify/actors-mcp-server
|
|
412
344
|
```
|
|
413
345
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
```bash
|
|
417
|
-
export UI_MODE=true
|
|
418
|
-
npx @apify/actors-mcp-server
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
### Backward compatibility
|
|
422
|
-
|
|
423
|
-
The v2 configuration preserves backward compatibility with v1 usage. Notes:
|
|
424
|
-
|
|
425
|
-
- `actors` param (URL) and `--actors` flag (CLI) are still supported.
|
|
426
|
-
- Internally they are merged into `tools` selectors.
|
|
427
|
-
- Examples: `?actors=apify/rag-web-browser` β‘ `?tools=apify/rag-web-browser`; `--actors apify/rag-web-browser` β‘ `--tools apify/rag-web-browser`.
|
|
428
|
-
- `enableAddingActors` (URL), `enable-adding-actors` (CLI), and the legacy `enableActorAutoLoading` alias have been removed. To call Actors dynamically, use `tools=call-actor` (included by default via the `actors` category). Any lingering raw value is ignored.
|
|
429
|
-
- Defaults remain compatible: when no `tools` are specified, the server loads `actors`, `docs`, `apify/rag-web-browser`, and `apify/web-fetch`.
|
|
430
|
-
- If any `tools` are specified, the defaults are not added (same as v1 intent for explicit selection).
|
|
431
|
-
- `call-actor` is now included by default via the `actors` category (additive change). To exclude it, specify an explicit `tools` list without `actors`.
|
|
432
|
-
- `tools=add-actor`, `tools=experimental`, and `tools=preview` are retired: they are ignored and load no tools. Use `tools=call-actor` (or the default `actors` category) instead.
|
|
433
|
-
- `tools=get-actor-log` is retired: the tool was renamed to `get-actor-run-log`. The old selector is ignored and loads no tools. Use `tools=get-actor-run-log` (or the `runs` category) instead.
|
|
434
|
-
- `tools=source` is retired: the category was renamed to `versions`. The old selector is ignored and loads no tools. Use `tools=versions` instead.
|
|
435
|
-
- `call-actor` no longer calls an MCP server Actor's tools: the `"actorName:toolName"` form of `actor` is rejected, and the result with `runId: 'mcp-passthrough'` is gone. Call `call-actor-mcp-tool` with `actor`, `tool`, and `arguments`; it returns the remote tool's result. It is in the `actors` category, so a selection naming `call-actor` alone needs `call-actor-mcp-tool` added.
|
|
436
|
-
- `fetch-actor-details` no longer lists an MCP server Actor's tools: `output.mcpTools` and the `mcpTools` field of `structuredContent` are removed, and details never connects to the Actor. Call `fetch-actor-mcp-tool-list` with `actor`; it returns the tool definitions in `structuredContent.tools`. It is in the `actors` category, so a selection naming `fetch-actor-details` alone needs `fetch-actor-mcp-tool-list` added. An `output.mcpTools` sent by an older client is ignored. If it was the only output option, details returns its default sections.
|
|
437
|
-
|
|
438
|
-
Existing URLs and commands using `?actors=...` or `--actors` continue to work unchanged.
|
|
346
|
+
## π¬ Example prompts
|
|
439
347
|
|
|
440
|
-
|
|
348
|
+
Ask in plain language. The agent finds a suitable Actor, checks its input and pricing, runs it, and reads the results. These prompts cover the most common jobs:
|
|
441
349
|
|
|
442
|
-
|
|
350
|
+
| Use case | Example prompt | Example Actor |
|
|
351
|
+
| :--- | :--- | :--- |
|
|
352
|
+
| Web research | "Find what people on X said about autonomous AI agents this week and summarize the key developments." | [Tweet Scraper V2](https://apify.com/apidojo/tweet-scraper) |
|
|
353
|
+
| Search and read the web | "Compare the current pricing plans of Notion, Coda, and Airtable and tell me which is cheapest for a 10-person team." | [Web Search](https://apify.com/apify/web-search), [Web Fetch](https://apify.com/apify/web-fetch) |
|
|
354
|
+
| Search results (SERP) | "Get the top 20 Google results for 'best CRM for startups' in the US and show who ranks where." | [Google Search Results Scraper](https://apify.com/apify/google-search-scraper) |
|
|
355
|
+
| Lead generation | "Find dentists in Austin, Texas on Google Maps with their phone numbers, websites, and ratings." | [Google Maps Scraper](https://apify.com/compass/crawler-google-places) |
|
|
356
|
+
| LinkedIn profiles | "Get the current job title, company, and work history for these 20 LinkedIn profiles." | [LinkedIn Profile Scraper](https://apify.com/harvestapi/linkedin-profile-scraper) |
|
|
357
|
+
| LinkedIn company posts | "Get the 30 latest posts from Apify's LinkedIn company page with their reaction counts." | [LinkedIn Company Posts Scraper](https://apify.com/harvestapi/linkedin-company-posts) |
|
|
358
|
+
| Review analysis | "Pull the latest 100 Google Maps reviews for this hotel and group the complaints by theme." | [Google Maps Reviews Scraper](https://apify.com/compass/Google-Maps-Reviews-Scraper) |
|
|
359
|
+
| Social media monitoring | "Get the 50 latest posts from @nasa on Instagram with likes and comments." | [Instagram Scraper](https://apify.com/apify/instagram-scraper) |
|
|
360
|
+
| Trend research | "Find the most viewed TikTok videos for #skincare this week." | [TikTok Scraper](https://apify.com/clockworks/tiktok-scraper) |
|
|
361
|
+
| E-commerce | "List the 10 best-rated wireless earbuds on Amazon with prices and review counts." | [Amazon Product Scraper](https://apify.com/junglee/amazon-crawler) |
|
|
362
|
+
| Knowledge base and RAG | "Crawl docs.example.com and turn every page into Markdown I can load into my vector database." | [Website Content Crawler](https://apify.com/apify/website-content-crawler) |
|
|
443
363
|
|
|
444
|
-
|
|
364
|
+
Follow-ups work too. "Show me the next 10 results from that run" makes the agent call `get-dataset-items` again with a higher `offset`. With the `schedules` category loaded, "Run that Google Maps search every Monday at 9 am" creates a schedule.
|
|
445
365
|
|
|
446
|
-
|
|
366
|
+
## π° Pricing and limits
|
|
447
367
|
|
|
448
|
-
|
|
368
|
+
- Connecting to the MCP server is free. Actor runs bill to your Apify account according to each Actor's pricing, which `fetch-actor-details` shows before a run. The [Apify free plan](https://apify.com/pricing) includes $5 of monthly platform usage.
|
|
369
|
+
- To cap what a run can cost, pass `maxTotalChargeUsd` (pay-per-event Actors) or `maxItems` (pay-per-result Actors) in the `callOptions` of `call-actor`. `timeout` and `memory` limit the run's duration and memory, not its price.
|
|
370
|
+
- The hosted server accepts up to 20 requests per second per account.
|
|
371
|
+
- `search-actors` returns only free and pay-per-event Actors that pass the platform's agent-safety filters, so rental and pay-per-result Actors don't appear in search. [Full-permission Actors](https://docs.apify.com/actors/running/permissions#full-permission-actors) need your one-time approval; until then, `call-actor` returns an error with an approval link.
|
|
372
|
+
- Some tools work without an Apify account: `search-actors`, `fetch-actor-details`, `search-apify-docs`, `fetch-apify-docs`, `apify-api-search`, and `apify-api-details`. Select only those, for example `https://mcp.apify.com?tools=search-actors`, and the hosted server accepts the connection without a token.
|
|
449
373
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
### Example 1: Search the web using RAG Web Browser
|
|
453
|
-
|
|
454
|
-
**User prompt:**
|
|
455
|
-
> Find the latest news about autonomous AI agents and summarize the key developments.
|
|
456
|
-
|
|
457
|
-
The AI assistant calls the pre-configured `apify--rag-web-browser` Actor tool to search the web and return content from top results.
|
|
458
|
-
The tool returns markdown content from the top 3 search results, which the AI assistant then summarizes for the user.
|
|
459
|
-
|
|
460
|
-
### Example 2: Discover and run an Actor from Apify Store
|
|
461
|
-
|
|
462
|
-
**User prompt:**
|
|
463
|
-
> Scrape the top 10 restaurants in Prague from Google Maps with their contact details.
|
|
464
|
-
|
|
465
|
-
The AI assistant first searches for a suitable Actor, inspects its input schema, and then executes it.
|
|
466
|
-
The tool returns a preview of the scraped data including restaurant names, addresses, ratings, phone numbers, and websites.
|
|
467
|
-
|
|
468
|
-
### Example 3: Retrieve and paginate through Actor run results
|
|
469
|
-
|
|
470
|
-
**User prompt:**
|
|
471
|
-
> Show me the next 10 results from that scraping run.
|
|
472
|
-
|
|
473
|
-
The AI assistant uses the dataset ID from the previous Actor run to fetch additional items.
|
|
474
|
-
Expected output: The tool returns the next page of structured data items from the Actor's output dataset.
|
|
374
|
+
> πͺ **Agentic payments (experimental).** Agents can pay for Actor runs without an Apify account. [AGI](https://agi.apify.com) sells a prepaid, spend-capped Apify API token for an x402, MPP, or Skyfire payment. The agent then uses it as a normal Bearer token against `mcp.apify.com`, with any Actor. See the [agentic payments documentation](https://docs.apify.com/agents/payments) for supported methods and limits, and [agi.apify.com/AGENTS.md](https://agi.apify.com/AGENTS.md) for protocol details.
|
|
475
375
|
|
|
476
376
|
## π‘ Telemetry
|
|
477
377
|
|
|
478
|
-
The Apify MCP
|
|
479
|
-
By default, telemetry is **enabled** for all tool calls.
|
|
480
|
-
With telemetry enabled, Actor searches in the Apify Store send the MCP session id as `_traceId`, and tool-call events carry it as `trace_id`.
|
|
481
|
-
`search-actors` also takes an optional `useCase`: one sentence, written by the model, on why the user is searching. It is sent with the Store search as `_useCase`, and Apify records it in its Store search analytics to improve search results.
|
|
482
|
-
Opting out of telemetry disables all of this.
|
|
483
|
-
|
|
484
|
-
The stdio transport also uses [Sentry](https://sentry.io) for error tracking, which helps us identify and fix issues faster.
|
|
485
|
-
Sentry is automatically disabled when telemetry is opted out.
|
|
486
|
-
|
|
487
|
-
### Opting out of telemetry
|
|
378
|
+
The Apify MCP server collects telemetry about tool calls to help Apify understand usage patterns and improve the service. Telemetry is **on** by default. With telemetry on, Actor searches in Apify Store send the MCP session ID as `_traceId`, and tool-call events carry it as `trace_id`. `search-actors` also sends `_useCase`, a one-sentence reason for the search written by the model, which Apify uses to improve Store search results. The stdio transport also uses [Sentry](https://sentry.io) for error tracking, which helps the Apify team find and fix issues faster.
|
|
488
379
|
|
|
489
|
-
|
|
490
|
-
CLI flags take precedence over environment variables.
|
|
380
|
+
To opt out, including Sentry, set the `telemetry-enabled` URL parameter or the `--telemetry-enabled` CLI flag to `false`, or set `TELEMETRY_ENABLED=false`. CLI flags take precedence over environment variables.
|
|
491
381
|
|
|
492
|
-
#### Examples
|
|
493
|
-
|
|
494
|
-
**For the remote server (mcp.apify.com)**:
|
|
495
382
|
```text
|
|
496
|
-
# Disable via URL parameter
|
|
497
383
|
https://mcp.apify.com?telemetry-enabled=false
|
|
498
384
|
```
|
|
499
385
|
|
|
500
|
-
**For the local stdio server**:
|
|
501
386
|
```bash
|
|
502
|
-
# Disable via CLI flag
|
|
503
387
|
npx @apify/actors-mcp-server --telemetry-enabled=false
|
|
504
|
-
|
|
505
|
-
# Or set environment variable
|
|
506
|
-
export TELEMETRY_ENABLED=false
|
|
507
|
-
npx @apify/actors-mcp-server
|
|
388
|
+
TELEMETRY_ENABLED=false npx @apify/actors-mcp-server
|
|
508
389
|
```
|
|
509
390
|
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
Please see the [CONTRIBUTING.md](./CONTRIBUTING.md) guide for contribution guidelines and commit message conventions.
|
|
391
|
+
## π Troubleshooting and limitations
|
|
513
392
|
|
|
514
|
-
|
|
393
|
+
- **The local server won't start.** Check your Node.js version: the package requires Node.js 22 or later.
|
|
394
|
+
- **Authentication fails.** Reconnect so the client repeats the OAuth flow, or switch to a Bearer token. For the local server, check that `APIFY_TOKEN` is set in the client's server configuration, not only in your shell.
|
|
395
|
+
- **Client features vary.** Any MCP client can connect, but support for dynamic tool lists, OAuth, and MCP Apps differs between clients.
|
|
396
|
+
- **Invalid Actor input.** When `call-actor` fails because of invalid input, the error includes the Actor's input schema so the agent can correct the input and retry.
|
|
515
397
|
|
|
516
|
-
|
|
398
|
+
<details>
|
|
399
|
+
<summary><b>How the server adapts Actor input schemas</b></summary>
|
|
517
400
|
|
|
518
|
-
|
|
401
|
+
The server adapts Actor input schemas so that more clients and models can use them:
|
|
519
402
|
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
```bash
|
|
528
|
-
pnpm run build
|
|
529
|
-
```
|
|
403
|
+
- Descriptions longer than 500 characters are cut at the last complete sentence and marked `[Description truncated]`.
|
|
404
|
+
- Enums are kept in full up to 2,000 combined characters. Larger enums are replaced by a short note with example values.
|
|
405
|
+
- Required fields get a `REQUIRED` prefix in their descriptions for frameworks that ignore the JSON Schema `required` list.
|
|
406
|
+
- Nested properties are built for special inputs such as proxy configuration and request lists.
|
|
407
|
+
- Missing array item types are inferred from the item type, the prefill, the default value, or the editor type, in that order.
|
|
408
|
+
- Prefill and default values are copied into descriptions as examples, for clients that ignore JSON Schema `examples`.
|
|
530
409
|
|
|
531
|
-
|
|
410
|
+
</details>
|
|
532
411
|
|
|
533
|
-
|
|
412
|
+
For more help, see the [MCP documentation](https://docs.apify.com/mcp) or [open an issue](https://github.com/apify/apify-mcp-server/issues).
|
|
534
413
|
|
|
535
|
-
|
|
536
|
-
export APIFY_TOKEN="your-apify-token"
|
|
537
|
-
export APIFY_META_ORIGIN=STANDBY
|
|
538
|
-
apify run -p
|
|
539
|
-
```
|
|
414
|
+
## β FAQ
|
|
540
415
|
|
|
541
|
-
|
|
416
|
+
**What is an MCP server?**
|
|
417
|
+
An MCP server exposes tools and data to AI agents through the [Model Context Protocol](https://modelcontextprotocol.io), an open standard supported by clients such as Claude, ChatGPT, and Cursor. The agent connects once and calls the server's tools when a task needs them. The Apify MCP server's tools are the Actors in Apify Store.
|
|
542
418
|
|
|
543
|
-
|
|
419
|
+
**What is the Apify MCP server?**
|
|
420
|
+
It's the official [Model Context Protocol](https://modelcontextprotocol.io) server for Apify. It lets AI agents search Apify Store, run Actors for web scraping, data extraction, and browser automation, and read the structured results.
|
|
544
421
|
|
|
545
|
-
|
|
422
|
+
**When is it a good MCP server for web scraping?**
|
|
423
|
+
When an agent needs data from many different sites. A typical case is Google Maps one day, Instagram or an online store the next. The agent picks a ready-made Actor for each site from Apify Store instead of you writing and maintaining a scraper. Each Actor works like a web scraping API for its site, and the Apify platform handles scaling, proxies, and storage of the results.
|
|
546
424
|
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
npx @modelcontextprotocol/inspector node ./dist/stdio.js
|
|
550
|
-
```
|
|
425
|
+
**How does it compare to Playwright MCP?**
|
|
426
|
+
Playwright MCP drives a browser on your machine step by step, through clicks and page snapshots. The Apify MCP server runs Actors in the Apify cloud. Each Actor handles JavaScript rendering, proxies, and blocking for its site and returns structured results, so the agent asks for the data instead of operating a browser. Many agents use both.
|
|
551
427
|
|
|
552
|
-
|
|
428
|
+
**Can ChatGPT or Claude scrape websites with it?**
|
|
429
|
+
Yes. Connect ChatGPT, Claude, or Claude Code to `https://mcp.apify.com`, then ask in plain language. The model searches for a suitable Actor, runs it, and reads the results.
|
|
553
430
|
|
|
554
|
-
|
|
431
|
+
**Is it free?**
|
|
432
|
+
Connecting is free, and some discovery tools work without an account. Actor runs bill to your Apify account at each Actor's price, and the free plan includes $5 of monthly platform usage.
|
|
555
433
|
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
Example: `https://mcp.apify.com?tools=search-actors`.
|
|
434
|
+
**Do I need an API token?**
|
|
435
|
+
Not with the hosted server, because OAuth signs you in through the browser. The local server needs `APIFY_TOKEN` or an Apify CLI login.
|
|
559
436
|
|
|
560
|
-
|
|
437
|
+
**Can I limit what the agent can do or spend?**
|
|
438
|
+
Yes. Select tools with the `tools` parameter or expose a single Actor. To cap a run's cost, pass `maxTotalChargeUsd` for pay-per-event Actors or `maxItems` for pay-per-result Actors in `call-actor` options.
|
|
561
439
|
|
|
562
|
-
|
|
563
|
-
Changes must be synchronized between both.
|
|
440
|
+
## π§ Development
|
|
564
441
|
|
|
565
|
-
|
|
566
|
-
This publishes the package to [pkg.pr.new](https://pkg.pr.new/) for staging and testing before merging.
|
|
567
|
-
See [the workflow file](.github/workflows/on_pull_request_label.yaml) for details.
|
|
442
|
+
This repository contains the open-source server package published to npm as [`@apify/actors-mcp-server`](https://www.npmjs.com/package/@apify/actors-mcp-server). The hosted service at mcp.apify.com runs on this core logic from a separate private repository.
|
|
568
443
|
|
|
569
|
-
|
|
570
|
-
The Apify MCP Server is also available on [Docker Hub](https://hub.docker.com/mcp/server/apify-mcp-server/overview), registered via the [mcp-registry](https://github.com/docker/mcp-registry) repository. The entry in `servers/apify-mcp-server/server.yaml` should be deployed automatically by the Docker Hub MCP registry (deployment frequency is unknown). **Before making major changes to the `stdio` server version, test it locally to ensure the Docker build passes.** To test, change the `source.branch` to your PR branch and run `task build -- apify-mcp-server`. For more details, see [CONTRIBUTING.md](https://github.com/docker/mcp-registry/blob/main/CONTRIBUTING.md).
|
|
444
|
+
You need Node.js 22 or later and pnpm.
|
|
571
445
|
|
|
572
|
-
|
|
446
|
+
```bash
|
|
447
|
+
pnpm install
|
|
448
|
+
pnpm run build
|
|
449
|
+
pnpm run dev # Streamable HTTP server on http://localhost:3001, hot reload for widgets
|
|
450
|
+
pnpm run inspector:stdio # MCP Inspector against the stdio server
|
|
451
|
+
```
|
|
573
452
|
|
|
574
|
-
|
|
453
|
+
The development HTTP server doesn't read `APIFY_TOKEN` from the environment. Pass your token in an `Authorization: Bearer` header or a `?token=` query parameter, for example from the [MCP Inspector](https://github.com/modelcontextprotocol/inspector).
|
|
575
454
|
|
|
576
|
-
|
|
455
|
+
To publish a canary build of a pull request to [pkg.pr.new](https://pkg.pr.new/), add the `beta` label to it.
|
|
577
456
|
|
|
578
|
-
|
|
579
|
-
- **Descriptions** longer than 500 characters (as defined in `ACTOR_MAX_DESCRIPTION_LENGTH`) are cut at the last complete sentence in that window, or the last complete word if there is no sentence break, and marked `[Description truncated]`.
|
|
580
|
-
- **Enum fields** that fit within 2000 combined characters (as defined in `ACTOR_ENUM_MAX_LENGTH`) are kept in full; larger enums are omitted, with a short note and a few example values in the description instead.
|
|
581
|
-
- **Required fields** are explicitly marked with a `REQUIRED` prefix in their descriptions for compatibility with frameworks that may not handle the JSON schema properly.
|
|
582
|
-
- **Nested properties** are built for special cases like proxy configuration and request list sources to ensure the correct input structure.
|
|
583
|
-
- **Array item types** are inferred when not explicitly defined in the schema, using a priority order: explicit type in items > prefill type > default value type > editor type.
|
|
584
|
-
- **Enum values and examples** are added to property descriptions to ensure visibility, even if the client doesn't fully support the JSON schema.
|
|
585
|
-
- **Rental Actors** are only available for use with the hosted MCP server at https://mcp.apify.com. When running the server locally via stdio, you can only access Actors that are already added to your local toolset. To dynamically search for and use any Actor from Apify Storeβincluding rental Actorsβconnect to the hosted endpoint.
|
|
457
|
+
[DEVELOPMENT.md](./DEVELOPMENT.md) covers the project structure, tool loading phases, the Node.js version policy, and testing.
|
|
586
458
|
|
|
587
|
-
|
|
459
|
+
## π€ Contributing
|
|
588
460
|
|
|
589
|
-
|
|
590
|
-
Data is not shared with third parties beyond what is necessary to run the requested Actors.
|
|
591
|
-
For full details on data collection, usage, sharing, and retention, see [Apify Legal](https://docs.apify.com/legal).
|
|
461
|
+
Bug reports, feature requests, and documentation fixes are welcome. [Open an issue](https://github.com/apify/apify-mcp-server/issues) with steps to reproduce a bug, or describe the problem a feature would solve and who runs into it. Send typos, broken links, and wrong commands straight to a pull request. For code, work only on an issue a maintainer has invited you to pick up; unsolicited pull requests are closed.
|
|
592
462
|
|
|
593
|
-
|
|
463
|
+
Read [CONTRIBUTING.md](./CONTRIBUTING.md) before you start, including the rules for [AI-assisted contributions](./CONTRIBUTING.md#ai-assisted-contributions).
|
|
594
464
|
|
|
595
|
-
|
|
465
|
+
## π Privacy and license
|
|
596
466
|
|
|
597
|
-
|
|
598
|
-
- **π‘ Propose a feature**: [Open an issue](https://github.com/apify/apify-mcp-server/issues) β the problem and who hits it, not the implementation.
|
|
599
|
-
- **π§ Code**: Work only on a maintainer-invited issue. An open issue is not an invitation to pick it up; unsolicited pull requests are closed.
|
|
600
|
-
- **π Documentation**: Typos, broken links, and wrong commands go straight to a PR.
|
|
467
|
+
Requests and Actor inputs go to the Apify API to run the Actors you call. Apify doesn't share them with third parties beyond what running those Actors requires. See [Apify legal documents](https://docs.apify.com/legal) for details on data collection and retention.
|
|
601
468
|
|
|
602
|
-
|
|
469
|
+
The project is licensed under the [MIT license](./LICENSE.md).
|
|
603
470
|
|
|
604
|
-
|
|
471
|
+
## π Learn more
|
|
605
472
|
|
|
606
|
-
- [
|
|
607
|
-
- [
|
|
608
|
-
- [
|
|
473
|
+
- [MCP documentation](https://docs.apify.com/mcp): authentication, tool reference, and advanced configuration
|
|
474
|
+
- [Apify for AI agents](https://docs.apify.com/agents): choosing between MCP, plugins, agent skills, the CLI, and machine-readable docs
|
|
475
|
+
- [Apify agent skills](https://docs.apify.com/agents/skills): guided multi-step workflows, installed with `npx skills add apify/agent-skills`
|
|
476
|
+
- [Apify CLI](https://docs.apify.com/cli): running and building Actors from a terminal
|
|
477
|
+
- [Model Context Protocol](https://modelcontextprotocol.io)
|
|
478
|
+
- [MCP for beginners](https://blog.apify.com/mcp-for-beginners/)
|
|
609
479
|
- [How to use MCP with Apify Actors](https://blog.apify.com/how-to-use-mcp/)
|
|
610
|
-
- [
|
|
611
|
-
- [Webinar: Building and Monetizing MCP Servers on Apify](https://www.youtube.com/watch?v=w3AH3jIrXXo)
|
|
612
|
-
- [How to build and monetize an AI agent on Apify](https://blog.apify.com/how-to-build-an-ai-agent/)
|
|
613
|
-
- [Connect Apify MCP with Claude Desktop](https://docs.apify.com/platform/integrations/claude-desktop)
|
|
614
|
-
- [Connect Apify MCP with ChatGPT](https://docs.apify.com/platform/integrations/chatgpt)
|
|
480
|
+
- [Webinar: Building and monetizing MCP servers on Apify](https://www.youtube.com/watch?v=w3AH3jIrXXo)
|