MCP Server Change and Health Monitor avatar

MCP Server Change and Health Monitor

Pricing

from $4.25 / 1,000 server checks

Go to Apify Store
MCP Server Change and Health Monitor

MCP Server Change and Health Monitor

Watch MCP servers: one row per server saying whether it answered, how fast, what tools it exposes now, and what changed since the last run, with breaking changes marked. Takes HTTP endpoints, npm packages, or registry search terms.

Pricing

from $4.25 / 1,000 server checks

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Security

Limited permissions

Share

Give this actor a list of MCP servers and get one row per server: did it answer, how fast, what tools it exposes now, and what changed since the last run. Changes are marked breaking, warning, or info. Run it on a schedule and it compares each run with the last one by itself. You pay per server checked; Mamba Labs pays the platform costs.

Features

  • It speaks MCP. The actor connects as an MCP client (initialize, then the list calls), so it sees what an agent sees. You do not need to export a tool catalog.
  • Three ways in. HTTP endpoints (streamable HTTP, then the older HTTP plus SSE), npm packages started over stdio, or search terms for the official MCP Registry, in any mix.
  • Changes marked by what they break. Breaking: a tool or argument removed, an argument newly required, a type changed, an allowed value removed. Warning: a tool description, annotation, or output schema changed. Info: a tool or optional argument added.
  • Description changes are reported. An agent reads a tool description as instructions, so a silent edit to one is reported with the before and after text.
  • Health. Answer time, tool list time, server version, last time up, and down since. A server gets one retry before it is reported down.
  • Scheduled runs compare themselves. The last result is saved under your Snapshot name in your Apify account. Or pass a SNAPSHOT record from any run.
  • Cost guards. A max charge per run, and a cap on servers per registry search.

How the data is read

The actor connects straight to each server from Apify's network. A monitor should see a server the way a client does, so it does not go through a proxy. It uses no login of its own, no other developer's actor, and no key from Mamba Labs. Registry searches read the public API of the official MCP Registry.

Private servers. Put your headers in auth_headers, keyed by site. Each header goes only to its own site and is never sent across a redirect to another site. The field is encrypted by Apify, and the actor never logs it or saves it. Fixtures and the refused path are how this was tested: no real private server was used, so the first buyer's credentials are the live test.

npm packages. A package you list is downloaded and started inside your run, so its code runs there. The actor starts it under an unprivileged user with no environment variables and no install scripts, and refuses to start it if that user can read the run's Apify token. It can still reach the internet. List only packages you trust. Packages found through a registry search are listed in the row but never run.

Input

FieldTypeDefaultWhat it does
server_urlsarrayHTTP endpoints of MCP servers. Streamable HTTP is tried first, then the older HTTP plus SSE transport.
npm_packagesarraynpm 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.
registry_searcharraySearch 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.
max_serversstring25Most servers to check per registry search term, up to 200. Default 25.
snapshot_keystringdefaultName 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.
previous_snapshotstringOptional. 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.
timeout_secondsstring20How 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.
include_resources_promptsstringtrueAlso list the server's resources and prompts and report what changed in them. Default true.
auth_headersstringOptional, for servers you are allowed to check. JSON keyed by site, for example {"https://mcp.example.com%22:%7B%22Authorization%22:%22Bearer abc"}}. Each header goes only to its own site. Encrypted by Apify, never logged, never saved in a snapshot.
max_charge_usdstringOptional. The run stops before a charge that would pass this amount. Free rows are always returned.

Output

