Skip to main content
Glama
apify

actors-mcp-server

Official
by apify

Call Actor

call-actor
Destructive

Runs any Apify Store Actor by name or ID with JSON input when no dedicated tool exists, returning run status and storage 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.

MCP server Actors are not run here; call-actor-mcp-tool calls their MCP tools.

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

NameRequiredDescriptionDefault
actorYesThe Actor to call: its ID, or its name in the "username/name" form (e.g., "apify/rag-web-browser").
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

NameRequiredDescriptionDefault
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
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.

  1. Changed1 schema field changedv0.19.5
    • changedInput schema / properties / actor / description
      Previous value: -"The Actor to call: its ID, or its name in the \"username/name\" form (e.g., \"apify/rag-web-browser\").\n\nFor MCP server Actors, use format \"actorName:toolName\" to call a specific tool (e.g., \"username/name:tool-name\")."New value: +"The Actor to call: its ID, or its name in the \"username/name\" form (e.g., \"apify/rag-web-browser\")."
  2. Changed2 schema fields changedv0.18.3
    • changedInput schema / properties / callOptions / properties / memory / description
      Previous value: -"Memory per run in MB. Power of 2 from 128 to 32768.\nApify also caps total memory across all your concurrent runs (account plan limit); if a run is rejected because that quota would be exceeded, retry with a smaller value."New value: +"Memory per run in MB. Power of 2 from 128 to 32768.\nApify also caps total memory across all your concurrent runs (account plan limit); a run that would exceed that quota is rejected."
    • changedInput schema / properties / input / additionalProperties
      Previous value: -{}New value: +true
  3. Changed2 schema fields changedv0.18.2
    • changedInput schema / properties / actor / description
      Previous value: -"The Actor to call: its ID, or its name in the \"username/name\" form (e.g., \"apify/rag-web-browser\").\n\nFor MCP server Actors, use format \"actorName:toolName\" to call a specific tool (e.g., \"apify/actors-mcp-server:fetch-apify-docs\")."New value: +"The Actor to call: its ID, or its name in the \"username/name\" form (e.g., \"apify/rag-web-browser\").\n\nFor MCP server Actors, use format \"actorName:toolName\" to call a specific tool (e.g., \"username/name:tool-name\")."
    • addedOutput schema / properties / tip
      Added value: +{
      +  "description": "Advisory guidance RAG Web Browser wrote to its key-value store under the reserved \"TIP\" key",
      +  "properties": {
      +    "caveat": {
      +      "description": "Present when this session cannot run the Actor the tip recommends",
      +      "type": "string"
      +    },
      +    "level": {
      +      "description": "Omitted when the Actor wrote an unrecognized level",
      +      "enum": [
      +        "info",
      +        "warning"
      +      ],
      +      "type": "string"
      +    },
      +    "message": {
      +      "description": "Truncated to 300 characters, with a trailing ellipsis if the Actor's message was longer",
      +      "type": "string"
      +    },
      +    "recommendedActorId": {
      +      "description": "Apify Actor ID the tip recommends, when it names one",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "message"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changedv0.17.1
    • changedInput schema / properties / actor / description
      Previous value: -"The name of the Actor to call. Format: \"username/name\" (e.g., \"apify/rag-web-browser\").\n\nFor MCP server Actors, use format \"actorName:toolName\" to call a specific tool (e.g., \"apify/actors-mcp-server:fetch-apify-docs\")."New value: +"The Actor to call: its ID, or its name in the \"username/name\" form (e.g., \"apify/rag-web-browser\").\n\nFor MCP server Actors, use format \"actorName:toolName\" to call a specific tool (e.g., \"apify/actors-mcp-server:fetch-apify-docs\")."
  5. 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"
      +]
  6. 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"
      +}
  7. 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"
      +}
  8. First observedv0.10.13

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations (destructiveHint=true, openWorldHint=true): it discloses the wait/poll model, that non-terminal runs return a nextStep with polling instructions, that dataset field metadata is returned when waitSecs > 0, and that results are fetched via get-dataset-items with the returned datasetId. It also clarifies an important boundary — MCP server Actors are not executed here.

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?

Front-loaded with workflow and constraints, which is good, but it is noticeably redundant: the 'dedicated tools first' rule appears in the two-ways section, again under USAGE, and again in IMPORTANT. Trimming one of those passes would keep the same information at roughly half the length.

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 generic, open-world dispatcher with a nested input object and an output schema, everything an agent needs is present: prerequisites, the wait/poll contract, where results land, and when to prefer a dedicated tool. Nothing material is left to inference.

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?

Schema description coverage is 100%, so the baseline is 3; the description adds real nuance by explaining what waitSecs buys you at each end of its range and by pointing at the actor name format and the need to derive 'input' from the Actor's own schema. It does not add meaning for callOptions beyond what the schema already says.

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?

States a specific verb and resource ('Call any Actor from the Apify Store') and immediately scopes it against the alternatives: dedicated Actor tools and call-actor-mcp-tool for MCP server Actors. An agent can distinguish this from every sibling without opening a schema.

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 routing rules: use dedicated tools when available, use this generic tool otherwise, run fetch-actor-details first to get the input schema, and use search-actors if the name is not in 'username/name' form. It also gives selection guidance for waitSecs (0 for long-running, default for fast actors).

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