-
Notifications
You must be signed in to change notification settings - Fork 135
docs: update mcp.md #1583
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: update mcp.md #1583
Changes from 15 commits
b03e5ca
be76c13
92217c7
be821af
a99eb47
1207230
672d703
4d3d304
36d3624
8a834b0
0340669
0ce013f
9540863
d061f36
f17955b
3ee3b25
9e7c370
75ef6f9
adcb648
9426d97
e78dcbd
56cf225
a10461f
11a5425
b374ff6
e3b68bf
a69a0c0
aea0a5c
52f0647
2e17507
b1c05b9
d6b5c77
d02475e
75d2d51
d758259
6310733
1ec3534
5fd1ee1
34d3a18
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -8,178 +8,136 @@ slug: /integrations/mcp | |||||||||||||||||||||
|
|
||||||||||||||||||||||
| <!-- markdownlint-disable MD024 --> | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| The Apify Model Context Protocol (MCP) server allows AI agents and frameworks compatible with the MCP standard to connect with the extensive library of Actors available on [Apify Store](https://apify.com/store). | ||||||||||||||||||||||
| The _Apify Model Context Protocol (MCP) Server_ allows AI agents and frameworks to tap into Apify’s extensive library of Actors as tools. It acts as a bridge between AI systems (like Anthropic’s Claude or other MCP-compatible clients) and Apify Actors, enabling agents to perform web scraping, data extraction, or other automation tasks using Actors in real time. | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ## Why use MCP with Apify? | ||||||||||||||||||||||
|  | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
vystrcild marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||
| - _Access a vast tool library_: Provide AI agents access to thousands of pre-built Actors for web scraping, data extraction, and automation. | ||||||||||||||||||||||
| - _Dynamic tool discovery_: Unlike static OpenAPI definitions, MCP enables agents to dynamically find and add relevant Actors to their context during runtime. Agents can use MCP operations like `discover-actors` and `add-actor-to-tools`. | ||||||||||||||||||||||
| - _Scalability_: Efficiently manage access to a large and growing number of tools, which is challenging with single, static API definitions. | ||||||||||||||||||||||
| - _Flexible integration_: Connect to the MCP server using HTTP Server-Sent Events (SSE) or local standard input/output (stdin/stdout). Compatible clients include Claude Desktop, LibreChat, and [Apify’s Tester MCP Client](https://apify.com/jiri.spilka/tester-mcp-client). | ||||||||||||||||||||||
| ## How to use | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ## Common use cases | ||||||||||||||||||||||
| You can use the Apify MCP Server in three ways: | ||||||||||||||||||||||
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
| - Extract data from websites, such as social media posts, search engine results, or specific URLs. | ||||||||||||||||||||||
| - Summarize web content or identify trends. | ||||||||||||||||||||||
| - Run automated web workflows without direct user interaction. | ||||||||||||||||||||||
| - Local STDIO transport with desktop client (e.g. Claude Desktop) | ||||||||||||||||||||||
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||
| - Run [Apify Actors MCP Server](https://apify.com/apify/actors-mcp-server) as Actor | ||||||||||||||||||||||
| - Use [mcp.apify.com](https://mcp.apify.com) with both legacy SSE on `/sse` and streamable transport in `/` | ||||||||||||||||||||||
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ## Prerequisites | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| Before you start, make sure you have the following: | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| 1. _Apify account_: You need an active account on the Apify platform. | ||||||||||||||||||||||
| 2. _API Token_: Get your personal API token from the **Integrations** section in [Apify Console](https://console.apify.com/account#/integrations). | ||||||||||||||||||||||
| 1. _An Apify account:_ Sign up for a free Apify account if you don’t have one. | ||||||||||||||||||||||
| 1. _Apify API Token:_ Get your personal API token from the **Integrations** section in [Apify Console](https://console.apify.com/account#/integrations). This token will be used to authorize the MCP server to run Actors on your behalf. | ||||||||||||||||||||||
| 1. _MCP Client:_ You will also need an AI agent or client that supports MCP. This could be Anthropic Claude (Desktop edition), a VS Code extension with MCP support, Apify’s web-based Tester MCP Client, or any custom client implementation. See supported MCP clients in [official documentation](https://modelcontextprotocol.io/clients). | ||||||||||||||||||||||
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ## Connection methods | ||||||||||||||||||||||
| ## Example Usage (Local STDIO with Claude Desktop) | ||||||||||||||||||||||
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
| Apify provides two main ways to connect your MCP client to Actors: | ||||||||||||||||||||||
| While you can interact with the MCP server using raw API calls or cURL, in practice you’ll often use an AI assistant interface. Let’s walk through an example of using Claude Desktop with the Apify MCP Server: | ||||||||||||||||||||||
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
| 1. Main Actors MCP Server: Access _all_ public Actors. Requires dynamic discovery or specifying Actors via URL parameters. | ||||||||||||||||||||||
| 2. Actor-specific MCP Server: A dedicated endpoint for a _single_ Actor, which is pre-registered and ready for immediate use. | ||||||||||||||||||||||
| 1. _Configure Claude Desktop:_ Claude Desktop supports MCP servers via the **Developer Mode** configuration. You need to add an entry for the Apify MCP server. For instance, in Claude’s config file, under `mcpServers`, add an entry like: | ||||||||||||||||||||||
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ### Option 1: Use the main Actors MCP server | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| This method offers the most flexibility, allowing access to all of Apify Store dynamically or by specifying Actors at connection time. | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ```text title="Server endpoint" | ||||||||||||||||||||||
| https://actors-mcp-server.apify.actor/sse?token=<YOUR_API_TOKEN> | ||||||||||||||||||||||
| ```json | ||||||||||||||||||||||
| { | ||||||||||||||||||||||
| "mcpServers": { | ||||||||||||||||||||||
| "actors-mcp-server": { | ||||||||||||||||||||||
| "command": "npx", | ||||||||||||||||||||||
| "args": ["-y", "@apify/actors-mcp-server"], | ||||||||||||||||||||||
| "env": { | ||||||||||||||||||||||
| "APIFY_TOKEN": "YOUR_APIFY_TOKEN" | ||||||||||||||||||||||
| } | ||||||||||||||||||||||
| } | ||||||||||||||||||||||
| } | ||||||||||||||||||||||
| } | ||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| Key features: | ||||||||||||||||||||||
| This tells Claude to spawn the Apify MCP Server (via the NPM package) with your API token. (On first run, it will download the package automatically.) | ||||||||||||||||||||||
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
| - Dynamic discovery: Agents can use MCP operations like `discover-actors` to search Apify Store for tools. | ||||||||||||||||||||||
| - Dynamic registration: Agents can use the `add-actor-to-tools` operation to add discovered Actors to their available toolset for the current session. | ||||||||||||||||||||||
| - Pre-registration via URL: You can make specific Actors available immediately by adding the `&actors=` query parameter to the connection URL (for example, `&actors=apify/rag-web-browser`). | ||||||||||||||||||||||
| 1. _Launch Claude and connect:_ After updating the config, restart Claude Desktop. If successful, Claude will show a “plugin” (often indicated by a plug icon 🔌) signifying it connected to the Apify Actors MCP server. | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| The following example demonstrates connecting to the main server while pre-registering the `apify/rag-web-browser` Actor. | ||||||||||||||||||||||
| 1. _Use the Actors in conversation:_ Now you can chat with Claude and ask it to use Apify Actors. For example, you might ask: _“What Apify Actors can I use?”_ Claude (through the MCP server) will list tools (Actors) available. If none are pre-loaded beyond the defaults, it might show a few default ones or instruct how to discover more. You can then ask something like: _“Use the Instagram Scraper to get the latest posts from NASA’s profile.”_ Claude will internally call the `apify/instagram-scraper` Actor via the MCP server and stream the results back to you, perhaps summarizing the output. | ||||||||||||||||||||||
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
| #### Step 1: Start the SSE connection | ||||||||||||||||||||||
| Behind the scenes, Claude didn’t need to know the details of Apify’s API or Actors — it relied on the MCP server to handle tool execution. You, as the user, just see the answer or result in the chat. | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| Use `curl` or another SSE client to establish the connection. Append `&actors=apify/rag-web-browser` to pre-register the tool. Replace `<YOUR_API_TOKEN>` with your actual Apify API token. | ||||||||||||||||||||||
| 1. **Dynamic tool loading:** If you ask for something that requires a tool not initially present, Claude can invoke the discovery mechanism. For instance, _“Find an Actor that scrapes Google Search and use it to search for ‘climate change news’.”_ Claude can call `search-actors` (to find a Google Search scraper), then `add-actor` (to add it), and then call it — all within one conversation. The result will then be presented. | ||||||||||||||||||||||
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||
| # Start the Server-Sent Events (SSE) session and keep it active | ||||||||||||||||||||||
| curl "https://actors-mcp-server.apify.actor/sse?token=<YOUR_API_TOKEN>&actors=apify/rag-web-browser" | ||||||||||||||||||||||
| This example shows how an AI assistant can leverage Apify Actors through MCP in a conversational way. The key is that once the client (Claude) is configured, you can use natural language to trigger complex workflows on Apify. | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| # The server responds with the session endpoint. Note the sessionId. | ||||||||||||||||||||||
| # event: endpoint | ||||||||||||||||||||||
| # data: /message?sessionId=9d820491-38d4-4c7d-bb6a-3b7dc542f1fa | ||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
| _(If you prefer not to set up Claude Desktop, you can achieve a similar result using [Apify’s Tester MCP Client](https://apify.com/jiri.spilka/tester-mcp-client), which provides a web UI to test the MCP server.)_ | ||||||||||||||||||||||
|
||||||||||||||||||||||
| _(If you prefer not to set up Claude Desktop, you can achieve a similar result using [Apify’s Tester MCP Client](https://apify.com/jiri.spilka/tester-mcp-client), which provides a web UI to test the MCP server.)_ | |
| :::note Tool of choice | |
| If you prefer not to set up Claude Desktop, you can achieve a similar result using [Apify’s Tester MCP Client](https://apify.com/jiri.spilka/tester-mcp-client), which provides a web UI to test the MCP server. | |
| ::: |
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's use http://mcp.apify.com/sse
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use https
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should mention that you can specify actors as query parameter: actors=apify/rag-web-browser
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ## Adding Multiple Actors | |
| ## Adding multiple Actors |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| By default, the main Actors MCP Server starts with a **default set of Actors** (currently a few popular ones like Instagram Scraper, RAG Web Browser, etc.). However, you can customize which Actors are available: | |
| By default, the main Actors MCP Server starts with a _default set of Actors_ (currently a few popular ones like Instagram Scraper, RAG Web Browser, etc.). However, you can customize which Actors are available: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also maybe we could add links here to the Actors mentioned?
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - **Via Actor Task (on Apify platform):** If you are running the MCP server as an Apify Actor (instead of via NPM), you can create a Task for the `apify/actors-mcp-server` Actor with a custom input specifying the Actors you want. This input would include an array of actor IDs or names. Running that Task (in Standby mode) will launch the MCP server with your chosen Actors instead of the defaults. This is useful if you always want a certain subset of tools and don’t need full dynamic discovery. | |
| - **Dynamic adding during a session:** If your client supports it, the agent itself can add Actors dynamically by name (using the `add-actor` operation) at runtime. For example, after using `search-actors` to find an Actor’s name, calling `add-actor` with that name will load it. Note that not all MCP client frameworks allow dynamic tool addition at runtime, but Apify’s own tester client does (when `enableActorAutoLoading` in Actors MCP Server is true). | |
| - **Via config file (for Claude Desktop):** When using Claude Desktop, you can specify which Actors should be immediately available by configuring your `mcpServers` settings. Add the Actors as a comma-separated list in the `--actors` parameter, as shown in the example below. This pre-loads your selected tools without requiring discovery during conversations, ideal for workflows with predictable tool needs. | |
| - _Via Actor Task (on Apify platform):_ If you are running the MCP server as an Apify Actor (instead of via NPM), you can create a Task for the `apify/actors-mcp-server` Actor with a custom input specifying the Actors you want. This input would include an array of actor IDs or names. Running that Task (in Standby mode) will launch the MCP server with your chosen Actors instead of the defaults. This is useful if you always want a certain subset of tools and don’t need full dynamic discovery. | |
| - _Dynamic adding during a session:_ If your client supports it, the agent itself can add Actors dynamically by name (using the `add-actor` operation) at runtime. For example, after using `search-actors` to find an Actor’s name, calling `add-actor` with that name will load it. Note that not all MCP client frameworks allow dynamic tool addition at runtime, but Apify’s own tester client does (when `enableActorAutoLoading` in Actors MCP Server is true). | |
| - _Via config file (for Claude Desktop):_ When using Claude Desktop, you can specify which Actors should be immediately available by configuring your `mcpServers` settings. Add the Actors as a comma-separated list in the `--actors` parameter, as shown in the example below. This pre-loads your selected tools without requiring discovery during conversations, ideal for workflows with predictable tool needs. |
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| One of the powerful features of MCP with Apify is **dynamic actor tooling** – the ability for an AI agent to find new tools (Actors) as needed and incorporate them. Here are some special MCP operations and how Apify MCP Server supports them: | |
| One of the powerful features of MCP with Apify is _dynamic actor tooling_ – the ability for an AI agent to find new tools (Actors) as needed and incorporate them. Here are some special MCP operations and how Apify MCP Server supports them: |
vystrcild marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is already visually distinct enough thanks to backticks, bold (or emphasis) unnecessary
| - **`search-actors`:** Discover available Actors or MCP-Servers in Apify Store using full text search using keywords.Users try to discover Actors using free form query in this case search query must be converted to full text search. Returns a list of Actors with name, description, run statistics, pricing, starts, and URL. You perhaps need to use this tool several times to find the right Actor. You should prefer simple keywords over complex queries. Limit number of results returned but ensure that relevant results are returned. This is not a general search tool, it is designed to search for Actors in Apify Store. | |
| - **`get-actor-details`:** Get documentation, readme, input schema and other details about an Actor. For example, when user says, I need to know more about web crawler Actor.Get details for an Actor with with Actor ID or Actor full name, i.e. username/name.Limit the length of the README if needed. | |
| - **`help-tool`:** Helper tool to get information on how to use and troubleshoot the Apify MCP server. This tool always returns the same help message with information about the server and how to use it. Call this tool in case of any problems or uncertainties with the server. | |
| - **`add-actor`:** Add a tool, Actor or MCP-Server to available tools by Actor ID or Actor name. A tool is an Actor or MCP-Server that can be called by the userDo not execute the tool, only add it and list it in available tools. For example, add a tool with username/name when user wants to scrape data from a website. | |
| - **`remove-actor`:** Remove a tool, an Actor or MCP-Server by name from available tools. For example, when user says, I do not need a tool username/name anymore | |
| - `search-actors`: Discover available Actors or MCP-Servers in Apify Store using full text search using keywords.Users try to discover Actors using free form query in this case search query must be converted to full text search. Returns a list of Actors with name, description, run statistics, pricing, starts, and URL. You perhaps need to use this tool several times to find the right Actor. You should prefer simple keywords over complex queries. Limit number of results returned but ensure that relevant results are returned. This is not a general search tool, it is designed to search for Actors in Apify Store. | |
| - `get-actor-details`: Get documentation, readme, input schema and other details about an Actor. For example, when user says, I need to know more about web crawler Actor.Get details for an Actor with with Actor ID or Actor full name, i.e. username/name.Limit the length of the README if needed. | |
| - `help-tool`: Helper tool to get information on how to use and troubleshoot the Apify MCP server. This tool always returns the same help message with information about the server and how to use it. Call this tool in case of any problems or uncertainties with the server. | |
| - `add-actor`: Add a tool, Actor or MCP-Server to available tools by Actor ID or Actor name. A tool is an Actor or MCP-Server that can be called by the userDo not execute the tool, only add it and list it in available tools. For example, add a tool with username/name when user wants to scrape data from a website. | |
| - `remove-actor`: Remove a tool, an Actor or MCP-Server by name from available tools. For example, when user says, I do not need a tool username/name anymore |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we really need to have this list? And if so, do we need it so long?
Uh oh!
There was an error while loading. Please reload this page.