FieldTypeWhat it holds
row_typestringOne of: server_check, registry_query, run_summary. run_summary is the one free row written when the input is refused.
serverstringThe URL or npm package checked. On a registry_query row, the search term.
sourcestringurl, npm, or registry: how this server got on the list.
registry_namestringThe server's name in the official MCP Registry, when it came from a search.
statusstringup (answered and listed its catalog), down (no valid answer after one retry), auth_required (answered 401), blocked (answered 403 or 429), invalid (bad entry), or not_run.
change_statusstringbaseline (first time seen, nothing to compare), unchanged, changed, or not_compared (the server gave no catalog).
transportstringhttp (streamable HTTP), sse (the older HTTP plus SSE), or stdio.
latency_msintegerTime for the server to answer initialize. For a package this includes the install.
list_latency_msintegerTime to read the full tool list.
http_statusintegerThe HTTP status behind a status other than up, when there was one.
server_namestringThe name the server reports for itself.
server_versionstringThe version the server reports for itself.
protocol_versionstringThe MCP protocol version the server agreed to.
tool_countintegerHow many tools the server exposes now.
resource_countintegerHow many resources it exposes now. Empty when it has none or the option is off.
prompt_countintegerHow many prompts it exposes now. Empty when it has none or the option is off.
catalog_hashstringA hash of the whole catalog. It changes when any compared part changes.
toolsarrayEvery tool now: name, hash, and the first 300 characters of its description.
changesarrayWhat changed since the last run. Each entry has severity (breaking, warning, or info), kind, item, and detail.
change_countintegerHow many entries are in changes.
breaking_countintegerHow many changes break a caller: a tool or argument removed, an argument newly required, a type changed, an allowed value removed.
previous_checked_atstringWhen the snapshot this run compared against was taken.
last_up_atstringThe last time a run found this server up.
down_sincestringWhen runs first found this server down, while it stays down.
server_countintegerOn a registry_query row: HTTP endpoints from this search that will be checked.
skipped_packagesarrayOn a registry_query row: matching servers that have only a package. They are listed, not run.
checked_atstringWhen this server was checked, UTC.
row_statusstringok, or why this row carries no data: no_results, no_change, partial, blocked, or error.
error_reasonstringWhy the row is not ok. A refused input reads input_invalid: followed by what to fix.
billable_events_jsonstringWhat this row was billed as, for example {"server-check":1}. {} means free.
scraped_atstringWhen the row was written, UTC.

Pricing

Pay per event. You pay for a run start and for each server with a definite answer: up and compared, or down after a retry. A package costs more than a URL because each one is a full install. A down result is charged because it is the answer you asked for and the check took the full wait. A server that answers 401 (auth_required), 402, 403, or 429 (blocked), an invalid entry, a package name npm does not have, a package that was not run, a registry row, and a refused input are free.

EventFree planBronzeSilverGold
server-check, one MCP server checked$0.005$0.00475$0.0045$0.00425
package-check, one npm package installed and checked$0.02$0.019$0.018$0.017
apify-actor-start, once per run (one per GB of memory; the default 512 MB is one)$0.002$0.002$0.002$0.002

Per 1,000 rows of server-check: $5.00 on the free plan, $4.25 on Gold.

Free plan cap: 1.50 USD of evaluation a month, about 300 rows. Any paid Apify plan removes the cap, and it resets on the 1st. The run stops before a charge that passes your maximum charge per run in Apify or your max_charge_usd input.

Mamba Labs pays the platform costs of your run, Apify proxy traffic included.

Usage examples

Apify Console or API. A scheduled check of two endpoints and one package:

{
"server_urls": ["https://mcp.deepwiki.com/mcp", "https://knowledge-mcp.global.api.aws"],
"npm_packages": ["@modelcontextprotocol/server-everything"],
"snapshot_key": "my-agents"
}

Registry search.

{ "registry_search": ["github"], "max_servers": "25" }

To act only on real changes, filter rows on change_status equal to changed, or breaking_count above 0.

Clay. Number and on or off inputs are text fields, which is what Clay sends. A list input takes a JSON list, so put the column inside a one item list.

MCP. The Mamba Labs MCP server @mambalabsdev/mcp-server-change-health-monitor exposes this actor to Claude and other MCP clients.

Error handling

CaseWhat you get
Missing or unreadable inputOne free row, row_type run_summary, error_reason starting input_invalid: with what to fix. The run ends successfully and charges nothing but the run start
A server gives no valid answer after one retryOne charged row, status down, error_reason says why
A server answers 401One free row, status auth_required. Add auth_headers to check it
A server answers 402, 403, or 429One free row, status blocked
A bad URL or package name in a good listOne free row for that entry, status invalid; the others run
A private or local addressRefused as invalid. The actor checks public servers
A package that needs an environment variable or argument to startOne charged row, status down, because none are passed. A package is not retried
The first run for a serverchange_status baseline: nothing to compare yet
The run is close to its timeoutThe actor stops starting new work 90 seconds before the timeout and delivers what it has

