Skip to main content

Apify MCP server

The Apify's MCP server (mcp.apify.com) allows AI applications and agents to interact with the Apify platform using Model Context Protocol (MCP). The MCP server enables AI agents to discover and run Actors from Apify Store, access storages and results, and enables AI coding assistants to access Apify documentation and tutorials.

To connect a coding agent such as Claude Code, Cursor, GitHub Copilot, or Codex, install the Apify plugin instead. It sets up this server together with Agent Skills in one step.

Apify MCP server

Apify MCP server vs MCP connectors

This page covers the Apify MCP server, which exposes Apify Actors as tools to outside AI clients. If you are building an Actor that needs to call third-party MCP servers (such as Notion or Slack) on a user's behalf, see MCP connectors instead.

Apify AI vs the MCP server

The Apify MCP server and Apify AI share the same Actor search and execution backend, but they serve different audiences:

Actor ranking on both surfaces uses parameters similar to those evaluated by the Actor quality score, so Actors with higher quality scores tend to rank higher.

Excluded Actors

Due to security reasons, the MCP server intentionally excludes full-permission Actors from search and execution. Running a full-permission Actor is a decision you approve personally, so an LLM can't make it on your behalf.

Prerequisites

Before connecting your AI to Apify, you need:

Connect and authorize

You can connect to the Apify MCP server in two ways: use our hosted service using Streamable HTTP with OAuth, or run the server locally for development and testing using local stdio.

Structured output schemas

The hosted Apify MCP server at https://mcp.apify.com supports output schema inference for structured Actor results. Actor tools automatically include inferred output schemas with field-level type information. This helps AI agents understand the expected result structure before calling an Actor. The local stdio server does not support this feature.

Add https://mcp.apify.com to your MCP client. On first connection, your browser opens so you can sign in to Apify and approve access. To authorize without signing in, use your Apify API token instead.

This flow authorizes the server without putting your API token in the client configuration.

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

For a client-specific configuration, use the MCP configurator: pick the Actors and tools you need, then copy the generated configuration into your client. If you use the Apify CLI, apify mcp install <client> writes the configuration for you, for example apify mcp install cursor.

Local stdio

If your client doesn't support remote MCP servers using the https://mcp.apify.com URL, you can run the server locally instead. This method uses the stdio transport to connect directly through your local environment.

Add this to your configuration file:

{
"mcpServers": {
"actors-mcp-server": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server"],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_TOKEN"
}
}
}
}

The server will download automatically on first use and connect using your API token.

Agentic payments

Agents can pay for Actor runs without an Apify account. Payments made per request through the MCP server, such as with Skyfire, work only with pay-per-event Actors. To run any Actor that uses limited permissions, buy a prepaid token through agentic payments and use it as a Bearer token with the MCP server.

Tool selection

By default, the MCP server loads the actors and docs tool categories, the apify/rag-web-browser and apify/web-fetch Actors, and report-problem. You can customize which tools are available by adding parameters to the server URL:

https://mcp.apify.com?tools=actors,docs,apify/rag-web-browser

For minimal setups where you only need specific Actors:

https://mcp.apify.com?tools=apify/instagram-scraper,apify/google-search-scraper

This configuration approach works for both hosted and local setups. For the CLI version:

npx @apify/actors-mcp-server --tools actors,docs,apify/web-scraper

Easy configuration

Use the UI configurator https://mcp.apify.com/ to select your tools visually, then copy the configuration to your client.

Use without an account

The Apify MCP server accepts requests without an API token when the tools query parameter contains only tools enabled for unauthenticated use. These tools cover Actor discovery and documentation lookup:

For example, the following URL connects without authentication:

https://mcp.apify.com?tools=search-actors,fetch-actor-details,search-apify-docs,fetch-apify-docs

If the tools parameter includes any other tool, or you connect to the default endpoint, the server requires an API token. Running Actors and accessing storage or run data always requires authentication.

Available tools

