Check MCP servers for changes and health
check_mcp_serversCheck MCP servers for availability, response speed, exposed tools, and changes since the last run, with breaking changes marked.
Instructions
Check MCP servers by URL, npm package, or official registry search. Returns one row per server: whether it answered, how fast, the tools it exposes now, and what changed since the last run, with breaking changes marked. Runs on Apify, pay per event.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "check_mcp_servers"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| max_servers | No | Most servers to check per registry search term, up to 200. Default 25. | |
| server_urls | No | HTTP endpoints of MCP servers. Streamable HTTP is tried first, then the older HTTP plus SSE transport. | |
| auth_headers | No | Optional, for servers you are allowed to check. JSON keyed by site, for example {"https://mcp.example.com":{"Authorization":"Bearer abc"}}. Each header goes only to its own site. Encrypted by Apify, never logged, never saved in a snapshot. | |
| npm_packages | No | npm package names, optionally with a version, such as @modelcontextprotocol/server-everything. Each is installed and started inside your run. The code in a package you list runs in your run, so list only packages you trust. No environment variables are passed to it. | |
| snapshot_key | No | Name of the memory that holds the last run's results, so a scheduled run finds changes on its own. Use a different name per list. Default default. | |
| max_charge_usd | No | Optional. The run stops before a charge that would pass this amount. Free rows are always returned. | |
| registry_search | No | Search terms for the official MCP Registry. The HTTP endpoints of matching servers are checked. Packages found this way are listed but never run, because running code picked by a keyword is not safe. | |
| timeout_seconds | No | How long one request to a server may take before it counts as no answer, 3 to 60. Default 20. A package gets 60 more seconds to install. | |
| previous_snapshot | No | Optional. The JSON of a SNAPSHOT record from an earlier run, or an https link to that record. It takes the place of the saved snapshot for this run. | |
| include_resources_prompts | No | Also list the server's resources and prompts and report what changed in them. Default true. |