Files
2026-07-10 15:02:09 +01:00

5.0 KiB

MCP Specification Reference

Quick-reference mirrors of each official Model Context Protocol specification revision, maintained as background for future Skald MCP work. The authoritative source of truth for every revision is the TypeScript schema (schema/<version>/schema.ts) in modelcontextprotocol/specification; these notes summarize each revision's structure, requirements, and deltas for fast lookup when implementing against crates/mcp-client/ and src/core/mcp/.

Each file follows the same template — At a glance → Architecture → Base Protocol (Messages / Lifecycle / Transports / Authorization / Versioning) → Server Features → Client Features → Changes vs previous → Skald relevance → References — so revisions can be diffed section by section.

Revisions

Revision Status Released Protocol style Headline File
2026-07-28 Draft / RC ~2026-05 (pre-release) Stateless, per-request caps Foundational redesign: stateless base, per-request negotiation, extensions framework; Sampling/Roots/Logging deprecated 2026-07-28-draft.md
2025-11-25 Latest Stable 2025-11-25 Stateful OIDC Discovery, icons, URL-mode elicitation, sampling tool-calling, experimental Tasks 2025-11-25.md
2025-06-18 Stable 2025-06-18 Stateful Streamable HTTP, Elicitation, structured tool output, OAuth Resource Indicators (RFC 8707) 2025-06-18.md
2024-11-05 Legacy 2024-11-05 Stateful First public release: stdio + HTTP+SSE, Resources/Prompts/Tools/Logging, Sampling/Roots 2024-11-05.md

Additional repo tags not given their own file (point-revisions of the spec lines above):

  • 2024-11-05-final — final revision of the 2024-11-05 line (covered in 2024-11-05.md).
  • 2024-10-07 — pre-public preliminary tag, superseded by the public 2024-11-05 release.
  • 2025-03-26 — intermediate revision (deprecated the HTTP+SSE transport); superseded by 2025-06-18.
  • 2025-11-25-RC — release candidate of the 2025-11-25 line.

Feature availability across revisions

Capability 2024-11-05 2025-06-18 2025-11-25 2026-07-28 (draft)
stdio transport
HTTP+SSE transport ✘ (replaced) ✘ (deprecated since 2025-03-26)
Streamable HTTP transport
Stateful connections ✘ (stateless, self-contained requests)
Per-request capability negotiation
Resources
Prompts
Tools (structured output outputSchema/structuredContent)
Tools (unstructured content[] only)
Logging (server feature / utility) ✘ deprecated (→ stderr / OpenTelemetry)
Icons metadata
Sampling ✘ deprecated (SEP-2577)
Roots ✘ deprecated (SEP-2577)
Elicitation (form mode) ✔ (only core client feature)
Elicitation (URL mode)
OAuth 2.1 authorization framework ✘ (not in core spec) ✔ (RFC 8707, RFC 9728) ✔ + OIDC Discovery + Client ID metadata ✔ (DCR deprecated → Client ID metadata)
JSON-RPC batching ✘ (removed)
Tasks experimental extension io.modelcontextprotocol/tasks
Extensions framework

Feature-lifecycle policy (introduced in the 2026-07-28 draft)

The draft formalizes how features are deprecated and removed (SEP-2577):

  • A deprecated feature is retained for at least 12 months and remains usable for interop.
  • It becomes eligible for removal in the first revision released on/after 2027-07-28.
  • Currently deprecated: Sampling, Roots, Logging, Dynamic Client Registration.

When implementing against the draft, treat these as present-but-don't-build-new-dependencies.

Source of truth

  • ../index.md — MCP subsystem overview (servers, transports, integration)
  • ../../mcp.mdMcpManager, transports, naming convention, enable/disable