Is your MCP server ready for the 2026-07-28 spec? Scan source for hidden session state and deprecated primitives, or probe a live server for a migration readiness report.
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"mcp-migration","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# mcp-migration **Is your MCP server ready for the 2026-07-28 spec?** The [2026-07-28 revision](https://modelcontextprotocol.io/specification/draft/changelog) is the largest change to the Model Context Protocol since launch: the protocol goes **stateless**. `Mcp-Session-Id` is gone, the `initialize` handshake is gone, any request can land on any server instance, list responses must carry cache metadata, and Roots/Sampling/Logging are deprecated. Nearly every existing server was written against the stateful spec. `mcp-migration` finds your hidden session dependencies before your clients do: - **`mcp-migration scan <path>`** — static scan of a server's source tree (Python, TypeScript, Go, C#, Java, ...). Flags removed protocol features, deprecated primitives, pre-2.0 SDK pins, and — for Python — the classic hazard: **in-memory state mutated inside tool handlers**, which silently breaks once requests stop sticking to one instance. - **`mcp-migration probe <url>`** — points at a *running* Streamable HTTP server, speaks the old protocol to it, and reports a readiness checklist: does it mint sessions, does it refuse sessionless requests, does it emit `ttlMs`/`cacheScope`/`resultType`, does it implement `server/discover`, which error code does it use for missing resources. Every finding cites the SEP that changed the behaviour and says what to do instead. Zero dependencies, Python ≥ 3.10. ## Install ``` pip install mcp-migration ``` ## Scan a source tree ``` $ mcp-migration scan path/to/server server.py:12 warning S004 handler 'add_to_basket' mutates module-level 'BASKETS' — this state is lost when requests land on another instance transport.py:88 blocker S001 references the removed Mcp-Session-Id header pyproject.toml:14 info C302 python `mcp` requirement '>=1.2.0' predates the 2026-07-28 line — test against mcp==2.0.0b1 3 file(s) checked against MCP 2026-07-28: 1 blocker(s), 1 warning(s), 1 info(s) ``` Exit code is `1` when blockers are found …
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.