Tool nameCategoryEnabled by defaultDescriptionsearch-actorsactors✅Search for Actors in Apify Storefetch-actor-detailsactors✅Retrieve detailed information about a specific Actor, including its input and output schema, README (summary when available, full otherwise), and pricingcall-actoractors✅Run an Actor and wait up to waitSecs (0-45, default 30) for it to finish. Pass run limits (memory, timeout, maxItems, maxTotalChargeUsd) in callOptions, not in the Actor input. Returns the run status and storage IDs, not the results themselvesapify/rag-web-browserActor✅Browse and extract web dataapify/web-fetchActor✅Fetch one http(s) URL and return its full content, rendering JavaScript and bypassing anti-bot protectionsearch-apify-docsdocs✅Search the Apify documentation for relevant pagesfetch-apify-docsdocs✅Fetch the full content of an Apify documentation page by its URLget-actor-runrunsGet detailed information about a specific Actor runget-actor-run-listrunsGet a list of an Actor's runs, filterable by statusget-actor-run-logrunsRetrieve the logs for a specific Actor runabort-actor-runrunsAbort a running Actor runget-datasetstorageGet metadata about a specific datasetget-dataset-itemsstorageRetrieve items from a dataset with support for filtering and paginationget-dataset-schemastorageGenerate a JSON schema from dataset itemsget-key-value-storestorageGet metadata about a specific key-value storeget-key-value-store-keysstorageList the keys within a specific key-value storeget-key-value-store-recordstorageGet the value associated with a specific key in a key-value storeget-dataset-liststorageList all available datasets for the userget-key-value-store-liststorageList all available key-value stores for the userget-actor-tasktasksGet a saved Actor task, its publication state, and its public display configurationcreate-actor-tasktasksCreate a saved Actor task: a named, reusable Actor configurationupdate-actor-tasktasksUpdate a task's input, run options, or the display configuration of its landing pagepublish-actor-tasktasksPublish a task on its public landing pageunpublish-actor-tasktasksUnpublish a task from its public landing pagecreate-scheduleschedulesCreate a schedule that runs Actors and tasks on a cron cadenceget-scheduleschedulesGet a schedule's cron expression, time zone, state, and next runupdate-scheduleschedulesChange a schedule's cron expression, time zone, state, or actionsdelete-scheduleschedulesDelete a schedule permanentlyreport-problemdev✅Report a problem with the MCP server to Apify
Retrieving Actor results

call-actor returns the run's status and storage IDs, not its output. To read the results, use get-dataset-items with the datasetId from the run. It supports limit, offset, and field filtering.

Whenever call-actor or a specific Actor tool such as apify--rag-web-browser is loaded, the server also adds get-actor-run, get-dataset-items, get-key-value-store-record, and abort-actor-run, even if you didn't select them. A default configuration therefore exposes them too.

Find and call any Actor on demand

Your AI can search Apify Store for relevant Actors using the search-actors tool, inspect Actor details to understand required inputs, and call any Actor by name using call-actor - without needing to pre-configure it. This means your AI can adapt to new tasks without manual configuration.

Telemetry

The MCP server collects telemetry data about tool calls and MCP clients to help Apify understand usage patterns and improve the service. Participation in this program is optional and you may opt out if you prefer not to share any information.

Data collection

All telemetry data is collected and stored securely. We do not collect any sensitive information such as conversations, arguments passed to tools, API tokens, or personal data.

The server collects anonymous information about tool usage, including:

By default, telemetry is enabled for all tool calls.

Opt out of telemetry

Remote server

For the remote server (mcp.apify.com), you can opt out of telemetry by adding the telemetry-enabled=false query parameter to the server URL:

https://mcp.apify.com?telemetry-enabled=false

Local stdio server

For the local stdio server, opt out of telemetry using a CLI flag or an environment variable. When both the CLI flag and environment variable are set, the CLI flag takes precedence.

Advanced usage

Production best practices

Rate limits and performance

The Apify MCP server allows up to 30 requests per second per user. This limit applies to all operations including Actor runs, storage access, and documentation queries. If you exceed this limit, you'll receive a 429 response and should implement appropriate retry logic.

Troubleshooting

Claude Desktop issues

For Claude Desktop-specific troubleshooting (tools not loading, connection errors, corrupted cache), see Claude Desktop troubleshooting.

Authentication errors
Local environment setup
Actor execution issues

Support and resources

The Apify MCP server is an open-source project. Report bugs, suggest features, or ask questions in the GitHub repository.

If you find this project useful, please star it on GitHub to show your support!

To learn more about MCP and Apify integration: