Skip to main content
Glama
apify

actors-mcp-server

Official
by apify

Call Actor

call-actor
Destructive

Run any Apify Actor by name with custom JSON input when no dedicated tool exists. Specify wait time and run options, then use returned dataset IDs to fetch 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
Behavior5/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, openWorldHint=true, idempotentHint=false, and the description adds substantial context beyond them: waitSecs blocking behavior with non-terminal nextStep polling instructions, return of run status and storage IDs, dataset field metadata reporting when waitSecs > 0, memory quota rejection retry advice, and pay-per-result/event charge caps in callOptions. This is rich behavioral disclosure consistent with the annotations.

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

Conciseness4/5

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

The description is lengthy but well-structured with WORKFLOW, IMPORTANT, USAGE, and EXAMPLES headers. There is some redundancy: the 'There are two ways to run Actors' paragraph repeats the 'always use dedicated tools' and 'only if no dedicated tool exists' guidance that appears again in USAGE. Slight trimming would help, but every section earns its place given the tool's complexity.

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 tool with 4 parameters (one a nested object), an output schema, and complex runtime behavior, the description is remarkably complete. It covers prerequisites, MCP server actor invocation format, waiting semantics, result retrieval flow, polling for long runs, and edge cases like name resolution. With an output schema present, not explaining return values is acceptable.

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 baseline is 3. The description adds meaningful value beyond the schema: practical waitSecs guidance ('Default 30s returns results for fast actors. Use waitSecs: 0 to start and return immediately'), the workflow hint to fetch the input schema before calling, and the requirement to resolve non-'username/name' actor names via search-actors. It doesn't exhaustively document every callOptions field, but the schema already covers those.

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.' It clearly distinguishes itself from siblings by positioning dedicated tools as the preferred alternative and this tool as the generic dynamic path. References to fetch-actor-details, search-actors, and get-dataset-items for related workflow steps further differentiate it.

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?

Extremely explicit guidance: 'Always use dedicated tools when available' and 'Use the generic call-actor tool only if a dedicated tool does not exist for your Actor.' It also names the exact alternative for each step (fetch-actor-details for schemas, search-actors for name resolution, get-dataset-items for results) and gives a concrete when-to-use example (dynamically running any Actor without dynamic tool registration).

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

Install Server

Other Tools

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