MCP Server Change and Health Monitor
Allows checking npm packages as MCP servers by installing and starting specified packages (optionally with a version) inside the run, then reporting whether they respond, what tools they expose, and what changed since the previous check.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Server Change and Health Monitorcheck if mcp.deepwiki.com is up and whether its tools changed since last run"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server Change and Health Monitor MCP Server
An MCP server for the Mamba Labs MCP Server Change and Health Monitor actor on Apify. Check any list of MCP servers and get one row per server: did it answer, what it exposes, and what changed.
What's Inside
Related MCP server: mcp-audit
What it does
Give it MCP server URLs, npm packages, or a search of the official MCP Registry. It speaks the MCP protocol to each server and returns whether the server answered, how fast, the tools it exposes now, and what changed since the last run. Changes are marked breaking, warning, or info.
All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.
Quick start
You need Node.js 18 or newer and an Apify account with an API token.
Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:
{
"mcpServers": {
"mamba-mcp-server-change-health-monitor": {
"command": "npx",
"args": [
"-y",
"@mambalabsdev/mcp-server-change-health-monitor"
],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}Restart the client. The check_mcp_servers tool appears.
Prerequisites
Node.js 18 or newer.
An Apify API token from console.apify.com/account/integrations, set as
APIFY_TOKEN. The server lists its tool without a token; a call needs one.
Example prompts
"Are these three MCP servers up, and did any of their tools change since last week?"
"Check every server in the official MCP Registry that matches github and list which ones answer."
"Did the tool descriptions on this MCP server change since my last check?"
Tool
check_mcp_servers. One tool. Example arguments:
{
"server_urls": [
"https://mcp.deepwiki.com/mcp"
]
}Inputs
Every buyer facing input of the actor. Omitted inputs take the actor's own defaults.
Input | Type | Required | Description |
| array | no | HTTP endpoints of MCP servers. Streamable HTTP is tried first, then the older HTTP plus SSE transport. |
| array | 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. |
| array | 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. |
| number | no | Most servers to check per registry search term, up to 200. Default 25. |
| string | 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. |
| string | 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. |
| number | 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. |
| boolean | no | Also list the server's resources and prompts and report what changed in them. Default true. |
| string | 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. |
| string | no | Optional. The run stops before a charge that would pass this amount. Free rows are always returned. |
Pricing
Pay per event on Apify, billed to your Apify account. Prices in USD.
Event | Free plan | Bronze | Silver | Gold |
| $0.005 | $0.00475 | $0.0045 | $0.00425 |
| $0.02 | $0.019 | $0.018 | $0.017 |
| $0.002 | $0.002 | $0.002 | $0.002 |
Servers that need credentials or refused the request, invalid entries, registry rows, and refused input are free. Mamba Labs pays the platform costs of the run, Apify proxy traffic included.
Full actor documentation
apify.com/mambalabs/mcp-server-change-health-monitor
License
MIT. See LICENSE.
Available Tools
1 toolcheck_mcp_serversCheck MCP servers for changes and healthARead-only
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.
| 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, non-idempotent, and non-destructive, so the safety bar is lowered. The description adds real value beyond them: the 'pay per event' cost model and the fact that breaking changes are marked in results. It does not disclose two notable behaviors that only the schema carries - that listed npm packages are installed and executed inside the run, and that snapshot state is written between runs (only hinted at by 'since the last run').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action and inputs, then the return contract, then the cost/deployment note. No filler, no restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a ten-parameter tool with no output schema, the description supplies the return contract and change-detection semantics, while the schema fully documents every parameter. What is missing is the side-effect story (npm code execution in your run, snapshot persistence) at the description level, which matters for a tool an agent may schedule.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the mapping of the three input modes to server_urls, npm_packages, and registry_search but adds no syntax, defaults, or constraints beyond what the schema already documents for all ten parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Check MCP servers') and enumerates the three accepted input modes (URL, npm package, official registry search). It also states the return shape ('one row per server: whether it answered, how fast, the tools it exposes now, and what changed'), so an agent knows both what goes in and what comes out without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (health/change auditing of MCP servers) and names the three modes, but never says which mode to pick or when not to use the tool. There are no siblings to route against, so the missing guidance is mostly about mode selection, which is deferred entirely to the schema descriptions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- First observed
check_mcp_servers
TDQS
Scored across 1 tool
There is only one tool, so there is no possibility of misselection between overlapping tools. Its purpose—health-checking and diffing MCP servers—is clearly stated.
The single name check_mcp_servers follows a clear verb_noun snake_case convention. With one tool there is no inconsistency to introduce.
A single tool is thin even for a narrow monitoring scope; the three input modes (URL, npm package, registry search) could arguably be distinct tools. Still, one 'check' operation is a defensible minimal surface.
The core action—probe a server, report latency, exposed tools, and diffs with breaking changes marked—is covered. However, there's no way to manage a watchlist, batch-check multiple servers, or retrieve historical results beyond 'since the last run'.
Maintenance
Related MCP Connectors
Scan any MCP server for tool-poisoning, security, auth & license. Trust score before install.
MCP Drift Observatory: has a public MCP server's declared tools changed? Free check, archive, feeds.
Look up MCP Registry declarations, npm package status, and daily observations of MCP servers.
Audit MCP servers for tool poisoning and shadowing. Scan a remote server by URL or paste its tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that checks npm and PyPI package health, providing maintenance signals, version info, CVE counts, and alternative suggestions.MIT
- AlicenseNot gradedqualityBmaintenancenpm audit for MCP servers. Point it at an MCP server and get a security grade (A–F) covering missing auth, SSRF surface, high-privilege tools, prompt-injection-prone tool descriptions, and leaked secrets.4 npmMIT
- AlicenseAqualityCmaintenanceLets users discover, compare, and audit public MCP servers from the official registry, validate server.json metadata, and generate installation snippets and publication checklists.6MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to look up and search servers from the official MCP registry, probe any server live for availability, protocol, auth, tools and context-token cost, and retrieve registry-wide statistics. Also supplies a CLI and GitHub Action that measure how many tokens your own configured servers' tool definitions consume against a budget.MIT