Labsco
AStheTECH logo

MewCP Apify MCP

from AStheTECH

Hosted, Stateless & Multitenant Apify MCP server enables AI assistants to run actors, collect web data, and automate workflows through Apify.

πŸ”₯πŸ”₯βœ“ VerifiedFreeQuick setup

Run web scrapers, automate data extraction, and manage Actor pipelines through AI.

A Model Context Protocol (MCP) server that exposes Apify's API for running Actors, managing runs, and retrieving scraped datasets.

Overview

The Apify MCP Server provides end-to-end control over Apify's automation platform through AI:

  • Discover and run Actors from your Apify account with custom inputs and resource limits
  • Monitor run status and retrieve scraped output from datasets
  • Browse and manage pre-configured Actor tasks

Perfect for:

  • Triggering web scraping pipelines from conversational AI interfaces
  • Polling run results and surfacing structured dataset output without leaving the chat
  • Managing Actor task libraries and monitoring run history through natural language

Tools

<details> <summary><code>apify_health_check</code> β€” Check server readiness</summary>

Returns a status object confirming the server is running and reachable.

Inputs: (none)

Output:

{
  "status": "ok",
  "server": "CL Apify MCP Server"
}
</details> <details> <summary><code>apify_list_actors</code> β€” List Actors in your account</summary>

Returns a paginated list of Actors in your Apify account, including ID, name, and username.

Inputs:

- `my_only` (boolean, optional) β€” Only return Actors owned by you (default: true)
- `limit`   (integer, optional) β€” Maximum number of Actors to return, 1–1000 (default: 100)
- `offset`  (integer, optional) β€” Number of Actors to skip for pagination (default: 0)

Output:

{
  "success": true,
  "total": 12,
  "count": 12,
  "actors": [
    { "id": "abc123", "name": "web-scraper", "username": "myuser" }
  ]
}
</details> <details> <summary><code>apify_run_actor</code> β€” Run an Actor</summary>

Starts an Actor run with the provided input and optional resource constraints. Returns the run ID and default dataset ID for polling results.

Inputs:

- `actor_id`      (string, required)  β€” Actor ID to run (e.g. 'username~actor-name' or Actor ID)
- `input_data`    (string, optional)  β€” JSON string of input data for the Actor (default: '{}')
- `timeout_secs`  (integer, optional) β€” Run timeout in seconds
- `memory_mbytes` (integer, optional) β€” Memory limit in MB (min 128)
- `build`         (string, optional)  β€” Build tag or number (default: 'latest')

Output:

{
  "success": true,
  "run_id": "run_XXXXXXXXXX",
  "status": "RUNNING",
  "started_at": "2024-01-01T00:00:00.000Z",
  "default_dataset_id": "dataset_XXXXXXXXXX",
  "default_key_value_store_id": "kvs_XXXXXXXXXX"
}
</details> <details> <summary><code>apify_get_run</code> β€” Get Actor run details</summary>

Retrieves the status and metadata of a specific Actor run. Optionally waits up to 60 seconds for the run to finish.

Inputs:

- `run_id`          (string, required)  β€” Actor run ID
- `wait_for_finish` (integer, optional) β€” Seconds to wait for run completion, 0–60 (default: 0)

Output:

{
  "success": true,
  "run_id": "run_XXXXXXXXXX",
  "actor_id": "abc123",
  "status": "SUCCEEDED",
  "started_at": "2024-01-01T00:00:00.000Z",
  "finished_at": "2024-01-01T00:01:30.000Z",
  "default_dataset_id": "dataset_XXXXXXXXXX",
  "usage_total_usd": 0.012
}
</details> <details> <summary><code>apify_list_runs</code> β€” List recent Actor runs</summary>

Returns a paginated list of Actor runs from your account, sorted newest first. Optionally filter by run status.

Inputs:

- `status` (string, optional)  β€” Filter by status: 'SUCCEEDED', 'FAILED', 'RUNNING', 'ABORTED', etc.
- `limit`  (integer, optional) β€” Maximum number of runs to return, 1–1000 (default: 100)
- `offset` (integer, optional) β€” Number of runs to skip for pagination (default: 0)

Output:

{
  "success": true,
  "total": 42,
  "count": 10,
  "runs": [
    {
      "id": "run_XXXXXXXXXX",
      "actor_id": "abc123",
      "status": "SUCCEEDED",
      "started_at": "2024-01-01T00:00:00.000Z",
      "finished_at": "2024-01-01T00:01:30.000Z"
    }
  ]
}
</details> <details> <summary><code>apify_get_dataset_items</code> β€” Retrieve dataset output</summary>

Fetches scraped items from an Actor run's default dataset. This is the primary way to read Actor output after a run completes.

Inputs:

- `dataset_id` (string, required)  β€” Dataset ID (returned in the Actor run response)
- `limit`      (integer, optional) β€” Maximum number of items to return, 1–10000 (default: 100)
- `offset`     (integer, optional) β€” Number of items to skip for pagination (default: 0)
- `clean`      (boolean, optional) β€” Remove hidden fields starting with '#' (default: true)

Output:

{
  "success": true,
  "count": 25,
  "items": [
    { "url": "https://example.com", "title": "Example Page", "price": 29.99 }
  ]
}
</details> <details> <summary><code>apify_list_tasks</code> β€” List Actor tasks</summary>

Returns a paginated list of Actor tasks in your account. Tasks are pre-configured Actor runs with saved inputs.

Inputs:

- `limit`  (integer, optional) β€” Maximum number of tasks to return, 1–1000 (default: 100)
- `offset` (integer, optional) β€” Number of tasks to skip for pagination (default: 0)

Output:

{
  "success": true,
  "total": 5,
  "count": 5,
  "tasks": [
    {
      "id": "task_XXXXXXXXXX",
      "name": "my-scraper-task",
      "actor_id": "abc123",
      "username": "myuser",
      "created_at": "2024-01-01T00:00:00.000Z"
    }
  ]
}
</details>

API Parameters Reference

<details> <summary><strong>Common Parameters</strong></summary>
  • limit β€” Maximum number of records to return per request (max varies by endpoint)
  • offset β€” Number of records to skip; use with limit for pagination
  • desc β€” Sort order; list endpoints return results newest-first by default
</details> <details> <summary><strong>Resource ID Formats</strong></summary>

Actors:

{username}~{actor-name}  or  {actorId}
Example: apify~web-scraper  or  BwFbCCmwYxNqHr7TB

Runs:

{runId}
Example: HG7ML7M8z78YcAPEB

Datasets:

{datasetId}
Example: rHuMdwm6xCFt6WiEz

Tasks:

{taskId}
Example: KoJgnDhzbtGnuH5md
</details> <details> <summary><strong>Run Status Values</strong></summary>
  • READY β€” Queued and waiting to start
  • RUNNING β€” Currently executing
  • SUCCEEDED β€” Completed successfully
  • FAILED β€” Terminated with an error
  • ABORTING β€” Abort in progress
  • ABORTED β€” Stopped by user or timeout
  • TIMED-OUT β€” Exceeded the timeout limit
</details>

Getting Your Apify API Token

<details> <summary><strong>Steps</strong></summary>
  1. Go to the Apify Console
  2. Click your profile avatar β†’ Settings β†’ Integrations
  3. Under API tokens, click + Add new token
  4. Give the token a name and click Create β€” copy the token value immediately, it is only shown once

Personal API tokens carry the same permissions as your account. For production integrations, create a scoped token with the minimum permissions required.

</details>