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
feat(input): allow empty tools and actors to allow greater control of exposed tools (#218)
* feat(input): allow empty tools and actors to allow greater control of exposed tools
* revert internals
* more robust input processing
* fix(docs): update tool categories and add usage notes in README
* fix(manifest): update default values for tool categories and dynamic Actor adding
* feat: implement the new internal MCP configuration spec (#226)
* feat: refactor and unify input handling, remove unnecessary logic
* feat: vibe new mcp input spec
* fix: remove unnecessary addTool in mcp/server.ts
* fix: fix stdio.only add-actor tool related circular dependency cause by import of getActorsAsTools and pass it as internal tool arg instead.
* fix test suite, clean up
* fix tests and logic to adhere to the new spec
* refactor code
* lint
* rename to fetch-actor-details
* improve readme
* update stdio help
* improve test case names
* fix and improve the call-actor generic tool
* more spec new spec complience tests
* lint
* one more test, just in case
* address pr comment and refactor the process input func
* fix: Delete example clients, update Readme (#239)
fix: Delete clients (in examples). They are not used and outdated anyway. Also update README.md
* Update tests/unit/input.test.ts
Co-authored-by: Jiří Spilka <[email protected]>
* Update tests/unit/input.test.ts
Co-authored-by: Jiří Spilka <[email protected]>
* Update README.md
Co-authored-by: Jiří Spilka <[email protected]>
* address review comments
* clean up imports and update comments for clarity, export functions for internal repo
---------
Co-authored-by: Jiří Spilka <[email protected]>
* update dxt manifest
---------
Co-authored-by: Jiří Spilka <[email protected]>
Copy file name to clipboardExpand all lines: README.md
+80-17Lines changed: 80 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -140,43 +140,106 @@ One of the most powerful features of using MCP with Apify is dynamic tool discov
140
140
It gives an AI agent the ability to find new tools (Actors) as needed and incorporate them.
141
141
Here are some special MCP operations and how the Apify MCP Server supports them:
142
142
143
-
-**Actor discovery and management**: Search for Actors, view their details, and dynamically add or remove them as available tools for the AI.
143
+
-**Apify Actors**: Search for Actors, view their details, and use them as tools for the AI.
144
144
-**Apify documentation**: Search the Apify documentation and fetch specific documents to provide context to the AI.
145
-
-**Actor runs (*)**: Get lists of your Actor runs, inspect their details, and retrieve logs.
146
-
-**Apify storage (*)**: Access data from your datasets and key-value stores.
147
-
148
-
**Note**: Helper tool categories marked with (*) are not enabled by default in the MCP server and must be explicitly enabled using the `tools` argument (either the `--tools` command line argument for the stdio server or the `?tools` URL query parameter for the remote MCP server). The `tools` argument is a comma-separated list of categories with the following possible values:
149
-
150
-
-`docs`: Search and fetch Apify documentation tools.
151
-
-`runs`: Get Actor run lists, run details, and logs from a specific Actor run.
152
-
-`storage`: Access datasets, key-value stores, and their records.
153
-
-`preview`: Experimental tools in preview mode.
154
-
155
-
For example, to enable all tools, use `npx @apify/actors-mcp-server --tools docs,runs,storage,preview` or `https://mcp.apify.com/?tools=docs,runs,storage,preview`.
145
+
-**Actor runs**: Get lists of your Actor runs, inspect their details, and retrieve logs.
146
+
-**Apify storage**: Access data from your datasets and key-value stores.
156
147
157
148
### Overview of available tools
158
149
159
150
Here is an overview list of all the tools provided by the Apify MCP Server.
160
151
161
152
| Tool name | Category | Description | Enabled by default |
162
153
| :--- | :--- | :--- | :---: |
163
-
|`get-actor-details`|default|Retrieve detailed information about a specific Actor. | ✅ |
164
-
|`search-actors`|default|Search for Actors in the Apify Store. | ✅ |
165
-
|`add-actor`|default|Add an Actor as a new tool for the user to call. | ✅ |
166
-
|[`apify-slash-rag-web-browser`](https://apify.com/apify/rag-web-browser)|default| An Actor tool to browse the web. | ✅ |
154
+
|`search-actors`|actors|Search for Actors in the Apify Store. | ✅ |
155
+
|`fetch-actor-details`|actors|Retrieve detailed information about a specific Actor. | ✅ |
156
+
|`call-actor`|actors|Call an Actor and get its run results. | ✅ |
157
+
|[`apify-slash-rag-web-browser`](https://apify.com/apify/rag-web-browser)|Actor (see [tool configuration](#tools-configuration))| An Actor tool to browse the web. | ✅ |
167
158
|`search-apify-docs`| docs | Search the Apify documentation for relevant pages. | ✅ |
168
159
|`fetch-apify-docs`| docs | Fetch the full content of an Apify documentation page by its URL. | ✅ |
169
-
|`call-actor`| preview | Call an Actor and get its run results. ||
170
160
|`get-actor-run`| runs | Get detailed information about a specific Actor run. ||
171
161
|`get-actor-run-list`| runs | Get a list of an Actor's runs, filterable by status. ||
172
162
|`get-actor-log`| runs | Retrieve the logs for a specific Actor run. ||
173
163
|`get-dataset`| storage | Get metadata about a specific dataset. ||
174
164
|`get-dataset-items`| storage | Retrieve items from a dataset with support for filtering and pagination. ||
165
+
|`get-dataset-schema`| storage | Generate a JSON schema from dataset items. ||
175
166
|`get-key-value-store`| storage | Get metadata about a specific key-value store. ||
176
167
|`get-key-value-store-keys`| storage | List the keys within a specific key-value store. ||
177
168
|`get-key-value-store-record`| storage | Get the value associated with a specific key in a key-value store. ||
178
169
|`get-dataset-list`| storage | List all available datasets for the user. ||
179
170
|`get-key-value-store-list`| storage | List all available key-value stores for the user. ||
171
+
|`add-actor`| experimental | Add an Actor as a new tool for the user to call. ||
172
+
173
+
### Tools configuration
174
+
175
+
The `tools` configuration parameter is used to specify loaded tools - either categories or specific tools directly, and Apify Actors. For example, `tools=storage,runs` loads two categories; `tools=add-actor` loads just one tool.
176
+
177
+
When no query parameters are provided, the MCP server loads the following `tools` by default:
178
+
179
+
-`actors`
180
+
-`docs`
181
+
-`apify/rag-web-browser`
182
+
183
+
If the tools parameter is specified, only the listed tools or categories will be enabled - no default tools will be included.
184
+
185
+
> **Easy configuration:**
186
+
>
187
+
> Use the [UI configurator](https://mcp.apify.com/) to configure your server, then copy the configuration to your client.
188
+
189
+
**Configuring the hosted server:**
190
+
191
+
The hosted server can be configured using query parameters in the URL. For example, to load the default tools, use:
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:
198
+
199
+
```
200
+
https://mcp.apify.com?tools=apify/my-actor
201
+
```
202
+
203
+
This setup exposes only the specified Actor (`apify/my-actor`) as a tool. No other tools will be available.
204
+
205
+
**Configuring the CLI:**
206
+
207
+
The CLI can be configured using command-line flags. For example, to load the same tools as in the hosted server configuration, use:
As above, this exposes only the specified Actor (`apify/my-actor`) as a tool. No other tools will be available.
220
+
221
+
> **⚠️ Important recommendation**
222
+
>
223
+
> **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.
224
+
>
225
+
> **For production use and stable interfaces, always explicitly specify the `tools` parameter** to ensure your configuration remains consistent across updates.
226
+
227
+
### Backward compatibility
228
+
229
+
The v2 configuration preserves backward compatibility with v1 usage. Notes:
230
+
231
+
-`actors` param (URL) and `--actors` flag (CLI) are still supported.
232
+
- Internally they are merged into `tools` selectors.
-`enable-adding-actors` (CLI) and `enableAddingActors` (URL) are supported but deprecated.
235
+
- Prefer `tools=experimental` or including the specific tool `tools=add-actor`.
236
+
- Behavior remains: when enabled with no `tools` specified, the server exposes only `add-actor`; when categories/tools are selected, `add-actor` is also included.
237
+
-`enableActorAutoLoading` remains as a legacy alias for `enableAddingActors` and is mapped automatically.
238
+
- Defaults remain compatible: when no `tools` are specified, the server loads `actors`, `docs`, and `apify/rag-web-browser`.
239
+
- If any `tools` are specified, the defaults are not added (same as v1 intent for explicit selection).
240
+
-`call-actor` is now included by default via the `actors` category (additive change). To exclude it, specify an explicit `tools` list without `actors`.
241
+
242
+
Existing URLs and commands using `?actors=...` or `--actors` continue to work unchanged.
Copy file name to clipboardExpand all lines: manifest.json
+5-22Lines changed: 5 additions & 22 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
{
2
2
"dxt_version": "0.1",
3
3
"name": "apify-mcp-server",
4
-
"version": "0.3.9",
4
+
"version": "0.4.0",
5
5
"description": "Extract data from any site with Apify Store, home to thousands of web scrapers.",
6
6
"long_description": "Apify is the world's largest marketplace of tools for web scraping, data extraction, and web automation. You can extract structured data from social media, e-commerce, search engines, maps, travel sites, or any other website.",
7
7
"keywords": [
@@ -42,11 +42,7 @@
42
42
"args": [
43
43
"${__dirname}/dist/stdio.js",
44
44
"--tools",
45
-
"${user_config.tools}",
46
-
"--actors",
47
-
"${user_config.actors}",
48
-
"--enable-adding-actors",
49
-
"${user_config.enable-adding-actors}"
45
+
"${user_config.tools}"
50
46
],
51
47
"env": {
52
48
"APIFY_TOKEN": "${user_config.apify_token}"
@@ -64,23 +60,10 @@
64
60
},
65
61
"tools": {
66
62
"type": "string",
67
-
"title": "Enabled tool categories",
68
-
"description": "A comma-separated list of tool categories to enable. Available options: docs, runs, storage, preview.",
63
+
"title": "Enabled tools",
64
+
"description": "Comma-separated list of tools to enable. Can be either a tool category, a specific tool, or an Apify Actor. For example: \"actors,docs,apify/rag-web-browser\". For more details visit https://mcp.apify.com.",
69
65
"required": false,
70
-
"default": "docs"
71
-
},
72
-
"actors": {
73
-
"type": "string",
74
-
"title": "Enabled Actors",
75
-
"description": "A comma-separated list of full Actor names to add to the server on startup (e.g., apify/rag-web-browser).",
76
-
"required": false,
77
-
"default": "apify/rag-web-browser"
78
-
},
79
-
"enable-adding-actors": {
80
-
"type": "boolean",
81
-
"title": "Enable dynamic Actor adding",
82
-
"description": "Allow dynamically adding Actors as tools based on user requests during a session.",
0 commit comments