MCP 2026-07-28 Conformance Matrix
Tracker: pm-55yf1t. The official 2026-07-28 schema and key-changes document are normative; this matrix assigns every revision-level change to one canonical pm owner and records executable evidence or an explicit open obligation.
| Requirement family | Canonical owner | Current disposition | Executable evidence |
|---|---|---|---|
| Stateless per-request version, client capabilities, and identity | pm-vae5ec | Implemented | tests/unit/sdk/mcp/protocol.spec.ts, tests/integration/mcp-stateless-protocol.spec.ts |
Mandatory server/discover, deterministic capabilities and identity |
pm-vae5ec | Implemented | direct SDK/server tests plus plugin and release real-process probes |
Unsupported version -32022 |
pm-vae5ec | Implemented | SDK and server negative controls |
Header mismatch -32020 and missing capability -32021 |
pm-vae5ec | Implemented in SDK, stdio, and Streamable HTTP | SDK negative controls and tests/integration/mcp-streamable-http.spec.ts |
Required result resultType; legacy omission means complete only at compatibility boundary |
pm-vae5ec | Implemented for modern pm results | SDK unit and modern direct-server tests |
| No modern initialize, initialized notification, ping, or protocol session | pm-sqvshj | Implemented with bounded legacy stdio adapter | modern removed-method and legacy handshake tests |
| Legacy interoperability covers every initialize-era revision the spec names | pm-edywqn | Implemented: 2025-11-25 and 2025-06-18 accepted, requested revision echoed |
tests/integration/mcp-handshake.spec.ts handshake matrix plus the plugin smoke assertProtocolHandshakeMatrix real-process gate and its negative control |
MRTR input_required, retry state, and reverse-request removal |
pm-rz9gep | Implemented for SDK and stateless stdio adapter | tests/unit/sdk/mcp/interactions.spec.ts; direct server negative controls |
subscriptions/listen, request-scoped streams, no SSE resumability |
pm-v7e337 | Implemented; consumer acceptance remains a per-release gate | subscription SDK, stdio, HTTP, backpressure, disconnect, and retry tests |
Official io.modelcontextprotocol/tasks extension |
pm-rzs24j | Implemented for eligible tool calls, durable lifecycle, and stdio methods; notifications remain with subscriptions owner | tests/unit/sdk/mcp/tasks.spec.ts, tests/integration/mcp-stateless-protocol.spec.ts |
| Cacheable list/read results, deterministic tools, JSON Schema 2020-12, any JSON structured content | pm-hv1x1x | Implemented for current pm tool/resource/prompt surfaces | SDK schema/cache tests and direct modern server surface suite |
| Issuer-bound authorization, client metadata documents, consent, headers, OpenTelemetry | pm-3zh9s4 | Implemented; deployment-specific identity-provider verification remains host-owned | authorization SDK adversarial tests, real HTTP bearer suite, and threat model |
| Stable MCP Apps negotiation, tool/resource metadata, fallback, sandboxing, and accessible views | pm-pznhee | Implemented in the public SDK and stateless server; exact-version journeys run in the published-release verifier | tests/unit/sdk/mcp/apps.spec.ts, tests/integration/mcp-stateless-protocol.spec.ts |
| Draft Skills over MCP list/get/read, compatibility, provenance, digests, bounds, and pagination | pm-8nzivt | Implemented against exact SEP-2640 draft revision; the published-release verifier checks negotiation and content digests | tests/unit/sdk/mcp/skills.spec.ts, tests/integration/mcp-stateless-protocol.spec.ts |
Per-request io.modelcontextprotocol/logLevel; omission forbids notifications/message |
pm-pd7nh0 | SDK validates the eight severity values and rejects malformed metadata with -32602; pm emits no protocol log notifications |
tests/unit/sdk/mcp/protocol.spec.ts, real stdio and Streamable HTTP negative controls |
Deprecated Roots, Sampling, Logging, HTTP+SSE, includeContext, dynamic registration |
pm-vzcisw | Canonical source ratcheted; bounded stdio adapter and dated migration policy remain | generated inventory, negative controls, adapter tests, and migration guide |
| Official schema, real stdio/HTTP, packed/published, npx/bunx, negative controls | pm-55yf1t | Conformance and released-consumer gates implemented; each release must produce its own acceptance evidence | SDK/server suites, plugin smokes, published-release verifier |
This matrix describes implementation coverage, not a blanket certification of every deployed artifact. Programme completion requires each owner's positive and negative tests plus exact packed and published consumer proof for the revision being assessed. A source fix does not retroactively change a released package. Read the live programme item pm-rs9vry for outstanding obligations.
Logging remains deprecated in the official revision. pm accepts its optional
request metadata for interoperability but does not advertise logging support
or emit notifications/message, even when a client opts in. The request-local
threshold is exposed by resolveMcpRequestContext as logLevel; it is never
inherited by the next request. Ordinary diagnostics continue through stderr or
the configured telemetry path. See the normative
request metadata schema.