II.
MCPTransport JSON
Structured · livemcp-transport:streamable-http
Streamable HTTP json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "mcp-transport:streamable-http",
"_kind": "MCPTransport",
"_file": "compute/mcp-transports/streamable-http.yaml",
"_cluster": "compute",
"attributes": {
"displayName": "Streamable HTTP",
"kind": "streamable-http",
"specVersion": "2025-03-26",
"currentSpecRevision": "2025-11-25",
"specRevisions": [
"2025-03-26",
"2025-06-18",
"2025-11-25"
],
"status": "live",
"streaming": "full",
"specUrl": "https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#streamable-http",
"connectionLifecycle": "Single MCP endpoint, dual-direction over HTTP:\n 1. Client POSTs `initialize` to the MCP endpoint URL.\n 2. Server responds 200 with `initialize` result; if it returns the\n `Mcp-Session-Id` response header, the client MUST echo it on\n every subsequent request as `Mcp-Session-Id: <id>`.\n 3. Client POSTs `notifications/initialized`. Session is ready.\n 4. Client may also open a long-lived GET on the same endpoint\n requesting `Accept: text/event-stream` to receive server-pushed\n notifications/requests asynchronously (the \"listen\" channel).\n 5. Shutdown: client may DELETE the endpoint with the session id to\n explicitly terminate; server may end the session by responding\n 404 to a session-bearing request.\n",
"capabilityNegotiation": "Identical to stdio: `initialize` request/response carrying\n`protocolVersion`, `clientInfo`/`serverInfo`, and the `capabilities`\nobject. The protocol version negotiated here MUST match the value\nsent on subsequent requests via the `MCP-Protocol-Version` header\n(mandatory from spec revision 2025-06-18).\n",
"notificationModel": "Two notification paths:\n - Server-to-client notifications/requests are delivered as SSE\n `message` events on the long-lived GET stream (or on the SSE body\n of a POST response while a request is in-flight).\n - Client-to-server notifications are sent as POST bodies with no\n `id`; server returns 202 Accepted with empty body.\nServer SHOULD include an `id:` SSE field on each event to enable\n`Last-Event-ID`-based resumption.\n",
"reconnectPolicy": "Session-scoped reconnect via `Mcp-Session-Id`:\n - On connection loss, client reopens the GET listen channel with\n the same `Mcp-Session-Id` and `Last-Event-ID: <last>` to resume\n the SSE stream from the last successfully received event.\n - If the server responds 404 to the resumed request, the session\n is gone; the client must redo `initialize`.\n",
"authentication": "Bearer tokens via the standard `Authorization` header\n(`Authorization: Bearer <token>`). From spec revision 2025-06-18 the\nserver is classified as an OAuth 2.1 Resource Server; client obtains\ntokens via OAuth Authorization Code + PKCE against an Authorization\nServer discovered through `WWW-Authenticate` / RFC 9728 protected-\nresource metadata, with RFC 8707 Resource Indicators binding tokens\nto the MCP endpoint URL.\n",
"streamingFraming": "SSE on response bodies: each event is `event: message\\ndata: <json>\\n\\n`\n(event name `message` carrying a single JSON-RPC message). Servers\nSHOULD attach an `id:` field per event for resumption. JSON-RPC\nmessage-id discipline is standard. The 2025-06-18 revision removed\nJSON-RPC batch arrays — every HTTP body carries exactly one JSON-RPC\nmessage.\nMandatory request header from spec 2025-06-18: `MCP-Protocol-Version: <rev>`.\n"
},
"outgoingEdges": [
{
"from": "mcp-transport:streamable-http",
"to": "agent-runtime-impl:a5c.runtime@current",
"kind": "spoken_by",
"attributes": {}
},
{
"from": "mcp-transport:streamable-http",
"to": "agent-runtime-impl:babysitter-agent.runtime@current",
"kind": "spoken_by",
"attributes": {}
},
{
"from": "mcp-transport:streamable-http",
"to": "agent-runtime-impl:babysitter.runtime@current",
"kind": "spoken_by",
"attributes": {}
},
{
"from": "mcp-transport:streamable-http",
"to": "agent-runtime-impl:babysitter-sdk.runtime@current",
"kind": "spoken_by",
"attributes": {}
},
{
"from": "mcp-transport:streamable-http",
"to": "agent-runtime-impl:claude-agent-sdk.runtime@current",
"kind": "spoken_by",
"attributes": {}
},
{
"from": "mcp-transport:streamable-http",
"to": "agent-runtime-impl:claude-code.runtime@1.x",
"kind": "spoken_by",
"attributes": {}
},
{
"from": "mcp-transport:streamable-http",
"to": "agent-runtime-impl:codex-app-server.runtime@current",
"kind": "spoken_by",
"attributes": {}
},
{
"from": "mcp-transport:streamable-http",
"to": "agent-runtime-impl:codex.runtime@1.x",
"kind": "spoken_by",
"attributes": {}
},
{
"from": "mcp-transport:streamable-http",
"to": "agent-runtime-impl:codex-sdk.runtime@current",
"kind": "spoken_by",
"attributes": {}
}
],
"incomingEdges": [
{
"from": "agent-runtime-impl:a5c.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "connects",
"attributes": {}
},
{
"from": "agent-runtime-impl:a5c.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "speaks",
"attributes": {}
},
{
"from": "agent-runtime-impl:babysitter-agent.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "connects",
"attributes": {}
},
{
"from": "agent-runtime-impl:babysitter-agent.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "speaks",
"attributes": {}
},
{
"from": "agent-runtime-impl:babysitter.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "connects",
"attributes": {}
},
{
"from": "agent-runtime-impl:babysitter.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "speaks",
"attributes": {}
},
{
"from": "agent-runtime-impl:babysitter-sdk.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "connects",
"attributes": {}
},
{
"from": "agent-runtime-impl:babysitter-sdk.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "speaks",
"attributes": {}
},
{
"from": "agent-runtime-impl:claude-agent-sdk.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "connects",
"attributes": {}
},
{
"from": "agent-runtime-impl:claude-agent-sdk.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "speaks",
"attributes": {}
},
{
"from": "agent-runtime-impl:claude-code.runtime@1.x",
"to": "mcp-transport:streamable-http",
"kind": "connects",
"attributes": {}
},
{
"from": "agent-runtime-impl:claude-code.runtime@1.x",
"to": "mcp-transport:streamable-http",
"kind": "speaks",
"attributes": {}
},
{
"from": "agent-runtime-impl:codex-app-server.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "connects",
"attributes": {}
},
{
"from": "agent-runtime-impl:codex-app-server.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "speaks",
"attributes": {}
},
{
"from": "agent-runtime-impl:codex.runtime@1.x",
"to": "mcp-transport:streamable-http",
"kind": "connects",
"attributes": {}
},
{
"from": "agent-runtime-impl:codex.runtime@1.x",
"to": "mcp-transport:streamable-http",
"kind": "speaks",
"attributes": {}
},
{
"from": "agent-runtime-impl:codex-sdk.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "connects",
"attributes": {}
},
{
"from": "agent-runtime-impl:codex-sdk.runtime@current",
"to": "mcp-transport:streamable-http",
"kind": "speaks",
"attributes": {}
}
]
}