← back to gallery

MCP Spec Watch

Live tracker for MCP protocol revisions and SDK breaking changes across the official ecosystem

dev-toolsmcpmodel-context-protocolsdkbreaking-changesrelease-trackerdeveloper-tools
Open product ↗

mcp-spec-watch

Live tracker for MCP (Model Context Protocol) specification revisions and SDK breaking changes — see what shipped, what's coming, and which client/server SDKs are about to break.

The MCP ecosystem grew past 12,000 public servers and a dozen SDKs, but the protocol underneath keeps moving:

mcp-spec-watch is the single dashboard that surfaces all of that, refreshed automatically from public GitHub APIs and the official MCP registry. No auth, no mocks, no shoehorned LLM calls.

---

Live URL

https://holyai.me/mcp-spec-watch/

Mounted under BASE_PATH=/mcp-spec-watch so it can sit behind the same nginx fan-out as every other Holy AI gallery product.

---

Data sources (every datapoint is fetched at runtime)

| Source | URL | Auth | Refresh interval |
|---|---|---|---|
| GitHub Releases | https://api.github.com/repos/modelcontextprotocol/{repo}/releases?per_page=50 | none (anonymous OK; optional GITHUB_TOKEN lifts the 60-req/h ceiling to 5000/h) | every 30 minutes |
| GitHub Tags fallback | https://api.github.com/repos/modelcontextprotocol/{repo}/tags?per_page=50 | none | every 30 minutes (only when releases is empty) |
| GitHub Commits (spec) | https://api.github.com/repos/modelcontextprotocol/modelcontextprotocol/commits?path=docs/specification&per_page=50 | none | every 60 minutes |
| Raw versioning index | https://raw.githubusercontent.com/modelcontextprotocol/modelcontextprotocol/main/docs/specification/versioning.md (plus three alternate paths) | none | every 60 minutes |
| Official MCP Registry | https://registry.modelcontextprotocol.io/v0/servers?limit=100 (paginated) | none | every 6 hours |
| SEP folder listing | https://api.github.com/repos/modelcontextprotocol/modelcontextprotocol/contents/SEP (plus fallbacks: seps, docs/seps, proposals) | none | every 6 hours |
| Raw SEP markdown | https://raw.githubusercontent.com/modelcontextprotocol/modelcontextprotocol/main/{path} | none | every 6 hours |

If a source is down we log the failure to the fetch_log table, keep serving the cached SQLite rows, and degrade gracefully.

Repos tracked

python-sdk, typescript-sdk, java-sdk, kotlin-sdk, csharp-sdk, ruby-sdk, swift-sdk, go-sdk, rust-sdk, specification, inspector, registry, servers — all under the modelcontextprotocol GitHub org.

Breaking-change detection (deterministic, no LLM)

For every release we parse the body markdown for these signals:

The matched excerpt is stored verbatim alongside the release row, so the dashboard can show the receipt rather than a confidence score.

---

Running locally

cp .env.example .env       # GITHUB_TOKEN is optional
npm install
npm start                  # listens on :4799

Then open http://localhost:4799/mcp-spec-watch/.

Health check: curl http://localhost:4799/mcp-spec-watch/health — always 200 if the process is up, even before the first fetch lands.

---

HTTP API

All endpoints are mounted under /mcp-spec-watch and return JSON. No authentication.

| Method | Path | Description |
|---|---|---|
| GET | /mcp-spec-watch/health | Liveness + counters. |
| GET | /mcp-spec-watch/api/overview | KPI snapshot used by the SPA homepage. |
| GET | /mcp-spec-watch/api/sdks | All tracked SDK repos with latest tag, breaking flag, release count. |
| GET | /mcp-spec-watch/api/sdks/:repo/releases?limit=50 | Per-repo release history. |
| GET | /mcp-spec-watch/api/breaking?limit=50&days=90 | Releases flagged as breaking, newest first. |
| GET | /mcp-spec-watch/api/spec/revisions | Canonical spec revisions (dates + status). |
| GET | /mcp-spec-watch/api/spec/commits?limit=50 | Recent commits under docs/specification. |
| GET | /mcp-spec-watch/api/seps?status=all | SEP proposals grouped by status. |
| GET | /mcp-spec-watch/api/registry/trend?days=30 | Registry server-count snapshots over the window. |
| GET | /mcp-spec-watch/api/fetch-log?limit=50 | Recent fetcher activity (for transparency). |

---

Stack

---

Why this matters

If you ship an MCP server you care about three things: (1) does the spec version you target still validate, (2) did the SDK you depend on ship a major bump that breaks your stdio handlers, and (3) did a SEP just promote a breaking proposal to Final Comment Period. Today the only way to know is to subscribe to half a dozen GitHub repos and read changelogs by hand. This dashboard reads them for you.

---

License

MIT.