Skip to main content
Glama

MCP Apify

Python 3.10+ License: MIT MCP

A Model Context Protocol (MCP) server for the Apify platform. This server enables AI assistants like Claude to interact with your Apify account — managing actors, monitoring runs, retrieving datasets, and more.

Table of Contents

Related MCP server: AXE Fleet MCP Server

Features

  • Actors — List and inspect actors in your account

  • Runs — Start, monitor, abort, and resurrect actor runs

  • Tasks — Manage and execute saved actor configurations

  • Datasets — Retrieve scraped data and results

  • Key-Value Stores — Access stored records and outputs

  • Schedules — Monitor automated execution schedules

Prerequisites

Installation

Option 1: Install from source

git clone https://github.com/fvegah/mcp-apify.git
cd mcp-apify
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -e .
git clone https://github.com/fvegah/mcp-apify.git
cd mcp-apify
uv venv
source .venv/bin/activate
uv pip install -e .

Configuration

Step 1: Set your API token

Add your Apify API token to your shell profile (~/.zshrc, ~/.bashrc, or equivalent):

export APIFY_API_TOKEN="apify_api_xxxxxxxxxxxxxxxxxxxxx"

Reload your shell configuration:

source ~/.zshrc  # or source ~/.bashrc

Step 2: Configure your MCP client

Claude Desktop

Add the following to your Claude Desktop configuration file:

OS

Path

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

Linux

~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "apify": {
      "command": "/absolute/path/to/mcp-apify/.venv/bin/python",
      "args": ["-m", "mcp_apify.server"]
    }
  }
}

Important: Replace /absolute/path/to/mcp-apify with the actual path where you cloned the repository.

Claude Code (CLI)

Add to your Claude Code MCP settings (~/.claude/settings.json):

{
  "mcpServers": {
    "apify": {
      "command": "/absolute/path/to/mcp-apify/.venv/bin/python",
      "args": ["-m", "mcp_apify.server"]
    }
  }
}

Step 3: Restart your MCP client

After configuration, restart Claude Desktop or Claude Code to load the new MCP server.

Usage

Once configured, you can interact with Apify through natural language. The AI assistant will use the appropriate tools automatically.

Example prompts

"List my recent actor runs"
"Show me the status of run abc123def456"
"Get the results from my last web scraper run"
"Abort the currently running actor"
"Run the apify/web-scraper actor with URL https://example.com"
"Show me all my scheduled tasks"

Available Tools

User Information

Tool

Description

get_user_info

Get information about the authenticated user

Actors

Tool

Description

list_actors

List all actors (created or used by user)

get_actor

Get details of a specific actor

Runs

Tool

Description

list_actor_runs

List runs for a specific actor

list_user_runs

List all runs across all actors

get_run

Get details of a specific run

get_last_run

Get the most recent run of an actor

run_actor

Start a new actor run with optional input

abort_run

Stop a running actor execution

resurrect_run

Restart a finished run

get_run_log

Retrieve the log output of a run

Tasks

Tool

Description

list_tasks

List all saved actor tasks

get_task

Get task configuration details

run_task

Execute a task with optional input override

list_task_runs

List runs for a specific task

get_task_last_run

Get the most recent task run

Datasets

Tool

Description

list_datasets

List all datasets

get_dataset

Get dataset metadata

get_dataset_items

Retrieve items from a dataset

get_run_dataset_items

Get items from a run's default dataset

Key-Value Stores

Tool

Description

list_key_value_stores

List all key-value stores

get_key_value_store

Get store metadata

list_keys

List keys in a store

get_record

Retrieve a specific record

get_run_output

Get the OUTPUT record from a run

Schedules

Tool

Description

list_schedules

List all schedules

get_schedule

Get schedule configuration

get_schedule_log

Get schedule execution history

Examples

List recent runs with status filter

Ask: "Show me my failed runs from the last week"

The assistant will use list_user_runs with status: "FAILED" to retrieve the information.

Run an actor with custom input

Ask: "Run the web scraper on https://news.ycombinator.com and wait for results"

The assistant will:

  1. Use run_actor with the appropriate input

  2. Use get_run with wait_for_finish to monitor completion

  3. Use get_run_dataset_items to retrieve the results

Monitor a running actor

Ask: "What's the status of my current scraping job?"

The assistant will use list_user_runs with status: "RUNNING" to find active runs.

Development

Project structure

mcp-apify/
├── pyproject.toml              # Package configuration
├── README.md                   # This file
├── .gitignore
└── src/
    └── mcp_apify/
        ├── __init__.py
        ├── client.py           # Apify API client
        └── server.py           # MCP server implementation

Running locally

# Activate virtual environment
source .venv/bin/activate

# Run the server directly (for testing)
python -m mcp_apify.server

Running tests

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

API Reference

This MCP server wraps the Apify API v2. For detailed information about request/response formats and available parameters, refer to the official documentation:

