{
  "schema_version": "rangoon.article.v1",
  "id": "https://rangoon.ai/insights/archive-mcp-june-2025-spec-revision/",
  "url": "https://rangoon.ai/insights/archive-mcp-june-2025-spec-revision/",
  "markdown_url": "https://rangoon.ai/insights/archive-mcp-june-2025-spec-revision/index.md",
  "json_url": "https://rangoon.ai/insights/archive-mcp-june-2025-spec-revision/index.json",
  "title": "MCP’s June 2025 revision made transport and authorization compatibility testable contracts",
  "summary": "The Model Context Protocol published its 2025-06-18 specification revision, adding a dated compatibility point for streamable HTTP, authorization and tool metadata.",
  "language": "en",
  "author": {
    "name": "Rangoon Editorial",
    "url": "https://rangoon.ai/insights/editorial/"
  },
  "publisher": {
    "name": "Rangoon",
    "maintainer": "Hypler",
    "url": "https://rangoon.ai/"
  },
  "format": "News analysis",
  "topic": {
    "slug": "agents",
    "label": "Agent systems",
    "url": "https://rangoon.ai/insights/topics/agents/"
  },
  "tags": [
    {
      "slug": "mcp",
      "label": "MCP",
      "url": "https://rangoon.ai/insights/tags/mcp/"
    },
    {
      "slug": "model-context-protocol",
      "label": "Model Context Protocol",
      "url": "https://rangoon.ai/insights/tags/model-context-protocol/"
    },
    {
      "slug": "protocol-revision",
      "label": "protocol revision",
      "url": "https://rangoon.ai/insights/tags/protocol-revision/"
    },
    {
      "slug": "tool-security",
      "label": "tool security",
      "url": "https://rangoon.ai/insights/tags/tool-security/"
    }
  ],
  "dates": {
    "published": "2026-10-23",
    "updated": "2026-10-23",
    "event": "2025-06-18"
  },
  "event_source_id": 1,
  "retrospective": true,
  "reading_minutes": 3,
  "takeaways": [
    "Protocol revisions need negotiated-version and transport tests.",
    "Tool annotations are hints, not a permission boundary.",
    "Authorization design must be checked against actual client and server roles."
  ],
  "source_note": "Historical reporting: MCP specification revision 2025-06-18 is a versioned primary document. This article does not give current protocol implementation instructions or security certification.",
  "sources": [
    {
      "id": 1,
      "title": "Model Context Protocol specification: 2025-06-18 changelog",
      "url": "https://modelcontextprotocol.io/specification/2025-06-18/changelog",
      "published": "2025-06-18"
    },
    {
      "id": 2,
      "title": "Model Context Protocol specification: 2025-06-18 schema",
      "url": "https://modelcontextprotocol.io/specification/2025-06-18/schema",
      "published": "2025-06-18"
    }
  ],
  "image": {
    "url": "https://rangoon.ai/assets/editorial/archive-mcp-june-2025-spec-revision-diagram-v1.webp",
    "thumbnail_url": "https://rangoon.ai/assets/editorial/archive-mcp-june-2025-spec-revision-diagram-v1-thumb.webp",
    "alt": "Original developer tools review diagram: MCP capability gate. Concepts: Client, Version, Server, Schema, Auth, Policy, Audit. Editorial checklist, not vendor test results or an official legal determination.",
    "type": "original-diagram",
    "caption": "MCP capability gate. Original Rangoon explanatory diagram: concepts for editorial review, not measured results, an official legal determination, vendor interface or event photograph.",
    "credit": "Rangoon / Hypler",
    "source_url": "https://rangoon.ai/brand/",
    "rights_url": "https://rangoon.ai/terms/#media-use",
    "rights_note": "Hypler artwork permissions do not grant rights to third-party marks or imply endorsement."
  },
  "sections": [
    {
      "id": "event-record",
      "url": "https://rangoon.ai/insights/archive-mcp-june-2025-spec-revision/#event-record",
      "heading": "The June revision made protocol version a concrete interoperability datum",
      "paragraphs": [
        "The Model Context Protocol documentation publishes a versioned 2025-06-18 specification, including architecture, transport, authorization and schema material. Its schema describes tool annotations such as read-only, destructive, idempotent and open-world hints; the document explicitly says clients must not make tool-use decisions based on annotations from untrusted servers. The sources establish a revision and a security-relevant limitation. They do not say that an implementation of the version is secure, compatible, or appropriate for a particular data source.",
        "The revision’s versioned URL is important operational evidence. It lets a team bind its conformance tests to a specific protocol text instead of a moving documentation homepage. This story focuses on the June revision, where transport and authorization rules became a concrete compatibility target rather than an undated description of MCP."
      ],
      "bullets": [],
      "source_ids": [
        1,
        2
      ]
    },
    {
      "id": "technical-boundary",
      "url": "https://rangoon.ai/insights/archive-mcp-june-2025-spec-revision/#technical-boundary",
      "heading": "Transport and tool metadata belong in the interoperability contract",
      "paragraphs": [
        "For an MCP integration, record protocol revision, transport type, initialization negotiation, client identity, server identity, tool schema, authorization route and error mapping. Streamable HTTP and local process transports create different credential and origin assumptions. Likewise, a claimed read-only tool may return data that is stale or sensitive, while a destructive hint cannot stop a server from performing a harmful action. Treat server declarations as information to display and inspect, never as sole enforcement.",
        "Initialization should produce an allowlisted capability set, not a blank permission check. If a server advertises an unfamiliar experimental extension, surface it for review rather than treating it as equivalent to a previously tested tool. The client’s policy can then accept the known subset while retaining the protocol connection for safe discovery."
      ],
      "bullets": [],
      "source_ids": [
        1,
        2
      ]
    },
    {
      "id": "operating-contract",
      "url": "https://rangoon.ai/insights/archive-mcp-june-2025-spec-revision/#operating-contract",
      "heading": "Compatibility testing should include an untrusted server case",
      "paragraphs": [
        "Test version mismatch, expired credentials, changed tool schema, duplicate request identifiers, a server that returns malformed results and a server whose tool labels conflict with observed behavior. Enforce user and service permissions in the client or gateway that owns the action boundary. Log selected revision and server artifact digest with every session. That lets an incident response distinguish a protocol mismatch from a model decision or a compromised tool endpoint.",
        "A transport test should also cover origin handling for HTTP and environment-variable handling for local processes. These modes fail differently: an HTTP server can receive a cross-origin request, while a local child process can inherit too much host context. Treat each as a separate security test case, even when both expose the same tool names."
      ],
      "bullets": [],
      "source_ids": [
        1,
        2
      ]
    },
    {
      "id": "historical-analysis",
      "url": "https://rangoon.ai/insights/archive-mcp-june-2025-spec-revision/#historical-analysis",
      "heading": "Analysis: protocol adoption begins with a capability inventory",
      "paragraphs": [
        "List every server, its owner, data class, network destination, tools, scopes, authentication method and release version before adopting it into an agent workflow. Then decide which capabilities are allowed for each task. This prevents a broad “MCP enabled” label from masking a high-risk write tool. The June specification supplies vocabulary and rules; local capability governance remains an implementation responsibility.",
        "Inventory review should run again when a server adds a tool or changes a tool schema. This is a material capability change even if the MCP revision stays constant. A change-control record should show whether the new capability was denied, tested with synthetic data, or intentionally activated for a defined user group."
      ],
      "bullets": [],
      "source_ids": [
        1,
        2
      ]
    }
  ],
  "project_context": null,
  "related_links": [],
  "permissions_url": "https://rangoon.ai/permissions.txt",
  "content_hash": "sha256:cd510e75ef6cadb9099bf86a15e8315fcd43d68b9b3e6967f0a368a6cdf5b576"
}
