You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[LibreChat](https://www.librechat.ai/) (stdio and SSE support (yeah without Authorization header))
29
+
-[Apify Tester MCP Client](https://apify.com/jiri.spilka/tester-mcp-client) (SSE support with Authorization headers)
30
+
- other clients at [https://modelcontextprotocol.io/clients](https://modelcontextprotocol.io/clients)
31
+
- more clients at [https://glama.ai/mcp/clients](https://glama.ai/mcp/clients)
23
32
24
-
To interact with the Apify MCP server, you can use MCP clients such as [Claude Desktop](https://claude.ai/download), [LibreChat](https://www.librechat.ai/), or other [MCP clients](https://glama.ai/mcp/clients).
25
33
Additionally, you can use simple example clients found in the [examples](https://github.com/apify/actor-mcp-server/tree/main/src/examples) directory.
26
34
27
35
When you have Actors integrated with the MCP server, you can ask:
@@ -36,25 +44,27 @@ The following image shows how the Apify MCP server interacts with the Apify plat
In the future, we plan to load Actors dynamically and provide Apify's dataset and key-value store as resources.
39
-
See the [Roadmap](#-roadmap-january-2025) for more details.
47
+
See the [Roadmap](#-roadmap-march-2025) for more details.
40
48
41
49
# 🔄 What is the Model Context Protocol?
42
50
43
51
The Model Context Protocol (MCP) allows AI applications (and AI agents), such as Claude Desktop, to connect to external tools and data sources.
44
52
MCP is an open protocol that enables secure, controlled interactions between AI applications, AI Agents, and local or remote resources.
45
53
46
-
For more information, see the [Model Context Protocol](https://modelcontextprotocol.org/) website.
54
+
For more information, see the [Model Context Protocol](https://modelcontextprotocol.org/) website or blogpost [What is MCP and why does it matter?](https://blog.apify.com/what-is-model-context-protocol/).
47
55
48
56
# 🤖 How is Actors MCP Server related to AI Agents?
49
57
50
58
The Apify MCP Server exposes Apify's Actors through the MCP protocol, allowing AI Agents or frameworks that implement the MCP protocol to access all Apify Actors as tools for data extraction, web searching, and other tasks.
51
59
52
-
To learn more, check out the blog post: [What are AI Agents?](https://blog.apify.com/what-are-ai-agents/)
60
+
To learn more, check out the blog post: [What are AI Agents?](https://blog.apify.com/what-are-ai-agents/) and Apify's [AI Agent collection](https://apify.com/store/collections/ai_agents).
53
61
54
62
# 🧱 Components
55
63
56
64
## Tools
57
65
66
+
### Actors
67
+
58
68
Any [Apify Actor](https://apify.com/store) can be used as a tool.
59
69
By default, the server is pre-configured with the Actors specified below, but it can be overridden by providing Actor input.
60
70
@@ -80,6 +90,20 @@ You don't need to specify the input parameters or which Actor to call, everythin
80
90
When a tool is called, the arguments are automatically passed to the Actor by the LLM.
81
91
You can refer to the specific Actor's documentation for a list of available arguments.
82
92
93
+
### Helper tools
94
+
95
+
The server provides a set of helper tools to discover available Actors and retrieve their details:
96
+
-`get-actor-details`: Retrieves documentation, input schema, and other details about a specific Actor.
97
+
-`discover-actors`: Searches for relevant Actors using keywords and returns their details.
98
+
99
+
There are also tools to manage the available tools list. However, dynamically adding and removing tools requires the MCP client to have the capability to manage the tools list, which is typically not supported.
100
+
101
+
You can try this functionality using the [Apify Tester MCP Client](https://apify.com/jiri.spilka/tester-mcp-client) Actor.
102
+
To enable it, set the `enableActorAutoLoading` parameter.
103
+
104
+
-`add-actor-as-tool`: Adds an Actor by name to the available tools list without executing it, requiring user consent to run later.
105
+
-`remove-actor-from-tool`: Removes an Actor by name from the available tools list when it's no longer needed.
106
+
83
107
## Prompt & Resources
84
108
85
109
The server does not provide any resources and prompts.
You can find a list of all available Actors in the [Apify Store](https://apify.com/store).
113
137
114
-
#### 💬 Interact with the MCP Server
138
+
#### 💬 Interact with the MCP Server over SSE
115
139
116
140
Once the server is running, you can interact with Server-Sent Events (SSE) to send messages to the server and receive responses.
117
-
You can use MCP clients such as [Superinference.ai](https://superinterface.ai/) or [LibreChat](https://www.librechat.ai/).
141
+
The easiest way is to use [Tester MCP Client](https://apify.com/jiri.spilka/tester-mcp-client) on Apify.
142
+
143
+
Other clients do not support SSE yet, but this will likely change.
144
+
Please verify if MCP clients such as [Superinference.ai](https://superinterface.ai/) or [LibreChat](https://www.librechat.ai/) support SSE with custom headers.
118
145
([Claude Desktop](https://claude.ai/download) does not support SSE transport yet, see [Claude Desktop Configuration](#claude-desktop) section for more details).
119
146
120
147
In the client settings you need to provide server configuration:
@@ -137,7 +164,7 @@ Alternatively, you can use simple python [client_see.py](https://github.com/apif
The server will respond with a `sessionId`, which you can use to send messages to the server:
167
+
The server will respond with a `sessionId`, which you can use to send messages to the server:
141
168
```shell
142
169
event: endpoint
143
170
data: /message?sessionId=a1b
@@ -155,15 +182,15 @@ Alternatively, you can use simple python [client_see.py](https://github.com/apif
155
182
}
156
183
}'
157
184
```
158
-
The MCP server will start the Actor `lukaskrivka/google-maps-with-contact-details` with the provided arguments as input parameters.
159
-
For this POST request, the server will respond with:
185
+
The MCP server will start the Actor `lukaskrivka/google-maps-with-contact-details` with the provided arguments as input parameters.
186
+
For this POST request, the server will respond with:
160
187
161
188
```text
162
189
Accepted
163
190
```
164
191
165
192
3. Receive the response. The server will invoke the specified Actor as a tool using the provided query parameters and stream the response back to the client via SSE.
166
-
The response will be returned as JSON text.
193
+
The response will be returned as JSON text.
167
194
168
195
```text
169
196
event: message
@@ -172,13 +199,8 @@ Alternatively, you can use simple python [client_see.py](https://github.com/apif
172
199
173
200
## ⾕ MCP Server at a local host
174
201
175
-
### Installing via Smithery
176
-
177
-
To install Apify Actors MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@apify/actors-mcp-server):
178
-
179
-
```bash
180
-
npx -y @smithery/cli install @apify/actors-mcp-server --client claude
181
-
```
202
+
You can run the Apify MCP Server on your local machine by configuring it with Claude Desktop or any other [MCP clients](https://modelcontextprotocol.io/clients).
203
+
You can also use [Smithery](https://smithery.ai/server/@apify/actors-mcp-server) to install the server automatically.
Follow the steps below to set up and run the server on your local machine:
193
214
First, clone the repository using the following command:
194
215
195
216
```bash
@@ -213,8 +234,8 @@ npm run build
213
234
To configure Claude Desktop to work with the MCP server, follow these steps. For a detailed guide, refer to the [Claude Desktop Users Guide](https://modelcontextprotocol.io/quickstart/user).
214
235
215
236
1. Download Claude for desktop
216
-
- Available for Windows and macOS.
217
-
- For Linux users, you can build a Debian package using this [unofficial build script](https://github.com/aaddrick/claude-desktop-debian).
237
+
- Available for Windows and macOS.
238
+
- For Linux users, you can build a Debian package using this [unofficial build script](https://github.com/aaddrick/claude-desktop-debian).
218
239
2. Open the Claude Desktop app and enable **Developer Mode** from the top-left menu bar.
219
240
3. Once enabled, open **Settings** (also from the top-left menu bar) and navigate to the **Developer Option**, where you'll find the **Edit Config** button
220
241
4. Open configuration file and edit the following file:
@@ -236,7 +257,7 @@ To configure Claude Desktop to work with the MCP server, follow these steps. For
236
257
}
237
258
}
238
259
```
239
-
Alternatively, you can use `actors` argument to select one or more Apify Actors:
260
+
Alternatively, you can use `actors` argument to select one or more Apify Actors:
240
261
```json
241
262
{
242
263
"mcpServers": {
@@ -272,6 +293,14 @@ To configure Claude Desktop to work with the MCP server, follow these steps. For
272
293
Find and analyze instagram profile of the Rock.
273
294
```
274
295
296
+
### Installing via Smithery
297
+
298
+
To install Apify Actors MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@apify/actors-mcp-server):
299
+
300
+
```bash
301
+
npx -y @smithery/cli install @apify/actors-mcp-server --client claude
302
+
```
303
+
275
304
#### Stdio clients
276
305
277
306
Create environment file `.env` with the following content:
To test the server with the SSE transport, you can use python script `examples/client_sse.py`:
347
+
To test the server with the SSE transport, you can use python script `examples/clientSse.ts`:
318
348
Currently, the node.js client does not support to establish a connection to remote server witch custom headers.
319
349
You need to change URL to your local server URL in the script.
320
350
321
351
```bash
322
-
python src/examples/client_sse.py
352
+
node dist/examples/clientSse.js
323
353
```
324
354
325
355
## Debugging
@@ -343,17 +373,22 @@ Upon launching, the Inspector will display a URL that you can access in your bro
343
373
344
374
## ⓘ Limitations and feedback
345
375
346
-
To limit the context size the properties in the `input schema` are pruned and description is truncated to 200 characters.
376
+
To limit the context size the properties in the `input schema` are pruned and description is truncated to 500 characters.
347
377
Enum fields and titles are truncated to max 50 options.
348
378
349
379
Memory for each Actor is limited to 4GB.
350
380
Free users have an 8GB limit, 128MB needs to be allocated for running `Actors-MCP-Server`.
351
381
352
-
If you need other features or have any feedback, please [submit an issue](https://console.apify.com/actors/3ox4R101TgZz67sLr/issues) in Apify Console to let us know.
382
+
If you need other features or have any feedback, please [submit an issue](https://console.apify.com/actors/1lSvMAaRcadrM1Vgv/issues) in Apify Console to let us know.
353
383
354
-
# 🚀 Roadmap (January 2025)
384
+
# 🚀 Roadmap (March 2025)
355
385
356
-
- Document examples for [LibreChat](https://www.librechat.ai/).
357
-
- Provide tools to search for Actors and load them as needed.
358
386
- Add Apify's dataset and key-value store as resources.
359
387
- Add tools such as Actor logs and Actor runs for debugging.
0 commit comments