Troubleshooting

"APIFY_API_TOKEN environment variable is required"

Ensure the environment variable is set and exported in your shell profile, then restart your MCP client.

Server not appearing in Claude

  1. Verify the path to the Python executable is correct and absolute

  2. Check that the virtual environment has all dependencies installed

  3. Restart Claude Desktop/Code completely

API errors

Verify your API token is valid at Apify Console.

License

MIT License — see LICENSE for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Available Tools

28 tools
abort_runC

Abort a running actor execution.

Inputs: run_id (required), gracefully.

get_actorB

Get details of a specific actor including versions, builds, and runs info.

Inputs: actor_id (required).

get_datasetC

Get details of a specific dataset.

Inputs: dataset_id (required).

get_dataset_itemsC

Get items from a dataset.

Inputs: dataset_id (required), offset, limit, clean, +1 more.

get_key_value_storeB

Get details of a specific key-value store.

Inputs: store_id (required).

get_last_runC

Get the last run of an actor.

Inputs: actor_id (required), status.

get_recordC

Get a record from a key-value store.

Inputs: store_id (required), key (required).

get_runC

Get details of a specific run including status, stats, and storage IDs.

Inputs: run_id (required), wait_for_finish.

get_run_dataset_itemsC

Get items from a run's default dataset.

Inputs: run_id (required), offset, limit, clean, +1 more.

get_run_logC

Get the log output of a run.

Inputs: run_id (required).

get_run_outputC

Get the OUTPUT record from a run's default key-value store.

Inputs: run_id (required).

get_scheduleC

Get details of a specific schedule.

Inputs: schedule_id (required).

get_schedule_logC

Get the execution log of a schedule.

Inputs: schedule_id (required).

get_taskC

Get details of a specific task including its input configuration.

Inputs: task_id (required).

get_task_last_runC

Get the last run of a task.

Inputs: task_id (required), status.

get_user_infoB

Get information about the current authenticated user

Inputs: no named parameters.

list_actor_runsC

Get list of runs for a specific actor.

Inputs: actor_id (required), offset, limit, status.

list_actorsC

Get list of actors. Returns actors created or used by the user.

Inputs: offset, limit, my.

list_datasetsC

Get list of datasets.

Inputs: offset, limit, unnamed.

list_keysC

List keys in a key-value store.

Inputs: store_id (required), limit, exclusive_start_key.

list_key_value_storesC

Get list of key-value stores.

Inputs: offset, limit, unnamed.

list_schedulesB

Get list of schedules for automatic actor/task execution.

Inputs: offset, limit.

list_task_runsB

Get list of runs for a specific task.

Inputs: task_id (required), offset, limit, status.

list_tasksC

Get list of actor tasks (saved actor configurations).

Inputs: offset, limit.

list_user_runsC

Get list of all runs for the current user across all actors.

Inputs: offset, limit, status, desc.

resurrect_runC

Resurrect a finished run to continue processing.

Inputs: run_id (required).

run_actorC

Start a new run of an actor with optional input and configuration.

Inputs: actor_id (required), input_data, memory_mbytes, timeout_secs, +2 more.

run_taskC

Run a task with optional input override.

Inputs: task_id (required), input_data, wait_for_finish.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 28 tools

    Disambiguation4/5

    Most tools are clearly distinct by resource (actor, dataset, run, etc.) and action (get, list, run), but some overlap exists, such as get_run_dataset_items and get_dataset_items, which could cause confusion about which to use for dataset access. The descriptions help clarify, but the boundaries between run-specific and general dataset tools are not perfectly sharp.

    Naming Consistency5/5

    Tool names follow a highly consistent verb_noun pattern throughout, with verbs like get, list, run, abort, and resurrect applied predictably to nouns like actor, dataset, run, etc. There are no deviations in style or convention, making the naming scheme clear and systematic.

    Tool Count3/5

    With 28 tools, the count feels heavy for the domain of managing Apify actors, datasets, runs, and related resources. While it covers many operations, it may be overwhelming for agents, as some tools could be consolidated or omitted without losing functionality, such as having multiple get_* variants that might be redundant in practice.

    Completeness5/5

    The tool set provides comprehensive CRUD and lifecycle coverage for the Apify domain, including operations for actors, datasets, key-value stores, runs, schedules, and tasks. It supports creation (run_actor, run_task), retrieval (get_*, list_*), updates (resurrect_run), and deletion (abort_run), with no obvious gaps that would hinder agent workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Connects AI assistants to thousands of Apify Actors for web scraping, data extraction, and automation tasks, with dynamic tool discovery to find and use any Actor from the Apify Store in real time.
      42,948 npm
      MIT
    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      Exposes over 19,000 Apify Actors as MCP tools for web scraping, data extraction, and OSINT automation. It enables AI agents to dynamically discover and execute scrapers to collect structured data and crawl web content.
      MIT