Skip to content

AStheTECH/mewcp-apify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

apify_health_check — Check server readiness

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

Inputs: (none)

Output:

{
  "status": "ok",
  "server": "CL Apify MCP Server"
}
apify_list_actors — List Actors in your account

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" }
  ]
}
apify_run_actor — Run an Actor

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"
}
apify_get_run — Get Actor run details

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
}
apify_list_runs — List recent Actor runs

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"
    }
  ]
}
apify_get_dataset_items — Retrieve dataset output

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 }
  ]
}
apify_list_tasks — List Actor tasks

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"
    }
  ]
}

API Parameters Reference

Common Parameters
  • 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
Resource ID Formats

Actors:

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

Runs:

{runId}
Example: HG7ML7M8z78YcAPEB

Datasets:

{datasetId}
Example: rHuMdwm6xCFt6WiEz

Tasks:

{taskId}
Example: KoJgnDhzbtGnuH5md
Run Status Values
  • 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

Getting Your Apify API Token

Steps
  1. Go to the Apify Console
  2. Click your profile avatar → SettingsIntegrations
  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.

Troubleshooting

Missing or Invalid Headers
  • Cause: API token not provided in request headers or incorrect format
  • Solution:
    1. Verify Authorization: Bearer YOUR_API_KEY and X-Mewcp-Credential-Id: CREDENTIAL-ID headers are present
    2. Check API token is active in your MewCP account
Insufficient Credits
  • Cause: API calls have exceeded your request limits
  • Solution:
    1. Check credit usage in your Curious Layer dashboard
    2. Upgrade to a paid plan or add credits for higher limits
    3. Contact support for credit adjustments
Credential Not Connected
  • Cause: No Apify credential linked to your account
  • Solution:
    1. Go to Credentials in your MewCP dashboard
    2. Add your Apify API token
    3. Retry the request with the correct X-Mewcp-Credential-Id header
Malformed Request Payload
  • Cause: JSON payload is invalid or missing required fields
  • Solution:
    1. Validate JSON syntax before sending
    2. Ensure all required tool parameters are included
    3. When using apify_run_actor, pass input_data as a JSON string, not an object
Server Not Found
  • Cause: Incorrect server name in the API endpoint
  • Solution:
    1. Verify endpoint format: {server-name}/mcp/{tool-name}
    2. Use correct server name from documentation
    3. Check available servers in your Curious Layer account
Apify API Error
  • Cause: Upstream Apify API returned an error
  • Solution:
    1. Check Apify service status at Apify Status Page
    2. Verify your API token has the required permissions for the operation
    3. Review the error message for specific details (e.g. Actor not found, insufficient compute units)

Resources

About

MCP Server for APIFY

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages