{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_x3qx22z48azb","handle":"mcp-migration","url":"https://wellknown.network/agents/mcp-migration","links":{"self":"https://wellknown.network/agents/mcp-migration/record.json","html":"https://wellknown.network/agents/mcp-migration","markdown":"https://wellknown.network/agents/mcp-migration/record.md","api":"https://wellknown.network/api/v1/agents/mcp-migration","status":"https://wellknown.network/api/v1/agents/mcp-migration/status","claim":"https://wellknown.network/agents/mcp-migration/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mcp-migration/claim.json","badge":"https://wellknown.network/agents/mcp-migration/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/mcp-migration/history","tools":"https://wellknown.network/api/v1/agents/mcp-migration/tools"},"ard":{"identifier":"urn:air::server:mcp-migration","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"mcp-migration","summary":"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.","description":"# mcp-migration\n\n**Is your MCP server ready for the 2026-07-28 spec?**\n\nThe [2026-07-28 revision](https://modelcontextprotocol.io/specification/draft/changelog)\nis the largest change to the Model Context Protocol since launch: the protocol\ngoes **stateless**. `Mcp-Session-Id` is gone, the `initialize` handshake is\ngone, any request can land on any server instance, list responses must carry\ncache metadata, and Roots/Sampling/Logging are deprecated. Nearly every\nexisting server was written against the stateful spec.\n\n`mcp-migration` finds your hidden session dependencies before your clients do:\n\n- **`mcp-migration scan <path>`** — static scan of a server's source tree\n  (Python, TypeScript, Go, C#, Java, ...). Flags removed protocol features,\n  deprecated primitives, pre-2.0 SDK pins, and — for Python — the classic\n  hazard: **in-memory state mutated inside tool handlers**, which silently\n  breaks once requests stop sticking to one instance.\n- **`mcp-migration probe <url>`** — points at a *running* Streamable HTTP server,\n  speaks the old protocol to it, and reports a readiness checklist: does it\n  mint sessions, does it refuse sessionless requests, does it emit\n  `ttlMs`/`cacheScope`/`resultType`, does it implement `server/discover`,\n  which error code does it use for missing resources.\n\nEvery finding cites the SEP that changed the behaviour and says what to do\ninstead. Zero dependencies, Python ≥ 3.10.\n\n## Install\n\n```\npip install mcp-migration\n```\n\n## Scan a source tree\n\n```\n$ mcp-migration scan path/to/server\nserver.py:12 warning S004 handler 'add_to_basket' mutates module-level 'BASKETS' — this state is lost when requests land on another instance\ntransport.py:88 blocker S001 references the removed Mcp-Session-Id header\npyproject.toml:14 info C302 python `mcp` requirement '>=1.2.0' predates the 2026-07-28 line — test against mcp==2.0.0b1\n\n3 file(s) checked against MCP 2026-07-28: 1 blocker(s), 1 warning(s), 1 info(s)\n```\n\nExit code is `1` when blockers are found …","publisher":{"name":"Poorva","url":null},"homepage":"https://github.com/PoorvaJ-WW/mcp-migration","repository":"https://github.com/PoorvaJ-WW/mcp-migration","version":"0.1.0","license":null,"protocols":["mcp"],"tags":["2026-07-28","lint","linter","mcp","migration","model-context-protocol","readiness","stateless"],"pricing":null,"endpoints":[{"url":"pypi:mcp-migration","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"code.refactoring","name":"Refactoring","confidence":1,"provenance":"declared"}],"categories":["code"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"mcp-migration","registry":"pypi","observedAt":"2026-10-22T10:31:53.173Z","publishedAt":"2026-07-15T04:11:16.880161Z","latestVersion":"0.1.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"mcp-migration","url":"https://pypi.org/project/mcp-migration/","firstSeenAt":"2026-09-10T02:23:49.621Z","fetchedAt":"2026-10-22T10:29:51.127Z","normalizedAt":"2026-10-22T10:29:51.127Z"}]},"firstSeenAt":"2026-09-10T02:23:49.621Z","updatedAt":"2026-10-22T10:31:53.173Z"}