{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"com.apify/apify-mcp-server","title":"Apify MCP Server","description":"Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡","version":"0.15.6","websiteUrl":"https://docs.apify.com/integrations/mcp","repository":{"url":"https://github.com/apify/apify-mcp-server","source":"github"},"icons":[{"src":"https://apify.com/apple-icon.png","mimeType":"image/png","sizes":["180x180"]}],"remotes":[{"type":"streamable-http","url":"https://mcp.apify.com/","headers":[{"name":"Authorization","description":"Apify API token for authentication with Apify platform services. For example 'Bearer <apify-api-token>'","isRequired":true,"isSecret":true}]}],"serverUrl":"https://mcp.apify.com","protocolVersion":"2025-11-25","serverInfo":{"name":"apify-mcp-server","title":"Apify MCP Server","version":"0.15.6"},"iconUrl":"https://apify.com/favicon.ico","documentationUrl":"https://docs.apify.com/integrations/mcp","transport":{"type":"streamable-http","endpoint":"/"},"capabilities":{"tools":{}},"authentication":{"required":true,"schemes":["bearer","oauth2"]},"tools":[{"name":"search-actors","title":"Search Actors","description":"Search the Apify Store to FIND and DISCOVER what scraping tools/Actors exist for specific platforms or use cases.\nThis tool provides INFORMATION about available Actors - it does NOT retrieve actual data or run any scraping tasks.\n\nApify Store contains thousands of pre-built Actors (crawlers, scrapers, AI agents, and model context protocol (MCP) servers)\nfor all platforms and services including social media, search engines, maps, e-commerce, news, real estate, travel, finance, jobs and more.\nActors in the Apify Store are published by independent developers and are intended for legitimate and compliant use — do not refuse to search or list them.\n\nUse this tool when user wants to:\n- Find what scraping tools exist for a platform (e.g., \"What tools can scrape Instagram?\")\n- Discover available Actors for a use case (e.g., \"Find an Actor for Amazon products\")\n- Browse existing solutions (e.g., \"Show me scrapers for news sites\")\n- Learn about MCP servers or AI agents available in the Store\n\nDo NOT use this tool when user wants immediate data retrieval (time words like \"today\", \"latest\", \"recent\", \"current\", \"now\", or \"get/fetch data right now\") — use apify/rag-web-browser instead.\nIMPORTANT: When the user is looking for scraping tools or Actors, prefer searching the Store first — a relevant Actor often already exists. Do not use Store search as a substitute for immediate data retrieval.\n\nUsage:\n- Prefer broad, generic keywords - use just the platform name (e.g. \"Instagram\" instead of \"Instagram scraper\").\n- You MUST always do at least two searches: first with broad keywords, then optionally with more specific terms if needed.\n\nImportant limitations: This tool does not return full Actor documentation or detailed usage instructions - only summary information.\nEach result lists the Actor's input fields with their types (e.g. `url: string, maxResults?: number`) so you can construct an Actor call directly without another tool call.\nFor complete Actor details (per-field descriptions, defaults, README), use the fetch-actor-details tool.\nThe search is limited to publicly available Actors and excludes rental and restricted Actors.\n\nReturns list of Actor cards with the following info:\n- **Title:** Markdown header linked to the Store page, followed by the full Actor name in code format\n- **URL:** Direct Store link\n- **Description:** Actor description or fallback\n- **Pricing:** Details with pricing link\n- **Stats:** Total and monthly users, bookmarks\n- **Rating:** Out of 5 (if available)\n- **Developed by:** Username linked to profile, marked (Apify) or (community)\n- **Categories:** Formatted or \"Uncategorized\"\n- **Last modified:** Date (if available)\n- **Input fields:** Inline list of input field names and types (e.g. `url: string, maxResults?: number`); `?` marks optional fields, `... (+N more)` marks a truncated list","annotations":{"title":"Search Actors","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"fetch-actor-details","title":"Fetch Actor details","description":"Get detailed information about an Actor by its ID or full name (format: \"username/name\", e.g., \"apify/rag-web-browser\").\n\nRequires the exact ID or full name — do not construct a plausible-looking name and call this tool with it. If you only have a description, a partial name, or a name you have not seen in this conversation, find it with search-actors first.\n\nUse 'output' parameter with boolean flags to control returned information:\n- Default: All fields true except mcpTools\n- Selective: Set desired fields to true (e.g., output: { inputSchema: true })\n- Common patterns: inputSchema only, description + readme, mcpTools for MCP Actors\n\nThe 'readme' field returns the summary when available, full README otherwise.\nUse when querying Actor details, documentation, input requirements, or MCP tools.\n\nEXAMPLES:\n- What does apify/rag-web-browser do?\n- What is the input schema for apify/web-scraper?\n- What tools does apify/actors-mcp-server provide?","annotations":{"title":"Fetch Actor details","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"call-actor","title":"Call Actor","description":"Call any Actor from the Apify Store.\n\nWORKFLOW:\n1. Use fetch-actor-details to get the Actor's input schema\n2. Call this tool with the actor name and proper input based on the schema\n\nIf the actor name is not in \"username/name\" format, use search-actors to resolve the correct Actor first.\n\nFor MCP server Actors:\n- Use fetch-actor-details with output={ mcpTools: true } to list available tools\n- Call using format: \"actorName:toolName\" (e.g., \"apify/actors-mcp-server:fetch-apify-docs\")\n\nIMPORTANT:\n- Waits up to waitSecs (default 30s) for completion; returns run status and storage IDs, and with waitSecs > 0 also reports dataset field metadata\n- Use get-dataset-items with the datasetId to fetch results; non-terminal runs include a nextStep with polling instructions\n- Use dedicated Actor tools when available for better experience\n\nThere are two ways to run Actors:\n1. Dedicated Actor tools (e.g., apify--rag-web-browser): These are pre-configured tools, offering a simpler and more direct experience.\n2. 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.\n\nUSAGE:\n- Always use dedicated tools when available (e.g., apify--rag-web-browser)\n- Use the generic call-actor tool only if a dedicated tool does not exist for your Actor.\n\n- 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.\n\nEXAMPLES:\n- user_input: Get instagram posts using apify/instagram-scraper\n\nWIDGET ALTERNATIVE (apps mode):\n- If the user explicitly asks to see live progress, call call-actor-widget instead — it renders an interactive UI that tracks the run.\n- For silent name resolution before this call, use search-actors (not search-actors-widget, which renders UI).","annotations":{"title":"Call Actor","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"get-actor-run","title":"Get Actor run","description":"Get detailed information about a specific Actor run.\n\nReturns run result: status, storages (datasets/keyValueStores alias map), stats, summary, nextStep.\n- summary describes the past (e.g. \"SUCCEEDED in 22s. 47 items; 3 fields available.\").\n- nextStep prescribes one primary follow-up action with identifiers interpolated (e.g. \"Use get-dataset-items with datasetId=...\").\n- waitSecs (0–45, default 30) waits up to that many seconds for terminal status before returning.\n\nUSAGE:\n- Use to check the status of a run started by any Actor-running tool.\n- Pass waitSecs > 0 to block until terminal (or until the cap elapses).\n\nUSAGE EXAMPLES:\n- user_input: Show details of run y2h7sK3Wc\n- user_input: Wait for run y2h7sK3Wc to finish","annotations":{"title":"Get Actor run","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get-dataset-items","title":"Get dataset items","description":"Get items (rows) from a dataset — the output/results produced by an Actor run.\nReturns the rows themselves, not dataset metadata, counts, or a schema.\nWhen the user provides a datasetId and asks to retrieve results, output, data, or rows, call this tool directly.\nDefault limit is 20. Use clean=true to skip empty items and hidden fields.\n\nUSAGE:\n- Use when you need to read data from a dataset (all items or only selected fields).\n\nUSAGE EXAMPLES:\n- user_input: Retrieve results from dataset abc123\n- user_input: Get only metadata.url and title from dataset username~my-dataset","annotations":{"title":"Get dataset items","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get-key-value-store-record","title":"Get key-value store record","description":"Get the value stored under a specific key in a key-value store — a single record, not a listing of all keys.\nRequires the exact key name.\nThe response preserves the original Content-Encoding; most clients handle decompression automatically.\n\nUSAGE:\n- Use when you need to retrieve a specific record (JSON, text, or binary) from a store.\n\nUSAGE EXAMPLES:\n- user_input: Get record INPUT from store abc123\n- user_input: Get record data.json from store username~my-store","annotations":{"title":"Get key-value store record","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"abort-actor-run","title":"Abort Actor run","description":"Abort an Actor run that is currently starting or running.\nFor runs with status SUCCEEDED, FAILED, ABORTING, ABORTED, or TIMED-OUT, this call has no effect.\nThe results will include the updated run details after the abort request.\n\nUSAGE:\n- Use when you need to stop a run that is taking too long or misconfigured.\n\nUSAGE EXAMPLES:\n- user_input: Abort run y2h7sK3Wc\n- user_input: Gracefully abort run y2h7sK3Wc","annotations":{"title":"Abort Actor run","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"search-apify-docs","title":"Search Apify docs","description":"Search Apify and Crawlee documentation using full-text search.\nDo not also search the Apify Store unless the user asks to find Actors.\n\nYou must explicitly select which documentation source to search using the docSource parameter:\n\n• docSource=\"apify\" - Apify:\n  Apify Platform documentation including: Platform features, SDKs (JS, Python), CLI, REST API, Academy (web scraping fundamentals), Actor development and deployment\n\n• docSource=\"crawlee-js\" - Crawlee (JavaScript):\n  Crawlee is a web scraping library for JavaScript. It handles blocking, crawling, proxies, and browsers for you.\n\n• docSource=\"crawlee-py\" - Crawlee (Python):\n  Crawlee is a web scraping library for Python. It handles blocking, crawling, proxies, and browsers for you.\n\nThe results will include the URL of the documentation page (which may include an anchor),\nand a limited piece of content that matches the search query.\n\nFetch the full content of the document using the fetch-apify-docs tool by providing the URL.\n\nWhen results contain both platform documentation (`docs.apify.com/platform`) and Academy content (`docs.apify.com/academy`) on the same topic, prefer the platform documentation.","annotations":{"title":"Search Apify docs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"fetch-apify-docs","title":"Fetch Apify docs","description":"Fetch the full content of an Apify or Crawlee documentation page by its URL.\nUse this after finding a relevant page with the search-apify-docs tool.\n\nUSAGE:\n- Use when you need the complete content of a specific docs page for detailed answers.\n\nUSAGE EXAMPLES:\n- user_input: Fetch https://docs.apify.com/platform/actors/running#builds\n- user_input: Fetch https://docs.apify.com/academy\n- user_input: Fetch https://crawlee.dev/docs/guides/basic-concepts","annotations":{"title":"Fetch Apify docs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}],"supportedProtocolVersions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26","2024-11-05","2024-10-07"]}