{
  "server": "apify",
  "url": "https://mcp.apify.com/",
  "date": "2026-09-23",
  "protocolVersion": "2026-07-28",
  "serverInfo": {
    "name": "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.16.0",
    "websiteUrl": "https://docs.apify.com/integrations/mcp",
    "icons": [
      {
        "src": "https://apify.com/apple-icon.png",
        "mimeType": "image/png",
        "sizes": [
          "180x180"
        ]
      }
    ]
  },
  "listChangedDeclared": false,
  "toolCount": 12,
  "outputSchemaCoveragePct": 100,
  "tools": [
    {
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": false,
        "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",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "gracefully": {
            "description": "If true, the Actor run will abort gracefully with a 30-second timeout.",
            "type": "boolean"
          },
          "runId": {
            "description": "The ID of the Actor run to abort.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "runId"
        ],
        "type": "object"
      },
      "name": "abort-actor-run",
      "outputSchema": {
        "properties": {
          "actorId": {
            "description": "Stable Apify Actor ID from the run record",
            "type": "string"
          },
          "actorName": {
            "description": "\"username/actor-name\"",
            "type": "string"
          },
          "apifyConsoleUrl": {
            "description": "Personalized Apify Console link to the run; present only for Console sessions",
            "type": "string"
          },
          "exitCode": {
            "description": "Actor process exit code; populated for terminal states (especially FAILED)",
            "type": "number"
          },
          "finishedAt": {
            "description": "ISO timestamp when the run finished (terminal states only)",
            "type": "string"
          },
          "nextStep": {
            "description": "One primary follow-up action with identifiers interpolated",
            "type": "string"
          },
          "runId": {
            "description": "Actor run ID",
            "type": "string"
          },
          "startedAt": {
            "description": "ISO timestamp when the run started",
            "type": "string"
          },
          "stats": {
            "description": "Run statistics",
            "properties": {
              "computeUnits": {
                "type": "number"
              },
              "memMaxBytes": {
                "type": "number"
              },
              "runTimeSecs": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "status": {
            "description": "Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED",
            "type": "string"
          },
          "statusMessage": {
            "description": "Pass-through from Apify run.statusMessage",
            "type": "string"
          },
          "storages": {
            "description": "Dataset and key-value store metadata, keyed by alias. \"default\" is always the primary entry.",
            "properties": {
              "datasets": {
                "additionalProperties": {
                  "properties": {
                    "apifyConsoleUrl": {
                      "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
                      "type": "string"
                    },
                    "fields": {
                      "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "id": {
                      "description": "Dataset ID",
                      "type": "string"
                    },
                    "inflatedBytes": {
                      "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.",
                      "type": "number"
                    },
                    "itemCount": {
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "description": "Map of dataset alias → metadata. Key \"default\" is always the run's primary dataset.",
                "properties": {
                  "default": {
                    "properties": {
                      "apifyConsoleUrl": {
                        "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
                        "type": "string"
                      },
                      "fields": {
                        "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "id": {
                        "description": "Dataset ID",
                        "type": "string"
                      },
                      "inflatedBytes": {
                        "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.",
                        "type": "number"
                      },
                      "itemCount": {
                        "type": "number"
                      },
                      "name": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "default"
                ],
                "type": "object"
              },
              "keyValueStores": {
                "additionalProperties": {
                  "properties": {
                    "apifyConsoleUrl": {
                      "description": "Personalized Apify Console link to the store; present only for Console sessions",
                      "type": "string"
                    },
                    "id": {
                      "description": "Key-value store ID",
                      "type": "string"
                    },
                    "keyCount": {
                      "description": "Total number of keys (omitted when truncated)",
                      "type": "number"
                    },
                    "keys": {
                      "description": "Up to 50 key names",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "name": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "description": "Map of key-value store alias → metadata. Key \"default\" is always the run's primary store.",
                "properties": {
                  "default": {
                    "properties": {
                      "apifyConsoleUrl": {
                        "description": "Personalized Apify Console link to the store; present only for Console sessions",
                        "type": "string"
                      },
                      "id": {
                        "description": "Key-value store ID",
                        "type": "string"
                      },
                      "keyCount": {
                        "description": "Total number of keys (omitted when truncated)",
                        "type": "number"
                      },
                      "keys": {
                        "description": "Up to 50 key names",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "name": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "default"
                ],
                "type": "object"
              }
            },
            "type": "object"
          },
          "summary": {
            "description": "Past-tense summary of the run state",
            "type": "string"
          }
        },
        "required": [
          "runId",
          "actorId",
          "status",
          "storages",
          "summary",
          "nextStep"
        ],
        "type": "object"
      },
      "title": "Abort Actor run"
    },
    {
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "apify/rag-web-browser"
      },
      "description": "This tool calls the Actor \"apify/rag-web-browser\" and retrieves its output results.\nUse this tool instead of the \"call-actor\" if user requests this specific Actor.\nActor description: Web search and fetch tool for AI agents and RAG pipelines. It queries Google Search, scrapes the top N pages using a full web browser, and returns their content as clean Markdown for further processing by an LLM. Can also fetch individual URLs.\n\nUse this tool when user wants to GET or RETRIEVE actual data immediately (one-time data retrieval).\nThis tool scrapes the data itself - it does NOT just find tools.\n\nExamples of when to use:\n- User wants current/immediate data (e.g., \"Get flight prices for tomorrow\", \"What's the weather today?\")\n- User needs to fetch specific content now (e.g., \"Fetch news articles from CNN\", \"Get product info from Amazon\")\n- User has time indicators like \"today\", \"current\", \"latest\", \"recent\", \"now\"\n\nThis is for general web scraping and immediate data needs. For repeated/scheduled scraping of specific platforms (e-commerce, social media), consider suggesting a specialized Actor from the Store for better performance and reliability.\nWhen the user provides one specific URL and wants that page's full or verbatim content, prefer the dedicated apify/web-fetch tool when it is available - this tool is for searching and scraping by query.\nIf a scraped page comes back blocked or empty (e.g. the crawl reports a 403 or the page text is missing), do not give up: retry that URL with the apify/web-fetch tool when it is available - its anti-bot fetching gets through blocks this tool cannot.",
      "inputSchema": {
        "$id": "https://apify.com/mcp/apify--rag-web-browser/schema.json",
        "description": "Web browser for OpenAI Assistants, RAG pipelines, or AI agents, similar to a web browser in ChatGPT. It queries Google Search, scrapes the top N pages, and returns their content as Markdown for further processing by an LLM. It can also scrape individual URLs.",
        "properties": {
          "maxResults": {
            "default": 3,
            "description": "The maximum number of top organic Google Search results whose web pages will be extracted. If `query` is a URL, then this field is ignored and the Actor only fetches the specific web page.\nExample values: 3",
            "examples": [
              3
            ],
            "title": "Maximum results",
            "type": "integer"
          },
          "outputFormats": {
            "default": [
              "markdown"
            ],
            "description": "Select one or more formats to which the target web pages will be extracted and saved in the resulting dataset.\nExample values: [\"markdown\"]",
            "examples": [
              "markdown"
            ],
            "items": {
              "enum": [
                "text",
                "markdown",
                "html"
              ],
              "enumTitles": [
                "Plain text",
                "Markdown",
                "HTML"
              ],
              "type": "string"
            },
            "title": "Output formats",
            "type": "array"
          },
          "query": {
            "description": "**REQUIRED** Enter Google Search keywords or a URL of a specific web page. The keywords might include the [advanced search operators](https://blog.apify.com/how-to-scrape-google-like-a-pro/). Examples:\n\n- \u003ccode\u003esan francisco weather\u003c/code\u003e\n- \u003ccode\u003ehttps://www.cnn.com\u003c/code\u003e\n- \u003ccode\u003efunction calling site:openai.com\u003c/code\u003e\nExample values: \"web browser for RAG pipelines -site:reddit.com\"",
            "examples": [
              "web browser for RAG pipelines -site:reddit.com"
            ],
            "prefill": "web browser for RAG pipelines -site:reddit.com",
            "title": "Search term or URL",
            "type": "string"
          },
          "waitSecs": {
            "default": 30,
            "description": "Max seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.",
            "maximum": 45,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "query"
        ],
        "title": "RAG Web Browser",
        "type": "object"
      },
      "name": "apify--rag-web-browser",
      "outputSchema": {
        "properties": {
          "actorId": {
            "description": "Stable Apify Actor ID from the run record",
            "type": "string"
          },
          "actorName": {
            "description": "\"username/actor-name\"",
            "type": "string"
          },
          "apifyConsoleUrl": {
            "description": "Personalized Apify Console link to the run; present only for Console sessions",
            "type": "string"
          },
          "exitCode": {
            "description": "Actor process exit code; populated for terminal states (especially FAILED)",
            "type": "number"
          },
          "finishedAt": {
            "description": "ISO timestamp when the run finished (terminal states only)",
            "type": "string"
          },
          "nextStep": {
            "description": "One primary follow-up action with identifiers interpolated",
            "type": "string"
          },
          "runId": {
            "description": "Actor run ID",
            "type": "string"
          },
          "startedAt": {
            "description": "ISO timestamp when the run started",
            "type": "string"
          },
          "stats": {
            "description": "Run statistics",
            "properties": {
              "computeUnits": {
                "type": "number"
              },
              "memMaxBytes": {
                "type": "number"
              },
              "runTimeSecs": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "status": {
            "description": "Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED",
            "type": "string"
          },
          "statusMessage": {
            "description": "Pass-through from Apify run.statusMessage",
            "type": "string"
          },
          "storages": {
            "description": "Dataset and key-value store metadata, keyed by alias. \"default\" is always the primary entry.",
            "properties": {
              "datasets": {
                "additionalProperties": {
                  "properties": {
                    "apifyConsoleUrl": {
                      "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
                      "type": "string"
                    },
                    "fields": {
                      "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "id": {
                      "description": "Dataset ID",
                      "type": "string"
                    },
                    "inflatedBytes": {
                      "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.",
                      "type": "number"
                    },
                    "itemCount": {
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "description": "Map of dataset alias → metadata. Key \"default\" is always the run's primary dataset.",
                "properties": {
                  "default": {
                    "properties": {
                      "apifyConsoleUrl": {
                        "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
                        "type": "string"
                      },
                      "fields": {
                        "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "id": {
                        "description": "Dataset ID",
                        "type": "string"
                      },
                      "inflatedBytes": {
                        "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.",
                        "type": "number"
                      },
                      "itemCount": {
                        "type": "number"
                      },
                      "itemsSchema": {
                        "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.",
                        "properties": {
                          "crawl": {
                            "properties": {
                              "httpStatusCode": {
                                "type": "number"
                              },
                              "httpStatusMessage": {
                                "type": "string"
                              },
                              "loadedAt": {
                                "type": "string"
                              },
                              "requestStatus": {
                                "type": "string"
                              },
                              "uniqueKey": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "markdown": {
                            "type": "string"
                          },
                          "metadata": {
                            "properties": {
                              "author": {
                                "type": "string"
                              },
                              "canonicalUrl": {
                                "type": "string"
                              },
                              "description": {
                                "type": "string"
                              },
                              "headers": {
                                "properties": {
                                  "access-control-allow-headers": {
                                    "type": "string"
                                  },
                                  "access-control-allow-origin": {
                                    "type": "string"
                                  },
                                  "akamai-cache-status": {
                                    "type": "string"
                                  },
                                  "alt-svc": {
                                    "type": "string"
                                  },
                                  "cache-control": {
                                    "type": "string"
                                  },
                                  "cf-cache-status": {
                                    "type": "string"
                                  },
                                  "cf-ray": {
                                    "type": "string"
                                  },
                                  "content-encoding": {
                                    "type": "string"
                                  },
                                  "content-length": {
                                    "type": "string"
                                  },
                                  "content-security-policy": {
                                    "type": "string"
                                  },
                                  "content-type": {
                                    "type": "string"
                                  },
                                  "date": {
                                    "type": "string"
                                  },
                                  "etag": {
                                    "type": "string"
                                  },
                                  "expires": {
                                    "type": "string"
                                  },
                                  "fe": {
                                    "type": "string"
                                  },
                                  "last-modified": {
                                    "type": "string"
                                  },
                                  "link": {
                                    "type": "string"
                                  },
                                  "nel": {
                                    "type": "string"
                                  },
                                  "permissions-policy": {
                                    "type": "string"
                                  },
                                  "pragma": {
                                    "type": "string"
                                  },
                                  "referrer-policy": {
                                    "type": "string"
                                  },
                                  "report-to": {
                                    "type": "string"
                                  },
                                  "rndr-id": {
                                    "type": "string"
                                  },
                                  "server": {
                                    "type": "string"
                                  },
                                  "server-timing": {
                                    "type": "string"
                                  },
                                  "set-cookie": {},
                                  "strict-transport-security": {
                                    "type": "string"
                                  },
                                  "vary": {
                                    "type": "string"
                                  },
                                  "via": {
                                    "type": "string"
                                  },
                                  "x-akamai-transformed": {
                                    "type": "string"
                                  },
                                  "x-consent-page": {
                                    "type": "string"
                                  },
                                  "x-content-type-options": {
                                    "type": "string"
                                  },
                                  "x-edgeconnect-midmile-rtt": {
                                    "type": "string"
                                  },
                                  "x-edgeconnect-origin-mex-latency": {
                                    "type": "string"
                                  },
                                  "x-frame-options": {
                                    "type": "string"
                                  },
                                  "x-li-fabric": {
                                    "type": "string"
                                  },
                                  "x-li-pop": {
                                    "type": "string"
                                  },
                                  "x-li-proto": {
                                    "type": "string"
                                  },
                                  "x-li-uuid": {
                                    "type": "string"
                                  },
                                  "x-origin-server": {
                                    "type": "string"
                                  },
                                  "x-pathname": {
                                    "type": "string"
                                  },
                                  "x-powered-by": {
                                    "type": "string"
                                  },
                                  "x-xss-protection": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "jsonLd": {
                                "items": {
                                  "properties": {
                                    "@context": {
                                      "type": "string"
                                    },
                                    "@id": {
                                      "type": "string"
                                    },
                                    "@type": {
                                      "type": "string"
                                    },
                                    "address": {
                                      "properties": {
                                        "@type": {
                                          "type": "string"
                                        },
                                        "addressCountry": {
                                          "type": "string"
                                        },
                                        "addressLocality": {
                                          "type": "string"
                                        },
                                        "addressRegion": {
                                          "type": "string"
                                        },
                                        "postalCode": {
                                          "type": "string"
                                        },
                                        "streetAddress": {
                                          "type": "string"
                                        }
                                      },
                                      "type": "object"
                                    },
                                    "alternateName": {
                                      "items": {
                                        "type": "string"
                                      },
                                      "type": "array"
                                    },
                                    "author": {
                                      "properties": {
                                        "@type": {
                                          "type": "string"
                                        },
                                        "name": {
                                          "type": "string"
                                        },
                                        "url": {
                                          "type": "string"
                                        }
                                      },
                                      "type": "object"
                                    },
                                    "breadcrumb": {
                                      "properties": {
                                        "@id": {
                                          "type": "string"
                                        }
                                      },
                                      "type": "object"
                                    },
                                    "contactPoint": {
                                      "items": {
                                        "properties": {
                                          "@type": {
                                            "type": "string"
                                          },
                                          "contactType": {
                                            "type": "string"
                                          },
                                          "email": {
                                            "type": "string"
                                          }
                                        },
                                        "type": "object"
                                      },
                                      "type": "array"
                                    },
                                    "dateModified": {
                                      "type": "string"
                                    },
                                    "datePublished": {
                                      "type": "string"
                                    },
                                    "description": {
                                      "type": "string"
                                    },
                                    "founder": {
                                      "properties": {
                                        "@type": {
                                          "type": "string"
                                        },
                                        "image": {
                                          "properties": {
                                            "@type": {
                                              "type": "string"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "type": "object"
                                        },
                                        "jobTitle": {
                                          "type": "string"
                                        },
                                        "name": {
                                          "type": "string"
                                        },
                                        "sameAs": {
                                          "items": {
                                            "type": "string"
                                          },
                                          "type": "array"
                                        }
                                      },
                                      "type": "object"
                                    },
                                    "headline": {
                                      "type": "string"
                                    },
                                    "image": {
                                      "type": "string"
                                    },
                                    "inLanguage": {
                                      "type": "string"
                                    },
                                    "isPartOf": {
                                      "properties": {
                                        "@id": {
                                          "type": "string"
                                        }
                                      },
                                      "type": "object"
                                    },
                                    "itemListElement": {
                                      "items": {
                                        "properties": {
                                          "@type": {
                                            "type": "string"
                                          },
                                          "description": {
                                            "type": "string"
                                          },
                                          "disambiguatingDescription": {
                                            "type": "string"
                                          },
                                          "item": {
                                            "type": "string"
                                          },
                                          "name": {
                                            "type": "string"
                                          },
                                          "position": {
                                            "type": "number"
                                          },
                                          "url": {
                                            "type": "string"
                                          }
                                        },
                                        "type": "object"
                                      },
                                      "type": "array"
                                    },
                                    "legalName": {
                                      "type": "string"
                                    },
                                    "logo": {
                                      "properties": {
                                        "@type": {
                                          "type": "string"
                                        },
                                        "url": {
                                          "type": "string"
                                        }
                                      },
                                      "type": "object"
                                    },
                                    "mainEntity": {
                                      "items": {
                                        "properties": {
                                          "@type": {
                                            "type": "string"
                                          },
                                          "acceptedAnswer": {
                                            "properties": {
                                              "@type": {
                                                "type": "string"
                                              },
                                              "text": {
                                                "type": "string"
                                              }
                                            },
                                            "type": "object"
                                          },
                                          "name": {
                                            "type": "string"
                                          }
                                        },
                                        "type": "object"
                                      },
                                      "type": "array"
                                    },
                                    "mainEntityOfPage": {
                                      "type": "string"
                                    },
                                    "name": {
                                      "type": "string"
                                    },
                                    "publisher": {
                                      "properties": {
                                        "@id": {
                                          "type": "string"
                                        },
                                        "@type": {
                                          "type": "string"
                                        },
                                        "name": {
                                          "type": "string"
                                        },
                                        "url": {
                                          "type": "string"
                                        }
                                      },
                                      "type": "object"
                                    },
                                    "reviewedBy": {
                                      "properties": {
                                        "@type": {
                                          "type": "string"
                                        },
                                        "name": {
                                          "type": "string"
                                        },
                                        "url": {
                                          "type": "string"
                                        }
                                      },
                                      "type": "object"
                                    },
                                    "sameAs": {
                                      "items": {
                                        "type": "string"
                                      },
                                      "type": "array"
                                    },
                                    "url": {
                                      "type": "string"
                                    }
                                  },
                                  "type": "object"
                                },
                                "type": "array"
                              },
                              "keywords": {
                                "type": "string"
                              },
                              "languageCode": {
                                "type": "string"
                              },
                              "openGraph": {
                                "items": {
                                  "properties": {
                                    "content": {
                                      "type": "string"
                                    },
                                    "property": {
                                      "type": "string"
                                    }
                                  },
                                  "type": "object"
                                },
                                "type": "array"
                              },
                              "redirectedUrl": {
                                "type": "string"
                              },
                              "title": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "query": {
                            "type": "string"
                          },
                          "searchResult": {
                            "properties": {
                              "description": {
                                "type": "string"
                              },
                              "rank": {
                                "type": "number"
                              },
                              "resultType": {
                                "type": "string"
                              },
                              "title": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "text": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "name": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "default"
                ],
                "type": "object"
              },
              "keyValueStores": {
                "additionalProperties": {
                  "properties": {
                    "apifyConsoleUrl": {
                      "description": "Personalized Apify Console link to the store; present only for Console sessions",
                      "type": "string"
                    },
                    "id": {
                      "description": "Key-value store ID",
                      "type": "string"
                    },
                    "keyCount": {
                      "description": "Total number of keys (omitted when truncated)",
                      "type": "number"
                    },
                    "keys": {
                      "description": "Up to 50 key names",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "name": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "description": "Map of key-value store alias → metadata. Key \"default\" is always the run's primary store.",
                "properties": {
                  "default": {
                    "properties": {
                      "apifyConsoleUrl": {
                        "description": "Personalized Apify Console link to the store; present only for Console sessions",
                        "type": "string"
                      },
                      "id": {
                        "description": "Key-value store ID",
                        "type": "string"
                      },
                      "keyCount": {
                        "description": "Total number of keys (omitted when truncated)",
                        "type": "number"
                      },
                      "keys": {
                        "description": "Up to 50 key names",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "name": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "default"
                ],
                "type": "object"
              }
            },
            "type": "object"
          },
          "summary": {
            "description": "Past-tense summary of the run state",
            "type": "string"
          }
        },
        "required": [
          "runId",
          "actorId",
          "status",
          "storages",
          "summary",
          "nextStep"
        ],
        "type": "object"
      },
      "title": "apify/rag-web-browser",
      "icons": [
        {
          "src": "https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/3ox4R101TgZz67sLr/SGmCeTBVS4pdLKrXM-2815986.png",
          "mimeType": "image/png"
        }
      ]
    },
    {
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "apify/web-fetch"
      },
      "description": "This tool calls the Actor \"apify/web-fetch\" and retrieves its output results.\nUse this tool instead of the \"call-actor\" if user requests this specific Actor.\nActor description: Download any web page by URL and convert it to clean Markdown, plain text, HTML, and other formats. Automatically renders JavaScript and works around bot blocking. The Actor provides a real-time API for quick response times.\n\nUse this tool to fetch a specific http(s) URL and return its complete content (one URL per call; http and https only).\nIt renders JavaScript and bypasses anti-bot protection, so it also retrieves pages where a plain HTTP fetch gets blocked, fails with an error such as 403 or 429, or returns incomplete content.\nThe page comes back verbatim - full content, no summarization - as Markdown, plain text, HTML, the raw response body, or the list of links on the page.\n\nExamples of when to use:\n- User provides a URL and wants its content, its data or links, or an answer that requires reading that page\n- A previous attempt to fetch a page was blocked, returned an error or CAPTCHA, or came back incomplete because the page needs JavaScript rendering\n- Verbatim page content is needed, e.g. for quoting, extraction, or archiving\n\nThis tool does not search the web - it needs a URL. To find pages by query, use a web search tool instead.\nIf the exact URL cannot be fetched (e.g. a non-http(s) scheme), say so rather than silently substituting a different URL.",
      "inputSchema": {
        "$id": "https://apify.com/mcp/apify--web-fetch/schema.json",
        "description": "Fetch a URL as Markdown, HTML, plain text, links, or the original raw format.",
        "properties": {
          "formats": {
            "description": "The Actor converts the fetched content to the requested format(s). A format that doesn't apply to the content type returns `null`; if none of the requested formats apply, the run fails. The Input form is prefilled with `markdown`; clear it to auto-select `markdown` for HTML/PDF, `text` for text-based content, or `raw` for images, archives, and other binary content.\nExample values: [\"markdown\"]",
            "examples": [
              "markdown"
            ],
            "items": {
              "enum": [
                "markdown",
                "html",
                "text",
                "links",
                "raw"
              ],
              "enumTitles": [
                "Markdown",
                "HTML",
                "Plain text",
                "Links",
                "Raw"
              ],
              "type": "string"
            },
            "prefill": [
              "markdown"
            ],
            "title": "Output formats",
            "type": "array"
          },
          "headers": {
            "description": "Custom HTTP headers to send to the target URL, as an object of header names and values, e.g. `{ \"Accept-Language\": \"fr-FR\", \"Authorization\": \"Bearer TARGET_SITE_TOKEN\" }`.",
            "title": "Custom headers",
            "type": "object"
          },
          "url": {
            "description": "**REQUIRED** The URL to fetch. Only `http://` and `https://` schemes are supported; others are rejected.\nExample values: \"https://apify.com\" http(s) URLs only - for any other scheme (e.g. ftp:), tell the user this tool cannot fetch it rather than substituting a different URL.",
            "examples": [
              "https://apify.com"
            ],
            "prefill": "https://apify.com",
            "title": "URL",
            "type": "string"
          },
          "waitSecs": {
            "default": 30,
            "description": "Max seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.",
            "maximum": 45,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "url"
        ],
        "title": "Web Fetch input",
        "type": "object"
      },
      "name": "apify--web-fetch",
      "outputSchema": {
        "properties": {
          "actorId": {
            "description": "Stable Apify Actor ID from the run record",
            "type": "string"
          },
          "actorName": {
            "description": "\"username/actor-name\"",
            "type": "string"
          },
          "apifyConsoleUrl": {
            "description": "Personalized Apify Console link to the run; present only for Console sessions",
            "type": "string"
          },
          "exitCode": {
            "description": "Actor process exit code; populated for terminal states (especially FAILED)",
            "type": "number"
          },
          "finishedAt": {
            "description": "ISO timestamp when the run finished (terminal states only)",
            "type": "string"
          },
          "nextStep": {
            "description": "One primary follow-up action with identifiers interpolated",
            "type": "string"
          },
          "runId": {
            "description": "Actor run ID",
            "type": "string"
          },
          "startedAt": {
            "description": "ISO timestamp when the run started",
            "type": "string"
          },
          "stats": {
            "description": "Run statistics",
            "properties": {
              "computeUnits": {
                "type": "number"
              },
              "memMaxBytes": {
                "type": "number"
              },
              "runTimeSecs": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "status": {
            "description": "Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED",
            "type": "string"
          },
          "statusMessage": {
            "description": "Pass-through from Apify run.statusMessage",
            "type": "string"
          },
          "storages": {
            "description": "Dataset and key-value store metadata, keyed by alias. \"default\" is always the primary entry.",
            "properties": {
              "datasets": {
                "additionalProperties": {
                  "properties": {
                    "apifyConsoleUrl": {
                      "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
                      "type": "string"
                    },
                    "fields": {
                      "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "id": {
                      "description": "Dataset ID",
                      "type": "string"
                    },
                    "inflatedBytes": {
                      "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.",
                      "type": "number"
                    },
                    "itemCount": {
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "description": "Map of dataset alias → metadata. Key \"default\" is always the run's primary dataset.",
                "properties": {
                  "default": {
                    "properties": {
                      "apifyConsoleUrl": {
                        "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
                        "type": "string"
                      },
                      "fields": {
                        "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "id": {
                        "description": "Dataset ID",
                        "type": "string"
                      },
                      "inflatedBytes": {
                        "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.",
                        "type": "number"
                      },
                      "itemCount": {
                        "type": "number"
                      },
                      "itemsSchema": {
                        "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.",
                        "properties": {
                          "fetch": {
                            "properties": {
                              "contentLengthBytes": {
                                "type": "number"
                              },
                              "contentType": {
                                "type": "string"
                              },
                              "httpStatusCode": {
                                "type": "number"
                              },
                              "loadedTime": {
                                "type": "string"
                              },
                              "loadedUrl": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "markdown": {
                            "type": "string"
                          },
                          "metadata": {
                            "properties": {
                              "author": {
                                "type": "null"
                              },
                              "canonicalUrl": {
                                "type": "string"
                              },
                              "description": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "headers": {
                                "properties": {
                                  "accept-ranges": {
                                    "type": "string"
                                  },
                                  "access-control-allow-credentials": {
                                    "type": "string"
                                  },
                                  "access-control-allow-headers": {
                                    "type": "string"
                                  },
                                  "access-control-allow-methods": {
                                    "type": "string"
                                  },
                                  "access-control-allow-origin": {
                                    "type": "string"
                                  },
                                  "access-control-expose-headers": {
                                    "type": "string"
                                  },
                                  "age": {
                                    "type": "string"
                                  },
                                  "alt-svc": {
                                    "type": "string"
                                  },
                                  "cache-control": {
                                    "type": "string"
                                  },
                                  "cf-cache-status": {
                                    "type": "string"
                                  },
                                  "cf-ray": {
                                    "type": "string"
                                  },
                                  "connection": {
                                    "type": "string"
                                  },
                                  "content-disposition": {
                                    "type": "string"
                                  },
                                  "content-security-policy": {
                                    "type": "string"
                                  },
                                  "content-security-policy-report-only": {
                                    "type": "string"
                                  },
                                  "content-type": {
                                    "type": "string"
                                  },
                                  "date": {
                                    "type": "string"
                                  },
                                  "expires": {
                                    "type": "string"
                                  },
                                  "keep-alive": {
                                    "type": "string"
                                  },
                                  "last-modified": {
                                    "type": "string"
                                  },
                                  "link": {
                                    "type": "string"
                                  },
                                  "nel": {
                                    "type": "string"
                                  },
                                  "permissions-policy": {
                                    "type": "string"
                                  },
                                  "referrer-policy": {
                                    "type": "string"
                                  },
                                  "report-to": {
                                    "type": "string"
                                  },
                                  "server": {
                                    "type": "string"
                                  },
                                  "server-timing": {
                                    "type": "string"
                                  },
                                  "set-cookie": {
                                    "type": "string"
                                  },
                                  "strict-transport-security": {
                                    "type": "string"
                                  },
                                  "transfer-encoding": {
                                    "type": "string"
                                  },
                                  "vary": {
                                    "type": "string"
                                  },
                                  "via": {
                                    "type": "string"
                                  },
                                  "x-amz-cf-id": {
                                    "type": "string"
                                  },
                                  "x-amz-cf-pop": {
                                    "type": "string"
                                  },
                                  "x-analytics": {
                                    "type": "string"
                                  },
                                  "x-apify-unblocker-route": {
                                    "type": "string"
                                  },
                                  "x-cache": {
                                    "type": "string"
                                  },
                                  "x-cache-status": {
                                    "type": "string"
                                  },
                                  "x-client-ip": {
                                    "type": "string"
                                  },
                                  "x-content-type-options": {
                                    "type": "string"
                                  },
                                  "x-frame-options": {
                                    "type": "string"
                                  },
                                  "x-gateway-cache-key": {
                                    "type": "string"
                                  },
                                  "x-gateway-cache-status": {
                                    "type": "string"
                                  },
                                  "x-gateway-request-id": {
                                    "type": "string"
                                  },
                                  "x-gateway-skip-cache": {
                                    "type": "string"
                                  },
                                  "x-matched-path": {
                                    "type": "string"
                                  },
                                  "x-ratelimit-limit": {
                                    "type": "string"
                                  },
                                  "x-ratelimit-remaining": {
                                    "type": "string"
                                  },
                                  "x-ratelimit-reset": {
                                    "type": "string"
                                  },
                                  "x-request-id": {
                                    "type": "string"
                                  },
                                  "x-ssr-universal-build": {
                                    "type": "string"
                                  },
                                  "x-vercel-cache": {
                                    "type": "string"
                                  },
                                  "x-vercel-id": {
                                    "type": "string"
                                  },
                                  "x-xss-protection": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "jsonLd": {},
                              "keywords": {
                                "type": "null"
                              },
                              "languageCode": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "openGraph": {
                                "items": {
                                  "properties": {
                                    "content": {
                                      "type": "string"
                                    },
                                    "property": {
                                      "type": "string"
                                    }
                                  },
                                  "type": "object"
                                },
                                "type": "array"
                              },
                              "title": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            },
                            "type": "object"
                          },
                          "raw": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "name": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "default"
                ],
                "type": "object"
              },
              "keyValueStores": {
                "additionalProperties": {
                  "properties": {
                    "apifyConsoleUrl": {
                      "description": "Personalized Apify Console link to the store; present only for Console sessions",
                      "type": "string"
                    },
                    "id": {
                      "description": "Key-value store ID",
                      "type": "string"
                    },
                    "keyCount": {
                      "description": "Total number of keys (omitted when truncated)",
                      "type": "number"
                    },
                    "keys": {
                      "description": "Up to 50 key names",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "name": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "description": "Map of key-value store alias → metadata. Key \"default\" is always the run's primary store.",
                "properties": {
                  "default": {
                    "properties": {
                      "apifyConsoleUrl": {
                        "description": "Personalized Apify Console link to the store; present only for Console sessions",
                        "type": "string"
                      },
                      "id": {
                        "description": "Key-value store ID",
                        "type": "string"
                      },
                      "keyCount": {
                        "description": "Total number of keys (omitted when truncated)",
                        "type": "number"
                      },
                      "keys": {
                        "description": "Up to 50 key names",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "name": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "default"
                ],
                "type": "object"
              }
            },
            "type": "object"
          },
          "summary": {
            "description": "Past-tense summary of the run state",
            "type": "string"
          }
        },
        "required": [
          "runId",
          "actorId",
          "status",
          "storages",
          "summary",
          "nextStep"
        ],
        "type": "object"
      },
      "title": "apify/web-fetch",
      "icons": [
        {
          "src": "https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/ZscMwFR5H7eCtWtyh-actor-a6Sqhlnt4touIHTub-UvwxrvFGCH-ZscMwFR5H7eCtWtyh-actor-oK4fp52ayRqNayFTw-n7k1Ktjufz-Page_scrape",
          "mimeType": "image/png"
        }
      ]
    },
    {
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "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 \u003e 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",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "description": "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\").",
            "type": "string"
          },
          "callOptions": {
            "additionalProperties": false,
            "description": "Optional run config: memory (MB), timeout (s), build, maxItems (pay-per-result cap), maxTotalChargeUsd (pay-per-event cap).",
            "properties": {
              "build": {
                "description": "Tag or number of the Actor build to run (e.g., \"latest\", \"beta\", \"1.2.345\"). If omitted, the Actor's default build is used.",
                "type": "string"
              },
              "maxItems": {
                "description": "Pay-per-result Actors only — ignored otherwise.\nCaps billed dataset items; does NOT limit production. Prefer the Actor's own input fields (e.g. maxResults) to bound work.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "maxTotalChargeUsd": {
                "description": "Pay-per-event Actors only — ignored otherwise.\nCaps total USD billed; does NOT limit work. Prefer the Actor's own input fields to bound work.",
                "exclusiveMinimum": 0,
                "type": "number"
              },
              "memory": {
                "description": "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.",
                "maximum": 32768,
                "minimum": 128,
                "type": "number"
              },
              "timeout": {
                "description": "Maximum runtime for the Actor in seconds. After this time elapses, the Actor will be automatically terminated.\nUse 0 for infinite timeout (no time limit).",
                "minimum": 0,
                "type": "number"
              }
            },
            "type": "object"
          },
          "input": {
            "additionalProperties": {},
            "description": "The input JSON to pass to the Actor. Required.",
            "properties": {},
            "type": "object"
          },
          "waitSecs": {
            "default": 30,
            "description": "Seconds to wait for completion (0–45, default 30). Returns with current run status if not terminal within waitSecs.",
            "maximum": 45,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "actor",
          "input"
        ],
        "type": "object"
      },
      "name": "call-actor",
      "outputSchema": {
        "properties": {
          "actorId": {
            "description": "Stable Apify Actor ID from the run record",
            "type": "string"
          },
          "actorName": {
            "description": "\"username/actor-name\"",
            "type": "string"
          },
          "apifyConsoleUrl": {
            "description": "Personalized Apify Console link to the run; present only for Console sessions",
            "type": "string"
          },
          "exitCode": {
            "description": "Actor process exit code; populated for terminal states (especially FAILED)",
            "type": "number"
          },
          "finishedAt": {
            "description": "ISO timestamp when the run finished (terminal states only)",
            "type": "string"
          },
          "nextStep": {
            "description": "One primary follow-up action with identifiers interpolated",
            "type": "string"
          },
          "runId": {
            "description": "Actor run ID",
            "type": "string"
          },
          "startedAt": {
            "description": "ISO timestamp when the run started",
            "type": "string"
          },
          "stats": {
            "description": "Run statistics",
            "properties": {
              "computeUnits": {
                "type": "number"
              },
              "memMaxBytes": {
                "type": "number"
              },
              "runTimeSecs": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "status": {
            "description": "Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED",
            "type": "string"
          },
          "statusMessage": {
            "description": "Pass-through from Apify run.statusMessage",
            "type": "string"
          },
          "storages": {
            "description": "Dataset and key-value store metadata, keyed by alias. \"default\" is always the primary entry.",
            "properties": {
              "datasets": {
                "additionalProperties": {
                  "properties": {
                    "apifyConsoleUrl": {
                      "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
                      "type": "string"
                    },
                    "fields": {
                      "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "id": {
                      "description": "Dataset ID",
                      "type": "string"
                    },
                    "inflatedBytes": {
                      "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.",
                      "type": "number"
                    },
                    "itemCount": {
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "description": "Map of dataset alias → metadata. Key \"default\" is always the run's primary dataset.",
                "properties": {
                  "default": {
                    "properties": {
                      "apifyConsoleUrl": {
                        "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
                        "type": "string"
                      },
                      "fields": {
                        "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "id": {
                        "description": "Dataset ID",
                        "type": "string"
                      },
                      "inflatedBytes": {
                        "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.",
                        "type": "number"
                      },
                      "itemCount": {
                        "type": "number"
                      },
                      "name": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "default"
                ],
                "type": "object"
              },
              "keyValueStores": {
                "additionalProperties": {
                  "properties": {
                    "apifyConsoleUrl": {
                      "description": "Personalized Apify Console link to the store; present only for Console sessions",
                      "type": "string"
                    },
                    "id": {
                      "description": "Key-value store ID",
                      "type": "string"
                    },
                    "keyCount": {
                      "description": "Total number of keys (omitted when truncated)",
                      "type": "number"
                    },
                    "keys": {
                      "description": "Up to 50 key names",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "name": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "description": "Map of key-value store alias → metadata. Key \"default\" is always the run's primary store.",
                "properties": {
                  "default": {
                    "properties": {
                      "apifyConsoleUrl": {
                        "description": "Personalized Apify Console link to the store; present only for Console sessions",
                        "type": "string"
                      },
                      "id": {
                        "description": "Key-value store ID",
                        "type": "string"
                      },
                      "keyCount": {
                        "description": "Total number of keys (omitted when truncated)",
                        "type": "number"
                      },
                      "keys": {
                        "description": "Up to 50 key names",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "name": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "default"
                ],
                "type": "object"
              }
            },
            "type": "object"
          },
          "summary": {
            "description": "Past-tense summary of the run state",
            "type": "string"
          }
        },
        "required": [
          "runId",
          "actorId",
          "status",
          "storages",
          "summary",
          "nextStep"
        ],
        "type": "object"
      },
      "title": "Call Actor"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "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?",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "description": "Actor ID or full name in the format \"username/name\", e.g., \"apify/rag-web-browser\".",
            "minLength": 1,
            "type": "string"
          },
          "output": {
            "additionalProperties": false,
            "description": "Specify which information to include in the response to save tokens.",
            "properties": {
              "description": {
                "description": "Include Actor description text only.",
                "type": "boolean"
              },
              "inputSchema": {
                "description": "Include required input parameters schema.",
                "type": "boolean"
              },
              "mcpTools": {
                "description": "List available tools (only for MCP server Actors).",
                "type": "boolean"
              },
              "metadata": {
                "description": "Include developer, categories, last modified date, and deprecation status.",
                "type": "boolean"
              },
              "outputSchema": {
                "description": "Include inferred output schema from recent successful runs (TypeScript type).",
                "type": "boolean"
              },
              "pricing": {
                "description": "Include pricing model and costs.",
                "type": "boolean"
              },
              "rating": {
                "description": "Include user rating (out of 5 stars).",
                "type": "boolean"
              },
              "readme": {
                "description": "Include Actor README documentation (summary when available, full otherwise).",
                "type": "boolean"
              },
              "stats": {
                "description": "Include usage statistics (users, runs, success rate).",
                "type": "boolean"
              }
            },
            "type": "object"
          }
        },
        "required": [
          "actor"
        ],
        "type": "object"
      },
      "name": "fetch-actor-details",
      "outputSchema": {
        "properties": {
          "actorInfo": {
            "properties": {
              "categories": {
                "description": "Actor categories",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "description": {
                "description": "Actor description",
                "type": "string"
              },
              "developer": {
                "properties": {
                  "isOfficialApify": {
                    "description": "Whether the actor is developed by Apify",
                    "type": "boolean"
                  },
                  "url": {
                    "description": "Developer profile URL",
                    "type": "string"
                  },
                  "username": {
                    "description": "Developer username",
                    "type": "string"
                  }
                },
                "required": [
                  "username",
                  "isOfficialApify",
                  "url"
                ],
                "type": "object"
              },
              "fullName": {
                "description": "Full Actor name (username/name)",
                "type": "string"
              },
              "id": {
                "description": "Actor ID",
                "type": "string"
              },
              "inputFields": {
                "description": "Compact JSON-Schema-shaped descriptor of the Actor input; only `type` is preserved per field.",
                "properties": {
                  "properties": {
                    "additionalProperties": {
                      "properties": {
                        "type": {
                          "description": "JSON Schema field type — string or array of strings."
                        }
                      },
                      "required": [
                        "type"
                      ],
                      "type": "object"
                    },
                    "description": "Map of input field name to its type descriptor.",
                    "type": "object"
                  },
                  "required": {
                    "description": "Names of required input fields.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "type": {
                    "description": "Always `\"object\"`.",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "properties"
                ],
                "type": "object"
              },
              "inputFieldsTotalCount": {
                "description": "Total number of input fields before truncation; present only when `inputFields` was truncated.",
                "type": "number"
              },
              "inputFieldsTruncated": {
                "description": "Present and `true` when `inputFields` was truncated; fetch the full schema via `fetch-actor-details`.",
                "type": "boolean"
              },
              "isDeprecated": {
                "description": "Whether the Actor is deprecated",
                "type": "boolean"
              },
              "modifiedAt": {
                "description": "Last modification date",
                "type": "string"
              },
              "pictureUrl": {
                "description": "Actor picture URL",
                "type": "string"
              },
              "pricing": {
                "properties": {
                  "eventDescriptionsNote": {
                    "description": "Note explaining that event descriptions were omitted and full details are available via fetch-actor-details",
                    "type": "string"
                  },
                  "eventDescriptionsOmitted": {
                    "description": "Whether event descriptions were omitted because the actor has many pricing events",
                    "type": "boolean"
                  },
                  "events": {
                    "description": "Event-based pricing information",
                    "items": {
                      "properties": {
                        "description": {
                          "description": "Event description",
                          "type": "string"
                        },
                        "priceUsd": {
                          "description": "Price in USD",
                          "type": "number"
                        },
                        "tieredPricing": {
                          "items": {
                            "properties": {
                              "priceUsd": {
                                "type": "number"
                              },
                              "tier": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "title": {
                          "description": "Event title",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "model": {
                    "description": "Pricing model (FREE, PRICE_PER_DATASET_ITEM, FLAT_PRICE_PER_MONTH, PAY_PER_EVENT)",
                    "type": "string"
                  },
                  "pricePerUnit": {
                    "description": "Price per unit (for non-free models)",
                    "type": "number"
                  },
                  "pricingNote": {
                    "description": "Note naming the resolved tier; only emitted in simplified mode when the actor has multiple tiers and they resolve consistently",
                    "type": "string"
                  },
                  "tieredPricing": {
                    "description": "Tiered pricing information",
                    "items": {
                      "properties": {
                        "pricePerUnit": {
                          "description": "Price per unit for this tier",
                          "type": "number"
                        },
                        "tier": {
                          "description": "Tier name",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "trialMinutes": {
                    "description": "Trial period in minutes",
                    "type": "number"
                  },
                  "unitName": {
                    "description": "Unit name for pricing",
                    "type": "string"
                  },
                  "userTier": {
                    "description": "The user's plan tier used to resolve pricing (always the user's tier, even if a different tier was used as fallback)",
                    "enum": [
                      "FREE",
                      "BRONZE",
                      "SILVER",
                      "GOLD",
                      "PLATINUM",
                      "DIAMOND"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "model"
                ],
                "type": "object"
              },
              "rating": {
                "properties": {
                  "average": {
                    "description": "Average rating",
                    "type": "number"
                  },
                  "count": {
                    "description": "Number of ratings",
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "stats": {
                "properties": {
                  "bookmarks": {
                    "description": "Number of bookmarks",
                    "type": "number"
                  },
                  "monthlyUsers": {
                    "description": "Monthly active users",
                    "type": "number"
                  },
                  "totalUsers": {
                    "description": "Total users",
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "title": {
                "description": "Actor title",
                "type": "string"
              },
              "url": {
                "description": "Actor URL",
                "type": "string"
              }
            },
            "required": [
              "url",
              "id",
              "fullName",
              "developer",
              "description",
              "categories",
              "isDeprecated"
            ],
            "type": "object"
          },
          "inputSchema": {
            "description": "Actor input schema.",
            "type": "object"
          },
          "mcpTools": {
            "description": "Markdown listing of MCP tools exposed by the Actor (only present when `output.mcpTools` is requested).",
            "type": "string"
          },
          "outputSchema": {
            "description": "Output schema inferred from successful runs.",
            "type": "object"
          },
          "readme": {
            "description": "Actor README summary when available, otherwise the full README documentation.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "title": "Fetch Actor details"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "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",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "url": {
            "description": "URL of the Apify documentation page to fetch. This should be the full URL, including the protocol (e.g., https://docs.apify.com/).",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "name": "fetch-apify-docs",
      "outputSchema": {
        "properties": {
          "content": {
            "description": "The full markdown content of the documentation page",
            "type": "string"
          },
          "url": {
            "description": "The documentation URL that was fetched",
            "type": "string"
          }
        },
        "required": [
          "url",
          "content"
        ],
        "type": "object"
      },
      "title": "Fetch Apify docs"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "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 \u003e 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",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "runId": {
            "description": "The ID of the Actor run.",
            "minLength": 1,
            "type": "string"
          },
          "waitSecs": {
            "default": 30,
            "description": "Maximum seconds to wait for the run to reach a terminal state (SUCCEEDED, FAILED, ABORTED, TIMED-OUT).\n0 returns immediately with the current status. Cap: 45. Default: 30.",
            "maximum": 45,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "runId"
        ],
        "type": "object"
      },
      "name": "get-actor-run",
      "outputSchema": {
        "properties": {
          "actorId": {
            "description": "Stable Apify Actor ID from the run record",
            "type": "string"
          },
          "actorName": {
            "description": "\"username/actor-name\"",
            "type": "string"
          },
          "apifyConsoleUrl": {
            "description": "Personalized Apify Console link to the run; present only for Console sessions",
            "type": "string"
          },
          "exitCode": {
            "description": "Actor process exit code; populated for terminal states (especially FAILED)",
            "type": "number"
          },
          "finishedAt": {
            "description": "ISO timestamp when the run finished (terminal states only)",
            "type": "string"
          },
          "nextStep": {
            "description": "One primary follow-up action with identifiers interpolated",
            "type": "string"
          },
          "runId": {
            "description": "Actor run ID",
            "type": "string"
          },
          "startedAt": {
            "description": "ISO timestamp when the run started",
            "type": "string"
          },
          "stats": {
            "description": "Run statistics",
            "properties": {
              "computeUnits": {
                "type": "number"
              },
              "memMaxBytes": {
                "type": "number"
              },
              "runTimeSecs": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "status": {
            "description": "Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED",
            "type": "string"
          },
          "statusMessage": {
            "description": "Pass-through from Apify run.statusMessage",
            "type": "string"
          },
          "storages": {
            "description": "Dataset and key-value store metadata, keyed by alias. \"default\" is always the primary entry.",
            "properties": {
              "datasets": {
                "additionalProperties": {
                  "properties": {
                    "apifyConsoleUrl": {
                      "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
                      "type": "string"
                    },
                    "fields": {
                      "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "id": {
                      "description": "Dataset ID",
                      "type": "string"
                    },
                    "inflatedBytes": {
                      "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.",
                      "type": "number"
                    },
                    "itemCount": {
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "description": "Map of dataset alias → metadata. Key \"default\" is always the run's primary dataset.",
                "properties": {
                  "default": {
                    "properties": {
                      "apifyConsoleUrl": {
                        "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
                        "type": "string"
                      },
                      "fields": {
                        "description": "Dataset field paths in dot notation (e.g. [\"metadata.url\"])",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "id": {
                        "description": "Dataset ID",
                        "type": "string"
                      },
                      "inflatedBytes": {
                        "description": "Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.",
                        "type": "number"
                      },
                      "itemCount": {
                        "type": "number"
                      },
                      "name": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "default"
                ],
                "type": "object"
              },
              "keyValueStores": {
                "additionalProperties": {
                  "properties": {
                    "apifyConsoleUrl": {
                      "description": "Personalized Apify Console link to the store; present only for Console sessions",
                      "type": "string"
                    },
                    "id": {
                      "description": "Key-value store ID",
                      "type": "string"
                    },
                    "keyCount": {
                      "description": "Total number of keys (omitted when truncated)",
                      "type": "number"
                    },
                    "keys": {
                      "description": "Up to 50 key names",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "name": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "description": "Map of key-value store alias → metadata. Key \"default\" is always the run's primary store.",
                "properties": {
                  "default": {
                    "properties": {
                      "apifyConsoleUrl": {
                        "description": "Personalized Apify Console link to the store; present only for Console sessions",
                        "type": "string"
                      },
                      "id": {
                        "description": "Key-value store ID",
                        "type": "string"
                      },
                      "keyCount": {
                        "description": "Total number of keys (omitted when truncated)",
                        "type": "number"
                      },
                      "keys": {
                        "description": "Up to 50 key names",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "name": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "default"
                ],
                "type": "object"
              }
            },
            "type": "object"
          },
          "summary": {
            "description": "Past-tense summary of the run state",
            "type": "string"
          }
        },
        "required": [
          "runId",
          "actorId",
          "status",
          "storages",
          "summary",
          "nextStep"
        ],
        "type": "object"
      },
      "title": "Get Actor run"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "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",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "clean": {
            "description": "If true, returns only non-empty items and skips hidden fields (starting with #). Shortcut for skipHidden=true and skipEmpty=true.",
            "type": "boolean"
          },
          "datasetId": {
            "description": "Dataset ID or username~dataset-name.",
            "minLength": 1,
            "type": "string"
          },
          "desc": {
            "description": "If true, results are returned in reverse order (newest to oldest).",
            "type": "boolean"
          },
          "fields": {
            "description": "Comma-separated list of fields to include in results. Fields in output are sorted as specified. Use dot notation for nested objects (e.g. \"metadata.url\"); the server auto-flattens parent prefixes.",
            "type": "string"
          },
          "flatten": {
            "description": "Comma-separated list of fields to flatten (e.g. flatten=\"metadata\" turns {\"metadata\":{\"url\":\"x\"}} into {\"metadata.url\":\"x\"}). Normally derived automatically from dot-notation in `fields`; specify only as a diagnostic override.",
            "type": "string"
          },
          "limit": {
            "description": "Maximum number of items to return. Default is 20.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "offset": {
            "description": "Number of items to skip at the start. Default is 0.",
            "type": "number"
          },
          "omit": {
            "description": "Comma-separated list of fields to exclude from results.",
            "type": "string"
          }
        },
        "required": [
          "datasetId"
        ],
        "type": "object"
      },
      "name": "get-dataset-items",
      "outputSchema": {
        "properties": {
          "apifyConsoleUrl": {
            "description": "Personalized Apify Console link to the dataset; present only for Console sessions",
            "type": "string"
          },
          "datasetId": {
            "description": "Dataset ID",
            "type": "string"
          },
          "itemCount": {
            "description": "Number of items returned",
            "type": "number"
          },
          "items": {
            "description": "Dataset items",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "limit": {
            "description": "Limit used for pagination",
            "type": "number"
          },
          "nextStep": {
            "description": "One follow-up action with tool name",
            "type": "string"
          },
          "offset": {
            "description": "Offset used for pagination",
            "type": "number"
          },
          "summary": {
            "description": "Summary of the result",
            "type": "string"
          },
          "totalItemCount": {
            "description": "Total items in dataset",
            "type": "number"
          }
        },
        "required": [
          "datasetId",
          "items",
          "itemCount",
          "totalItemCount",
          "offset",
          "limit",
          "summary",
          "nextStep"
        ],
        "type": "object"
      },
      "title": "Get dataset items"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "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",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "keyValueStoreId": {
            "description": "Key-value store ID or username~store-name.",
            "minLength": 1,
            "type": "string"
          },
          "recordKey": {
            "description": "Key of the record to retrieve.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "keyValueStoreId",
          "recordKey"
        ],
        "type": "object"
      },
      "name": "get-key-value-store-record",
      "outputSchema": {
        "properties": {
          "contentType": {
            "description": "MIME type of the stored value",
            "type": "string"
          },
          "key": {
            "description": "Record key",
            "type": "string"
          },
          "keyValueStoreId": {
            "description": "Key-value store ID",
            "type": "string"
          },
          "summary": {
            "description": "Summary of the result",
            "type": "string"
          },
          "value": {
            "description": "The stored value (JSON, text, or binary)"
          }
        },
        "required": [
          "keyValueStoreId",
          "key",
          "value",
          "summary"
        ],
        "type": "object"
      },
      "title": "Get key-value store record"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Report a problem"
      },
      "description": "Report a problem with Apify's MCP tools or Actors to the Apify team.\n\nCall it when:\n- A tool or Actor is missing, errors, times out, or returns a confusing, wrong, or empty result.\n- You cannot complete the user's request with the available tools.\n\nPut what you were doing and what went wrong in \"message\". Do NOT include personal data, credentials, secrets, or verbatim private conversation content — describe the issue in your own words.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "actorId": {
            "description": "Optional. The Actor this problem is about, e.g. apify/rag-web-browser.",
            "maxLength": 200,
            "type": "string"
          },
          "actorRunId": {
            "description": "Optional. The Actor run this problem is about.",
            "maxLength": 200,
            "type": "string"
          },
          "message": {
            "description": "What happened: the problem you hit. Required. Keep it to a few sentences (max 2000 characters).",
            "maxLength": 2000,
            "minLength": 1,
            "type": "string"
          },
          "relatedTools": {
            "description": "Optional. Names of the MCP tools involved in this problem (up to 20).",
            "items": {
              "maxLength": 100,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          }
        },
        "required": [
          "message"
        ],
        "type": "object"
      },
      "name": "report-problem",
      "outputSchema": {
        "properties": {
          "reported": {
            "description": "Always true; the problem report was submitted",
            "type": "boolean"
          }
        },
        "required": [
          "reported"
        ],
        "type": "object"
      },
      "title": "Report a problem"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "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",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "keywords": {
            "default": "",
            "description": "Space-separated keywords used to search pre-built solutions (Actors) in the Apify Store.\nThe search engine searches across the Actor's name, description, username, and README content.\n\nPass empty string (\"\") whenever the user has NOT named a specific platform\n(Instagram, Amazon, Google Maps) or a specific data type (posts, products,\nweather, news). Empty keywords return Actors in the Apify Store's default\nsort order, which is popularity in practice (most-used Actors first). Do NOT\nuse ranking words (\"top\", \"best\", \"popular\") or bare task words (\"scraper\",\n\"crawler\", \"extractor\") as keyword values — they are not Actor names and\nproduce noisy matches against README content.\n\nOtherwise, follow these rules:\n- Use 1-3 simple keyword terms maximum (e.g., \"Instagram posts\", \"Twitter\", \"Amazon products\")\n- Actors are named using platform or service name together with the type of data or task they perform\n- The most effective keywords are specific platform names (Instagram, Twitter, TikTok) and specific data types (posts, products, profiles, weather, news, reviews, comments)\n- If a user asks about \"fetching Instagram posts\", use \"Instagram posts\" as keywords\n- The goal is to find Actors that specifically handle the platform and data type the user mentioned\n\nExamples:\n✅ \"Instagram posts\", \"Twitter\", \"Amazon products\", \"TikTok comments\"\n✅ \"\" (empty) — returns the most popular Actors store-wide\n❌ \"Instagram posts profiles comments hashtags reels stories followers...\" (too long)\n❌ \"top popular actors\", \"best scrapers\", \"trending\" — ranking words aren't Actor keywords; pass \"\" instead\n❌ \"scraper\", \"extractor\", \"web crawler\" — bare task words aren't Actor keywords; pass \"\" instead",
            "type": "string"
          },
          "limit": {
            "default": 5,
            "description": "The maximum number of Actors to return (max = 10, default = 5).",
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "offset": {
            "default": 0,
            "description": "The number of elements to skip from the start (default = 0)",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [],
        "type": "object"
      },
      "name": "search-actors",
      "outputSchema": {
        "properties": {
          "actors": {
            "description": "List of Actor cards matching the search query",
            "items": {
              "properties": {
                "categories": {
                  "description": "Actor categories",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "description": {
                  "description": "Actor description",
                  "type": "string"
                },
                "developer": {
                  "properties": {
                    "isOfficialApify": {
                      "description": "Whether the actor is developed by Apify",
                      "type": "boolean"
                    },
                    "url": {
                      "description": "Developer profile URL",
                      "type": "string"
                    },
                    "username": {
                      "description": "Developer username",
                      "type": "string"
                    }
                  },
                  "required": [
                    "username",
                    "isOfficialApify",
                    "url"
                  ],
                  "type": "object"
                },
                "fullName": {
                  "description": "Full Actor name (username/name)",
                  "type": "string"
                },
                "id": {
                  "description": "Actor ID",
                  "type": "string"
                },
                "inputFields": {
                  "description": "Compact JSON-Schema-shaped descriptor of the Actor input; only `type` is preserved per field.",
                  "properties": {
                    "properties": {
                      "additionalProperties": {
                        "properties": {
                          "type": {
                            "description": "JSON Schema field type — string or array of strings."
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "type": "object"
                      },
                      "description": "Map of input field name to its type descriptor.",
                      "type": "object"
                    },
                    "required": {
                      "description": "Names of required input fields.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "type": {
                      "description": "Always `\"object\"`.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "type",
                    "properties"
                  ],
                  "type": "object"
                },
                "inputFieldsTotalCount": {
                  "description": "Total number of input fields before truncation; present only when `inputFields` was truncated.",
                  "type": "number"
                },
                "inputFieldsTruncated": {
                  "description": "Present and `true` when `inputFields` was truncated; fetch the full schema via `fetch-actor-details`.",
                  "type": "boolean"
                },
                "isDeprecated": {
                  "description": "Whether the Actor is deprecated",
                  "type": "boolean"
                },
                "modifiedAt": {
                  "description": "Last modification date",
                  "type": "string"
                },
                "pictureUrl": {
                  "description": "Actor picture URL",
                  "type": "string"
                },
                "pricing": {
                  "properties": {
                    "eventDescriptionsNote": {
                      "description": "Note explaining that event descriptions were omitted and full details are available via fetch-actor-details",
                      "type": "string"
                    },
                    "eventDescriptionsOmitted": {
                      "description": "Whether event descriptions were omitted because the actor has many pricing events",
                      "type": "boolean"
                    },
                    "events": {
                      "description": "Event-based pricing information",
                      "items": {
                        "properties": {
                          "description": {
                            "description": "Event description",
                            "type": "string"
                          },
                          "priceUsd": {
                            "description": "Price in USD",
                            "type": "number"
                          },
                          "tieredPricing": {
                            "items": {
                              "properties": {
                                "priceUsd": {
                                  "type": "number"
                                },
                                "tier": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          },
                          "title": {
                            "description": "Event title",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "model": {
                      "description": "Pricing model (FREE, PRICE_PER_DATASET_ITEM, FLAT_PRICE_PER_MONTH, PAY_PER_EVENT)",
                      "type": "string"
                    },
                    "pricePerUnit": {
                      "description": "Price per unit (for non-free models)",
                      "type": "number"
                    },
                    "pricingNote": {
                      "description": "Note naming the resolved tier; only emitted in simplified mode when the actor has multiple tiers and they resolve consistently",
                      "type": "string"
                    },
                    "tieredPricing": {
                      "description": "Tiered pricing information",
                      "items": {
                        "properties": {
                          "pricePerUnit": {
                            "description": "Price per unit for this tier",
                            "type": "number"
                          },
                          "tier": {
                            "description": "Tier name",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "trialMinutes": {
                      "description": "Trial period in minutes",
                      "type": "number"
                    },
                    "unitName": {
                      "description": "Unit name for pricing",
                      "type": "string"
                    },
                    "userTier": {
                      "description": "The user's plan tier used to resolve pricing (always the user's tier, even if a different tier was used as fallback)",
                      "enum": [
                        "FREE",
                        "BRONZE",
                        "SILVER",
                        "GOLD",
                        "PLATINUM",
                        "DIAMOND"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "model"
                  ],
                  "type": "object"
                },
                "rating": {
                  "properties": {
                    "average": {
                      "description": "Average rating",
                      "type": "number"
                    },
                    "count": {
                      "description": "Number of ratings",
                      "type": "number"
                    }
                  },
                  "type": "object"
                },
                "stats": {
                  "properties": {
                    "bookmarks": {
                      "description": "Number of bookmarks",
                      "type": "number"
                    },
                    "monthlyUsers": {
                      "description": "Monthly active users",
                      "type": "number"
                    },
                    "totalUsers": {
                      "description": "Total users",
                      "type": "number"
                    }
                  },
                  "type": "object"
                },
                "title": {
                  "description": "Actor title",
                  "type": "string"
                },
                "url": {
                  "description": "Actor URL",
                  "type": "string"
                }
              },
              "required": [
                "url",
                "id",
                "fullName",
                "developer",
                "description",
                "categories",
                "isDeprecated"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "count": {
            "description": "Number of Actors returned",
            "type": "number"
          },
          "instructions": {
            "description": "Additional instructions for the LLM to follow when processing the search results.",
            "type": "string"
          },
          "query": {
            "description": "The search query used",
            "type": "string"
          },
          "userTier": {
            "description": "The user's plan tier used to resolve the per-Actor pricing shown in the results",
            "enum": [
              "FREE",
              "BRONZE",
              "SILVER",
              "GOLD",
              "PLATINUM",
              "DIAMOND"
            ],
            "type": "string"
          }
        },
        "required": [
          "actors",
          "query",
          "count"
        ],
        "type": "object"
      },
      "title": "Search Actors"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "docSource": {
            "default": "apify",
            "description": "Documentation source to search. Defaults to \"apify\".\n• \"apify\" - Apify\n• \"crawlee-js\" - Crawlee (JavaScript)\n• \"crawlee-py\" - Crawlee (Python)",
            "enum": [
              "apify",
              "crawlee-js",
              "crawlee-py"
            ],
            "type": "string"
          },
          "limit": {
            "default": 5,
            "description": "Maximum number of search results to return. Defaults to 5. Maximum is 20.\nYou can increase this limit if you need more results, but keep in mind that the search results are limited to the most relevant pages.",
            "maximum": 20,
            "minimum": 1,
            "type": "number"
          },
          "offset": {
            "default": 0,
            "description": "Offset for the search results. Defaults to 0.\nUse this to paginate through the search results. For example, if you want to get the next 5 results, set the offset to 5 and limit to 5.",
            "type": "number"
          },
          "query": {
            "description": "Algolia full-text search query to find relevant documentation pages.\nUse only keywords, do not use full sentences or questions.\nFor example, \"standby actor\" will return documentation pages that contain the words \"standby\" and \"actor\".",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search-apify-docs",
      "outputSchema": {
        "properties": {
          "instructions": {
            "description": "Additional instructions for the LLM to follow when processing the search results.",
            "type": "string"
          },
          "results": {
            "items": {
              "properties": {
                "content": {
                  "description": "A limited piece of content that matches the search query.",
                  "type": "string"
                },
                "url": {
                  "description": "URL of the documentation page, may include anchor (e.g., #section-name).",
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "results"
        ],
        "type": "object"
      },
      "title": "Search Apify docs"
    }
  ]
}