Limitations

  • The first run sets the baseline. Changes appear from the second run.
  • It lists what a server exposes. It does not call tools, so it cannot tell whether a tool works.
  • A server that shows a different catalog to each visitor, or changes its text per session, shows as changed. Read changes to see what moved.
  • A package cannot receive environment variables or arguments in this version, so one that needs a key or a path to start reads as down.
  • The older HTTP plus SSE transport was tested on fixtures only; no public server using it answered during the build.
  • Up to 500 URLs, 25 packages, and 10 registry terms per run, with up to 200 servers per term. A list of more than 8 MB of snapshot keeps hashes only, so changes name the tool but not the old text.
  • Answer time is measured from Apify's network in one place, so it is not a global uptime reading.

Mamba Labs actor suite

ActorActor ID
Account Hiring WatchgRAZA5WBi1r6L0gy7
Agent Accessibility AuditoranxbRv0lKrpQ1pnua
Agent to Brokerage ResolverePRRGLxOGyaVHO4dI
AI Answer Visibility TrackerRJZvzKniYK4nswcMg
AI Tooling DetectorEwkHhmqiuJgRoVEbE
API Deprecation and Breaking Change MonitorpHsbS3xXUK8Jqutz5
App Store and Google Play Review MonitorMaCMEhGrbchxQZ92G
B2B Reddit Conversation MonitorSoDryzzsjmY3SsiyG
Bluesky Brand Presence MappereLpxzP4IuXznlFVND
Brand Sponsor FinderPPgK6xrgOmvL7Nrys
Bulk WHOIS and RDAP Domain Age LookupMTrkG5FLU6SjqLdJY
Career Change Signal EnginevX2Yga1a6wGaXaP14
Company Careers Page Jobs, 17 ATS BoardsizP0rfIgf5YaRZfIh
Company Change Event FeedoX44rS0fkEJ3rXLWe
Company Discovery List Builderjch0HdaZnpbMqlcGS
Company Firmographic EnricherYlUtLWjfPpqykmB8g
Company Funding RecordOFS4Mt1gyYNtGfUbE
Company Headcount EstimatoraHC4GROnNt6kfZe5r
Company Identity Resolverlr8fTRAmZCBZmuwwh
Company Role Email, Phone and Address Finder4mMncKaJykiq94grz
Company Social Presence Mapper4k6CCemkgBDz18m2h
Competitor Price, Stock, and Changelog MonitoryxdgCbUQ4PYQWwRNU
Contact Classifier0lGSeYJmniXhGANnO
Contractor License Search, CA, TX, WA, OR, LAWBYK3CPI2kdeq4bP1
CRM Contact Job Change CheckerL8UbEmMJC1XYPSZOb
Domain Deliverability Checker0tVgxI7A6o9jMlxmc
Domain to LinkedIn URL Resolver3HtnSaqPHOg1Qg5gx
Ecommerce Platform Profiler5G2NeYjBbQTjaTn9L
Ecommerce Store DiscoveryPeHu4sLyFvQHXUUrX
Email List Verifier, Bring Your Own KeyCzVJ4NlaCKk80xpgE
Event Presence IndexWLhMy8fMDgsxdYxv5
Expert Witness Finder, US and AustraliaLIpwlgfE3LaQBaXd4
Funding and Press Signal ScannerFS13X6dhQVgX3XOM6
GDPR Cookie Banner and Consent CheckerTrKyOS0KBoGC35nbr
GitHub Organization Signal ScannerahF8RRpv5mzPao5CN
Google Ads Transparency Center Scraper by Domain1eOwxhBVxzvOXAm4s
GTM Hiring Signal ScraperD7O1SA2EqwHGsGr1P
GTM Signals AggregatorxKdRfnfFNkdMpFuNs
ICP Fit ScorerW161DT8W4kW55dMFh
Influencer Change Monitord2VVgahNL6UmcLkhg
Influencer Lead List BuilderKnmByszcv135yM30G
Influencer Profile ScraperEqEnklDVMIcB1V499
Influencer Search Across TikTok, Instagram and YouTubetpkedmloIIWtXx6sg
Influencer Talent Agency LookupzCuX4Mgyg6JvXgGzd
Instagram Facebook Brand Presence MapperHXh65I0JBjPsunbY8
Integration and Marketplace Presence MapperV0guNuvM85Q61f2gj
Job Board Keyword Signal Scanner4DvqpvhMR74NLcDDY
Job Posting MonitorQCfICD9kOPiOdj5iI
Journalist and Media List BuildermAfizsZC8qRoR0ecS
Launch Directory List BuildercRq3bmvEZxZtioQ7U
Lead File Import CheckerRwlGVXTf46LqZdUgt
Legal Entity ResolverKHFyPCDIx7CyqULYm
Link in Bio Scraper and Newsletter DetectorOorucdheTIgu7RFzK
LinkedIn Company Page MapperzOPm6A9JEhUGcIdFW
LinkedIn Jobs FeedSH6N0d8cz46BhCC8B
LinkedIn Post TrackeroiGLNPuaf5BRaz9K5
Local Business Lead BuilderqMN97aoHhsAS5bznV
Local Rank and Map Pack Trackergv0kyHGDIg8XscclB
Lookalike Companies from Seed Domainse2O426WBAbLLQL4Z2
Manufacturer and Supplier FinderQcsdmd0lUfPzVkonh
Meta Ad Library Ads by Company, Graph APIJ1GWlSXfSGU3u8Wng
Mobile Phone Waterfall6OOgPktf7RIa5XCOP
New Hire FindercKuc38p4nYHNF3IW8
Newly Registered Companies, UK, Norway, Finland, Franceg2WfZhWvCtc57g2Jo
News and Media Mention Monitorgol1PPUKrsIk4QLBd
Newsletter Sponsor TrackerqSwpqxD1TiPZpLQHv
Open Tender and RFP FinderkPTGz6t6TFoUUyfaO
Outbound Stack Detectorv43UJC8r7qW7cBSTG
Page Finder and ExtractorTpurgcOZbVnknlaiC
Partner and Member Directory ExtractorZX0XJPPUvnFJxeC1a
People Finder & Email VerifierLEgloG7tWgQl4o6TD
Person LinkedIn URL ResolverssuyPV8LnEsL8qbnb
Person Social Footprint MapperjfQXa2zW9FHCJot9K
Personal Email to Company ResolverAefT5Ye6YNPFQwJBf
Pinterest Brand Presence Mapperd1HvjZfKhgvWsoEwn
Podcast Guest and Host Findero2MGSvgbSLeeXOsIo
Product Hunt Daily Launches with Maker DomainsO4VX63drWK9Y9x641
Prospect Engineq9rT6v64nUJdPexOQ
Public Feature Board and Roadmap MonitorrcHF5gj5r2Vqnry35
Publishing Frequency TrackerTbLwaUUATdYb6wp4N
Recent Funding Rounds FeedKueVp9MOz7iOoAgDp
Reddit Brand Presence MapperpKQZmDaT70SEb54bZ
Reddit Search and Thread Scraper4Gsth5cP2Xt9V2xDN
Reporting Window FinderuINxR7a1IW8qUTRUX
Sequencer Event PollerS6s8Rjd61tGdrMRk4
Sequencer Lead Push0Jv27VeWM5tSZQs9x
Shopify App Store and Chrome Web Store ListingsgaY0BzkLyN77mD3wI
Substack Newsletter and Posts ScraperUEFsdwiPLmPNVy9xd
Team Page People Extractorj8a9zX0k4mNbvDbWK
Tech Stack Signal Detectorqyd7nNyqFPelQViBx
Threads Posts by Keyword, Exact Match2OT8K8RiEEWtaj2MW
TikTok Brand Presence Mapperfco8FvoJcSafbeyd1
Trustpilot Reputation Enricher3lIqfCt61j4hqE1xz
US and UK Contract Award Winners by CompanyzhEtllASykOcx9hJ8
VC and Accelerator Portfolio List BuilderchH8hrfuoqqolW06m
Website Accessibility Checker, WCAG 2.2 AAP3jBj3FRghKEhX52z
Website Phrase and Business Model ClassifierCBuZ9k7sRwBeiKiCS
Website Traffic Rank EstimatorGnOFUzlNVIoXgeJjH
Work Email WaterfallOT6xqTFThC0Rjf7Zj
Workplace Program DetectorLi6pPDhqbdzFz3h7G
X Brand Presence MapperoLOgadhHUkNAyDA3w
YouTube Channel from Company Domain6hSpD3kd2s2IQ4VSs

Built by Mamba Labs.