# MCP Server Change and Health Monitor (`mambalabs/mcp-server-change-health-monitor`) Actor

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.

- **URL**: https://apify.com/mambalabs/mcp-server-change-health-monitor.md
- **Developed by:** [Mamba Labs](https://apify.com/mambalabs) (community)
- **Categories:** Developer tools, AI, Automation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.25 / 1,000 server checks

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## MCP Server Change and Health Monitor

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

| Field | Type | Default | What it does |
|---|---|---|---|
| `server_urls` | array |  | HTTP endpoints of MCP servers. Streamable HTTP is tried first, then the older HTTP plus SSE transport. |
| `npm_packages` | array |  | 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. |
| `registry_search` | array |  | 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. |
| `max_servers` | string | `25` | Most servers to check per registry search term, up to 200. Default 25. |
| `snapshot_key` | string | `default` | 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. |
| `previous_snapshot` | string |  | 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. |
| `timeout_seconds` | string | `20` | 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. |
| `include_resources_prompts` | string | `true` | Also list the server's resources and prompts and report what changed in them. Default true. |
| `auth_headers` | string |  | 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. |
| `max_charge_usd` | string |  | Optional. The run stops before a charge that would pass this amount. Free rows are always returned. |

### Output

| Field | Type | What it holds |
|---|---|---|
| `row_type` | string | One of: server_check, registry_query, run_summary. run_summary is the one free row written when the input is refused. |
| `server` | string | The URL or npm package checked. On a registry_query row, the search term. |
| `source` | string | url, npm, or registry: how this server got on the list. |
| `registry_name` | string | The server's name in the official MCP Registry, when it came from a search. |
| `status` | string | up (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_status` | string | baseline (first time seen, nothing to compare), unchanged, changed, or not_compared (the server gave no catalog). |
| `transport` | string | http (streamable HTTP), sse (the older HTTP plus SSE), or stdio. |
| `latency_ms` | integer | Time for the server to answer initialize. For a package this includes the install. |
| `list_latency_ms` | integer | Time to read the full tool list. |
| `http_status` | integer | The HTTP status behind a status other than up, when there was one. |
| `server_name` | string | The name the server reports for itself. |
| `server_version` | string | The version the server reports for itself. |
| `protocol_version` | string | The MCP protocol version the server agreed to. |
| `tool_count` | integer | How many tools the server exposes now. |
| `resource_count` | integer | How many resources it exposes now. Empty when it has none or the option is off. |
| `prompt_count` | integer | How many prompts it exposes now. Empty when it has none or the option is off. |
| `catalog_hash` | string | A hash of the whole catalog. It changes when any compared part changes. |
| `tools` | array | Every tool now: name, hash, and the first 300 characters of its description. |
| `changes` | array | What changed since the last run. Each entry has severity (breaking, warning, or info), kind, item, and detail. |
| `change_count` | integer | How many entries are in changes. |
| `breaking_count` | integer | How many changes break a caller: a tool or argument removed, an argument newly required, a type changed, an allowed value removed. |
| `previous_checked_at` | string | When the snapshot this run compared against was taken. |
| `last_up_at` | string | The last time a run found this server up. |
| `down_since` | string | When runs first found this server down, while it stays down. |
| `server_count` | integer | On a registry_query row: HTTP endpoints from this search that will be checked. |
| `skipped_packages` | array | On a registry_query row: matching servers that have only a package. They are listed, not run. |
| `checked_at` | string | When this server was checked, UTC. |
| `row_status` | string | ok, or why this row carries no data: no_results, no_change, partial, blocked, or error. |
| `error_reason` | string | Why the row is not ok. A refused input reads input_invalid: followed by what to fix. |
| `billable_events_json` | string | What this row was billed as, for example {"server-check":1}. {} means free. |
| `scraped_at` | string | When 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.

| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| `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:

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

**Registry search.**

```json
{ "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

| Case | What you get |
|---|---|
| Missing or unreadable input | One 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 retry | One charged row, `status` `down`, `error_reason` says why |
| A server answers 401 | One free row, `status` `auth_required`. Add `auth_headers` to check it |
| A server answers 402, 403, or 429 | One free row, `status` `blocked` |
| A bad URL or package name in a good list | One free row for that entry, `status` `invalid`; the others run |
| A private or local address | Refused as `invalid`. The actor checks public servers |
| A package that needs an environment variable or argument to start | One charged row, `status` `down`, because none are passed. A package is not retried |
| The first run for a server | `change_status` `baseline`: nothing to compare yet |
| The run is close to its timeout | The 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

| Actor | Actor ID |
|---|---|
| [Account Hiring Watch](https://apify.com/mambalabs/account-hiring-watch?fpr=mamba) | `gRAZA5WBi1r6L0gy7` |
| [Agent Accessibility Auditor](https://apify.com/mambalabs/agent-accessibility-auditor?fpr=mamba) | `anxbRv0lKrpQ1pnua` |
| [Agent to Brokerage Resolver](https://apify.com/mambalabs/agent-brokerage-resolver?fpr=mamba) | `ePRRGLxOGyaVHO4dI` |
| [AI Answer Visibility Tracker](https://apify.com/mambalabs/ai-answer-visibility-tracker?fpr=mamba) | `RJZvzKniYK4nswcMg` |
| [AI Tooling Detector](https://apify.com/mambalabs/ai-tooling-detector?fpr=mamba) | `EwkHhmqiuJgRoVEbE` |
| [API Deprecation and Breaking Change Monitor](https://apify.com/mambalabs/api-change-monitor?fpr=mamba) | `pHsbS3xXUK8Jqutz5` |
| [App Store and Google Play Review Monitor](https://apify.com/mambalabs/app-store-google-play-review-monitor?fpr=mamba) | `MaCMEhGrbchxQZ92G` |
| [B2B Reddit Conversation Monitor](https://apify.com/mambalabs/b2b-reddit-conversation-monitor?fpr=mamba) | `SoDryzzsjmY3SsiyG` |
| [Bluesky Brand Presence Mapper](https://apify.com/mambalabs/bluesky-brand-presence-mapper?fpr=mamba) | `eLpxzP4IuXznlFVND` |
| [Brand Sponsor Finder](https://apify.com/mambalabs/brand-sponsor-finder?fpr=mamba) | `PPgK6xrgOmvL7Nrys` |
| [Bulk WHOIS and RDAP Domain Age Lookup](https://apify.com/mambalabs/whois-domain-lookup?fpr=mamba) | `MTrkG5FLU6SjqLdJY` |
| [Career Change Signal Engine](https://apify.com/mambalabs/career-change-signal-engine?fpr=mamba) | `vX2Yga1a6wGaXaP14` |
| [Company Careers Page Jobs, 17 ATS Boards](https://apify.com/mambalabs/ats-jobs-feed?fpr=mamba) | `izP0rfIgf5YaRZfIh` |
| [Company Change Event Feed](https://apify.com/mambalabs/company-change-event-feed?fpr=mamba) | `oX44rS0fkEJ3rXLWe` |
| [Company Discovery List Builder](https://apify.com/mambalabs/company-discovery-list-builder?fpr=mamba) | `jch0HdaZnpbMqlcGS` |
| [Company Firmographic Enricher](https://apify.com/mambalabs/company-firmographic-enricher?fpr=mamba) | `YlUtLWjfPpqykmB8g` |
| [Company Funding Record](https://apify.com/mambalabs/funding-investor-record?fpr=mamba) | `OFS4Mt1gyYNtGfUbE` |
| [Company Headcount Estimator](https://apify.com/mambalabs/company-headcount-estimator?fpr=mamba) | `aHC4GROnNt6kfZe5r` |
| [Company Identity Resolver](https://apify.com/mambalabs/company-identity-resolver?fpr=mamba) | `lr8fTRAmZCBZmuwwh` |
| [Company Role Email, Phone and Address Finder](https://apify.com/mambalabs/company-contact-details-extractor?fpr=mamba) | `4mMncKaJykiq94grz` |
| [Company Social Presence Mapper](https://apify.com/mambalabs/company-social-presence-mapper?fpr=mamba) | `4k6CCemkgBDz18m2h` |
| [Competitor Price, Stock, and Changelog Monitor](https://apify.com/mambalabs/competitor-price-stock-changelog-monitor?fpr=mamba) | `yxdgCbUQ4PYQWwRNU` |
| [Contact Classifier](https://apify.com/mambalabs/contact-classifier?fpr=mamba) | `0lGSeYJmniXhGANnO` |
| [Contractor License Search, CA, TX, WA, OR, LA](https://apify.com/mambalabs/contractor-license-lookup?fpr=mamba) | `WBYK3CPI2kdeq4bP1` |
| [CRM Contact Job Change Checker](https://apify.com/mambalabs/job-change-tracker?fpr=mamba) | `L8UbEmMJC1XYPSZOb` |
| [Domain Deliverability Checker](https://apify.com/mambalabs/domain-deliverability-checker?fpr=mamba) | `0tVgxI7A6o9jMlxmc` |
| [Domain to LinkedIn URL Resolver](https://apify.com/mambalabs/domain-to-linkedin-url-resolver?fpr=mamba) | `3HtnSaqPHOg1Qg5gx` |
| [Ecommerce Platform Profiler](https://apify.com/mambalabs/ecommerce-platform-profiler?fpr=mamba) | `5G2NeYjBbQTjaTn9L` |
| [Ecommerce Store Discovery](https://apify.com/mambalabs/ecommerce-store-discovery?fpr=mamba) | `PeHu4sLyFvQHXUUrX` |
| [Email List Verifier, Bring Your Own Key](https://apify.com/mambalabs/email-verifier?fpr=mamba) | `CzVJ4NlaCKk80xpgE` |
| [Event Presence Index](https://apify.com/mambalabs/event-presence-index?fpr=mamba) | `WLhMy8fMDgsxdYxv5` |
| [Expert Witness Finder, US and Australia](https://apify.com/mambalabs/expert-witness-directory?fpr=mamba) | `LIpwlgfE3LaQBaXd4` |
| [Funding and Press Signal Scanner](https://apify.com/mambalabs/funding-press-signal-scanner?fpr=mamba) | `FS13X6dhQVgX3XOM6` |
| [GDPR Cookie Banner and Consent Checker](https://apify.com/mambalabs/cookie-consent-audit?fpr=mamba) | `TrKyOS0KBoGC35nbr` |
| [GitHub Organization Signal Scanner](https://apify.com/mambalabs/github-organization-signal-scanner?fpr=mamba) | `ahF8RRpv5mzPao5CN` |
| [Google Ads Transparency Center Scraper by Domain](https://apify.com/mambalabs/google-ads-transparency-monitor?fpr=mamba) | `1eOwxhBVxzvOXAm4s` |
| [GTM Hiring Signal Scraper](https://apify.com/mambalabs/gtm-hiring-signal-scraper?fpr=mamba) | `D7O1SA2EqwHGsGr1P` |
| [GTM Signals Aggregator](https://apify.com/mambalabs/b2b-buying-signals-hiring-tech-stack-intent-for-clay?fpr=mamba) | `xKdRfnfFNkdMpFuNs` |
| [ICP Fit Scorer](https://apify.com/mambalabs/icp-account-lead-scoring-fit-scorer-0-100-for-clay?fpr=mamba) | `W161DT8W4kW55dMFh` |
| [Influencer Change Monitor](https://apify.com/mambalabs/creator-change-monitor?fpr=mamba) | `d2VVgahNL6UmcLkhg` |
| [Influencer Lead List Builder](https://apify.com/mambalabs/creator-lead-list-all-in-one?fpr=mamba) | `KnmByszcv135yM30G` |
| [Influencer Profile Scraper](https://apify.com/mambalabs/creator-profile-reader?fpr=mamba) | `EqEnklDVMIcB1V499` |
| [Influencer Search Across TikTok, Instagram and YouTube](https://apify.com/mambalabs/creator-finder?fpr=mamba) | `tpkedmloIIWtXx6sg` |
| [Influencer Talent Agency Lookup](https://apify.com/mambalabs/talent-agency-lookup?fpr=mamba) | `zCuX4Mgyg6JvXgGzd` |
| [Instagram Facebook Brand Presence Mapper](https://apify.com/mambalabs/meta-brand-presence-mapper?fpr=mamba) | `HXh65I0JBjPsunbY8` |
| [Integration and Marketplace Presence Mapper](https://apify.com/mambalabs/integration-marketplace-presence-mapper?fpr=mamba) | `V0guNuvM85Q61f2gj` |
| [Job Board Keyword Signal Scanner](https://apify.com/mambalabs/job-board-keyword-signal-scanner?fpr=mamba) | `4DvqpvhMR74NLcDDY` |
| [Job Posting Monitor](https://apify.com/mambalabs/gtm-job-discovery?fpr=mamba) | `QCfICD9kOPiOdj5iI` |
| [Journalist and Media List Builder](https://apify.com/mambalabs/journalist-media-list-builder?fpr=mamba) | `mAfizsZC8qRoR0ecS` |
| [Launch Directory List Builder](https://apify.com/mambalabs/launch-directory-list-builder?fpr=mamba) | `cRq3bmvEZxZtioQ7U` |
| [Lead File Import Checker](https://apify.com/mambalabs/lead-file-import-checker?fpr=mamba) | `RwlGVXTf46LqZdUgt` |
| [Legal Entity Resolver](https://apify.com/mambalabs/legal-entity-resolver?fpr=mamba) | `KHFyPCDIx7CyqULYm` |
| [Link in Bio Scraper and Newsletter Detector](https://apify.com/mambalabs/link-in-bio-newsletter-checker?fpr=mamba) | `OorucdheTIgu7RFzK` |
| [LinkedIn Company Page Mapper](https://apify.com/mambalabs/linkedin-company-presence-mapper?fpr=mamba) | `zOPm6A9JEhUGcIdFW` |
| [LinkedIn Jobs Feed](https://apify.com/mambalabs/linkedin-jobs-feed?fpr=mamba) | `SH6N0d8cz46BhCC8B` |
| [LinkedIn Post Tracker](https://apify.com/mambalabs/linkedin-post-engager-capture?fpr=mamba) | `oiGLNPuaf5BRaz9K5` |
| [Local Business Lead Builder](https://apify.com/mambalabs/local-business-lead-builder?fpr=mamba) | `qMN97aoHhsAS5bznV` |
| [Local Rank and Map Pack Tracker](https://apify.com/mambalabs/local-rank-map-pack-tracker?fpr=mamba) | `gv0kyHGDIg8XscclB` |
| [Lookalike Companies from Seed Domains](https://apify.com/mambalabs/lookalike-company-finder?fpr=mamba) | `e2O426WBAbLLQL4Z2` |
| [Manufacturer and Supplier Finder](https://apify.com/mambalabs/manufacturer-supplier-finder?fpr=mamba) | `Qcsdmd0lUfPzVkonh` |
| [Meta Ad Library Ads by Company, Graph API](https://apify.com/mambalabs/meta-ad-library-monitor?fpr=mamba) | `J1GWlSXfSGU3u8Wng` |
| [Mobile Phone Waterfall](https://apify.com/mambalabs/mobile-phone-waterfall-orchestrator?fpr=mamba) | `6OOgPktf7RIa5XCOP` |
| [New Hire Finder](https://apify.com/mambalabs/new-hire-finder?fpr=mamba) | `cKuc38p4nYHNF3IW8` |
| [Newly Registered Companies, UK, Norway, Finland, France](https://apify.com/mambalabs/new-company-registrations-feed?fpr=mamba) | `g2WfZhWvCtc57g2Jo` |
| [News and Media Mention Monitor](https://apify.com/mambalabs/news-media-mention-monitor?fpr=mamba) | `gol1PPUKrsIk4QLBd` |
| [Newsletter Sponsor Tracker](https://apify.com/mambalabs/newsletter-sponsor-tracker?fpr=mamba) | `qSwpqxD1TiPZpLQHv` |
| [Open Tender and RFP Finder](https://apify.com/mambalabs/open-tender-rfp-finder?fpr=mamba) | `kPTGz6t6TFoUUyfaO` |
| [Outbound Stack Detector](https://apify.com/mambalabs/outbound-infrastructure-fingerprint?fpr=mamba) | `v43UJC8r7qW7cBSTG` |
| [Page Finder and Extractor](https://apify.com/mambalabs/page-finder-extractor?fpr=mamba) | `TpurgcOZbVnknlaiC` |
| [Partner and Member Directory Extractor](https://apify.com/mambalabs/partner-member-directory-extractor?fpr=mamba) | `ZX0XJPPUvnFJxeC1a` |
| [People Finder & Email Verifier](https://apify.com/mambalabs/people-finder?fpr=mamba) | `LEgloG7tWgQl4o6TD` |
| [Person LinkedIn URL Resolver](https://apify.com/mambalabs/person-linkedin-url-resolver?fpr=mamba) | `ssuyPV8LnEsL8qbnb` |
| [Person Social Footprint Mapper](https://apify.com/mambalabs/person-social-footprint-mapper?fpr=mamba) | `jfQXa2zW9FHCJot9K` |
| [Personal Email to Company Resolver](https://apify.com/mambalabs/personal-email-to-company-resolver?fpr=mamba) | `AefT5Ye6YNPFQwJBf` |
| [Pinterest Brand Presence Mapper](https://apify.com/mambalabs/pinterest-brand-presence-mapper?fpr=mamba) | `d1HvjZfKhgvWsoEwn` |
| [Podcast Guest and Host Finder](https://apify.com/mambalabs/podcast-guest-host-finder?fpr=mamba) | `o2MGSvgbSLeeXOsIo` |
| [Product Hunt Daily Launches with Maker Domains](https://apify.com/mambalabs/product-hunt-launches-feed?fpr=mamba) | `O4VX63drWK9Y9x641` |
| [Prospect Engine](https://apify.com/mambalabs/b2b-prospect-engine?fpr=mamba) | `q9rT6v64nUJdPexOQ` |
| [Public Feature Board and Roadmap Monitor](https://apify.com/mambalabs/public-feature-board-roadmap-monitor?fpr=mamba) | `rcHF5gj5r2Vqnry35` |
| [Publishing Frequency Tracker](https://apify.com/mambalabs/blog-publishing-frequency?fpr=mamba) | `TbLwaUUATdYb6wp4N` |
| [Recent Funding Rounds Feed](https://apify.com/mambalabs/recent-funding-rounds-feed?fpr=mamba) | `KueVp9MOz7iOoAgDp` |
| [Reddit Brand Presence Mapper](https://apify.com/mambalabs/reddit-brand-presence-mapper?fpr=mamba) | `pKQZmDaT70SEb54bZ` |
| [Reddit Search and Thread Scraper](https://apify.com/mambalabs/reddit-search-thread-scraper?fpr=mamba) | `4Gsth5cP2Xt9V2xDN` |
| [Reporting Window Finder](https://apify.com/mambalabs/public-company-reporting-window-finder?fpr=mamba) | `uINxR7a1IW8qUTRUX` |
| [Sequencer Event Poller](https://apify.com/mambalabs/sequencer-event-poller?fpr=mamba) | `S6s8Rjd61tGdrMRk4` |
| [Sequencer Lead Push](https://apify.com/mambalabs/clay-to-instantly-smartlead-push?fpr=mamba) | `0Jv27VeWM5tSZQs9x` |
| [Shopify App Store and Chrome Web Store Listings](https://apify.com/mambalabs/shopify-app-store-chrome-web-store-listings?fpr=mamba) | `gaY0BzkLyN77mD3wI` |
| [Substack Newsletter and Posts Scraper](https://apify.com/mambalabs/substack-scraper?fpr=mamba) | `UEFsdwiPLmPNVy9xd` |
| [Team Page People Extractor](https://apify.com/mambalabs/team-page-people-extractor?fpr=mamba) | `j8a9zX0k4mNbvDbWK` |
| [Tech Stack Signal Detector](https://apify.com/mambalabs/gtm-tech-stack-signal-scraper?fpr=mamba) | `qyd7nNyqFPelQViBx` |
| [Threads Posts by Keyword, Exact Match](https://apify.com/mambalabs/threads-keyword-search?fpr=mamba) | `2OT8K8RiEEWtaj2MW` |
| [TikTok Brand Presence Mapper](https://apify.com/mambalabs/tiktok-brand-presence-mapper?fpr=mamba) | `fco8FvoJcSafbeyd1` |
| [Trustpilot Reputation Enricher](https://apify.com/mambalabs/review-platform-reputation-enricher?fpr=mamba) | `3lIqfCt61j4hqE1xz` |
| [US and UK Contract Award Winners by Company](https://apify.com/mambalabs/public-award-monitor?fpr=mamba) | `zhEtllASykOcx9hJ8` |
| [VC and Accelerator Portfolio List Builder](https://apify.com/mambalabs/vc-accelerator-portfolio-list-builder?fpr=mamba) | `chH8hrfuoqqolW06m` |
| [Website Accessibility Checker, WCAG 2.2 AA](https://apify.com/mambalabs/wcag-accessibility-audit?fpr=mamba) | `P3jBj3FRghKEhX52z` |
| [Website Phrase and Business Model Classifier](https://apify.com/mambalabs/website-phrase-business-model-classifier?fpr=mamba) | `CBuZ9k7sRwBeiKiCS` |
| [Website Traffic Rank Estimator](https://apify.com/mambalabs/website-traffic-rank-estimator?fpr=mamba) | `GnOFUzlNVIoXgeJjH` |
| [Work Email Waterfall](https://apify.com/mambalabs/email-waterfall-orchestrator?fpr=mamba) | `OT6xqTFThC0Rjf7Zj` |
| [Workplace Program Detector](https://apify.com/mambalabs/workplace-program-detector?fpr=mamba) | `Li6pPDhqbdzFz3h7G` |
| [X Brand Presence Mapper](https://apify.com/mambalabs/x-brand-presence-mapper?fpr=mamba) | `oLOgadhHUkNAyDA3w` |
| [YouTube Channel from Company Domain](https://apify.com/mambalabs/youtube-channel-transcript-extractor?fpr=mamba) | `6hSpD3kd2s2IQ4VSs` |

Built by [Mamba Labs](https://apify.com/mambalabs).

# Actor input Schema

## `server_urls` (type: `array`):

HTTP endpoints of MCP servers. Streamable HTTP is tried first, then the older HTTP plus SSE transport.

## `npm_packages` (type: `array`):

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.

## `registry_search` (type: `array`):

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.

## `max_servers` (type: `string`):

Most servers to check per registry search term, up to 200. Default 25.

## `snapshot_key` (type: `string`):

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.

## `previous_snapshot` (type: `string`):

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.

## `timeout_seconds` (type: `string`):

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.

## `include_resources_prompts` (type: `string`):

Also list the server's resources and prompts and report what changed in them. Default true.

## `auth_headers` (type: `string`):

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.

## `max_charge_usd` (type: `string`):

Optional. The run stops before a charge that would pass this amount. Free rows are always returned.

## `source_tag` (type: `string`):

Internal attribution tag. Leave empty.

## Actor input object example

```json
{
  "server_urls": [
    "https://mcp.deepwiki.com/mcp",
    "https://knowledge-mcp.global.api.aws"
  ],
  "max_servers": "25",
  "snapshot_key": "default",
  "timeout_seconds": "20",
  "include_resources_prompts": "true"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `run_summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "server_urls": [
        "https://mcp.deepwiki.com/mcp",
        "https://knowledge-mcp.global.api.aws"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("mambalabs/mcp-server-change-health-monitor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "server_urls": [
        "https://mcp.deepwiki.com/mcp",
        "https://knowledge-mcp.global.api.aws",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("mambalabs/mcp-server-change-health-monitor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "server_urls": [
    "https://mcp.deepwiki.com/mcp",
    "https://knowledge-mcp.global.api.aws"
  ]
}' |
apify call mambalabs/mcp-server-change-health-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mambalabs/mcp-server-change-health-monitor"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/IeqjWF9U0BdDQFY08/builds/wd1XTxCCJQMnjDIt1/openapi.json
