Reference · API + embed integrations

MCP server uptime API

Read your MCP server's live uptime status, latency history, and schema-drift events as JSON. Drop a badge on your README, build a status dashboard, route alerts into your own incident-management system. Free read access for public servers; authenticated access on the Author tier.

TL;DR

Three integration paths for your MCP server's status data: (1) the embed widget — one <script> tag that renders a live badge anywhere, ~3KB gzipped, free; (2) the JSON read endpoint at /api/embed-status/<slug> — public, no auth, returns current state and 24h trend; (3) the authenticated API on the Author tier ($9/mo) — full 90-day history, alert webhooks, and your private servers. Join the waitlist to claim your slug.

The free embed badge

The simplest integration. One script tag, configured by data-* attributes on a mount element. No build step, zero dependencies, async-loaded so it never blocks your page render. Two display modes: a CTA card (default) or an inline compact badge.

<div id="alivemcp-embed" data-server="your-server-slug" data-style="badge"></div>
<script async src="https://alivemcp.com/embed.js"></script>

The widget fetches the JSON endpoint on mount, renders a status pill (Live / Degraded / Down / Unknown), and links back to your full status page on AliveMCP. See the live preview for all four mount variants and theme modes.

The public JSON endpoint

If you'd rather build your own UI — a custom dashboard, a Slack-bot status command, a CI guardrail — read the same data the badge consumes:

GET https://alivemcp.com/api/embed-status/<slug>

Returns:

{
  "slug": "your-server-slug",
  "status": "live" | "degraded" | "down" | "unknown",
  "last_probe_at": "2026-04-25T12:34:56Z",
  "uptime_24h_pct": 99.83,
  "p95_latency_ms_24h": 412,
  "schema_drift_in_last_24h": false,
  "status_page_url": "https://alivemcp.com/status/your-server-slug"
}

No auth required for public servers. Cache-Control set to 60 seconds so a viral README doesn't surprise the upstream. CORS-open for browser fetch.

The authenticated API (Author + Team)

Sign up on the Author tier ($9/mo) and you get an API key for richer reads:

The Team tier ($49/mo) adds the same APIs against your private endpoints and a status-page subdomain. See full pricing.

Why this exists at the API layer

A status feed that's only viewable on someone else's web page is barely a feed. Three concrete jobs the API enables:

The contract is intentionally small and stable: status enum, single-window summary, link back to the status page. We resist adding fields users don't ask for.

Auth, rate limits, and stability

Related questions

Is the API live today?

The public read endpoint and embed widget are shipped — you can see the JSON shape and badge behaviour on the embed preview page. The authenticated v1 API ships with the paid tiers; the schema documented here is what we're building against.

Can I use the public endpoint without signing up?

Yes. Once your server is in any of the public registries we crawl (MCP.so, Glama, PulseMCP, Smithery, the Official Registry), it gets a slug automatically and is readable. No account needed.

What about non-MCP REST APIs?

AliveMCP is MCP-specific by design. For generic REST uptime, see how UptimeRobot fits — it's the right tool for non-protocol HTTP probes.

Where do schema-drift events come from?

Every 60 seconds the prober calls tools/list, canonicalises the response, and SHA-256-hashes it. A change in hash triggers a drift event with the structural diff. Background in our schema-drift deep-dive.

Further reading