Skip to main content
Glama
apify

actors-mcp-server

Official
by apify

Call Actor

call-actor
Destructive

Run any Apify Actor on demand by name with custom JSON input. Waits for completion and returns run status plus dataset IDs for fetching results.

Instructions

Call any Actor from the Apify Store.

WORKFLOW:

  1. Use fetch-actor-details to get the Actor's input schema

  2. Call this tool with the actor name and proper input based on the schema

If the actor name is not in "username/name" format, use search-actors to resolve the correct Actor first.

For MCP server Actors:

  • Use fetch-actor-details with output={ mcpTools: true } to list available tools

  • Call using format: "actorName:toolName" (e.g., "apify/actors-mcp-server:fetch-apify-docs")

IMPORTANT:

  • Waits up to waitSecs (default 30s) for completion; returns run status and storage IDs, and with waitSecs > 0 also reports dataset field metadata

  • Use get-dataset-items with the datasetId to fetch results; non-terminal runs include a nextStep with polling instructions

  • Use dedicated Actor tools when available for better experience

There are two ways to run Actors:

  1. Dedicated Actor tools: These are pre-configured tools, offering a simpler and more direct experience.

  2. Generic call-actor tool (call-actor): Use this when a dedicated tool is not available or when you want to run any Actor dynamically. This tool is especially useful if you do not want to add specific tools or your client does not support dynamic tool registration.

USAGE:

  • Always use dedicated tools when available

  • Use the generic call-actor tool only if a dedicated tool does not exist for your Actor.

  • Use waitSecs (0–45) to control how long to wait. Default 30s returns results for fast actors. Use waitSecs: 0 to start and return immediately for long-running actors.

EXAMPLES:

  • user_input: Get instagram posts using apify/instagram-scraper

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actorYesThe name of the Actor to call. Format: "username/name" (e.g., "apify/rag-web-browser"). For MCP server Actors, use format "actorName:toolName" to call a specific tool (e.g., "apify/actors-mcp-server:fetch-apify-docs").
inputYesThe input JSON to pass to the Actor. Required.
waitSecsNoSeconds to wait for completion (0–45, default 30). Returns with current run status if not terminal within waitSecs.
callOptionsNoOptional run config: memory (MB), timeout (s), build, maxItems (pay-per-result cap), maxTotalChargeUsd (pay-per-event cap).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changedv0.15.3
    • addedOutput schema / properties / storages / properties / datasets / required
      Added value: +[
      +  "default"
      +]
    • addedOutput schema / properties / storages / properties / keyValueStores / required
      Added value: +[
      +  "default"
      +]
  2. Changed14 schema fields changedv0.11.4
    • addedOutput schema / properties / storages / properties / datasets / additionalProperties / properties / apifyConsoleUrl
      Added value: +{
      +  "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
      +  "type": "string"
      +}
    • addedOutput schema / properties / storages / properties / datasets / additionalProperties / properties / fields
      Added value: +{
      +  "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / storages / properties / datasets / additionalProperties / properties / id / description
      Added value: +"Dataset ID"
    • addedOutput schema / properties / storages / properties / datasets / additionalProperties / properties / inflatedBytes
      Added value: +{
      +  "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / storages / properties / datasets / additionalProperties / properties / itemCount
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / storages / properties / datasets / additionalProperties / properties / name
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / storages / properties / datasets / additionalProperties / properties / title
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / cleanItemCount
      Removed value: -{
      -  "type": "number"
      -}
    • addedOutput schema / properties / storages / properties / keyValueStores / additionalProperties / properties / apifyConsoleUrl
      Added value: +{
      +  "description": "Personalized Apify Console link to the store; present only for Console sessions",
      +  "type": "string"
      +}
    • addedOutput schema / properties / storages / properties / keyValueStores / additionalProperties / properties / id / description
      Added value: +"Key-value store ID"
    • addedOutput schema / properties / storages / properties / keyValueStores / additionalProperties / properties / keyCount
      Added value: +{
      +  "description": "Total number of keys (omitted when truncated)",
      +  "type": "number"
      +}
    • addedOutput schema / properties / storages / properties / keyValueStores / additionalProperties / properties / keys
      Added value: +{
      +  "description": "Up to 50 key names",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / storages / properties / keyValueStores / additionalProperties / properties / name
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / storages / properties / keyValueStores / additionalProperties / properties / title
      Added value: +{
      +  "type": "string"
      +}
  3. Changed4 schema fields changedv0.11.2
    • addedOutput schema / properties / apifyConsoleUrl
      Added value: +{
      +  "description": "Personalized Apify Console link to the run; present only for Console sessions",
      +  "type": "string"
      +}
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / apifyConsoleUrl
      Added value: +{
      +  "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
      +  "type": "string"
      +}
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / inflatedBytes
      Added value: +{
      +  "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / storages / properties / keyValueStores / properties / default / properties / apifyConsoleUrl
      Added value: +{
      +  "description": "Personalized Apify Console link to the store; present only for Console sessions",
      +  "type": "string"
      +}
  4. First observedv0.10.13

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses important runtime behavior beyond the annotations: it waits up to waitSecs (default 30), returns run status and storage IDs, reports dataset field metadata when waitSecs > 0, and provides nextStep polling instructions for non-terminal runs. This goes well beyond the simple destructiveHint/openWorldHint annotations and helps an agent predict execution semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections, but it repeats the dedicated-tool guidance in both the IMPORTANT block and the USAGE block, adding unnecessary length. The example is useful, but the duplication and verbose formatting could be tightened without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex dynamic-execution tool, the description is remarkably complete: it covers the prerequisite fetch-actor-details step, name resolution, MCP server usage, wait/result retrieval behavior, polling instructions, and explicit selection criteria against siblings. The presence of an output schema further reduces the need to document return values, and nothing critical appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Because schema description coverage is 100%, the baseline is 3, but the description adds meaningful semantics: it explains when to use waitSecs: 0 for long-running actors, clarifies that input should conform to the schema fetched via fetch-actor-details, and elaborates on callOptions like maxItems and maxTotalChargeUsd as pay-per-result/event caps. This supplements the schema with actionable usage context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource statement, 'Call any Actor from the Apify Store,' and then differentiates itself from dedicated Actor tools and siblings like fetch-actor-details and search-actors. The MCP server format and the actor-name format are both specified, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is given for when to use this tool versus alternatives: 'Always use dedicated tools when available' and 'Use the generic call-actor tool only if a dedicated tool does not exist.' It also tells the agent to use search-actors to resolve malformed names and fetch-actor-details to obtain the input schema before calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/apify/apify-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server