A transport is Streamable HTTP, stdio, or legacy SSE, selected by type. Each type requires its own fields, such as url or command, and accepts only the properties in its Section 6.2 table.
Requirement
Section titled “Requirement”A Transport Object matches exactly one transport type and contains its required fields and only its defined properties.
Details
Section titled “Details”Rule ID: mcpdesc.transport.members
Owner: mcpdesc
Surface: Transport
Kind: structural
Requirement level: must
Protocol versions: independent of the MCP protocol version
Document schema locations: #/$defs/transport
Status: internal · Enforcement: internal
Required by
Section titled “Required by”- MCP Description 0.9.0, Section 6.2
- 6. Transports: req-transport-streamable-http-fields
-
- Transports: req-transport-stdio-fields
-
- Transports: req-transport-sse-fields
-
- Transports: req-transport-type
-
- Transports: req-transport-closed
-
- Serialization: req-serialization-value-formats
Examples
Section titled “Examples”Valid example
Section titled “Valid example”Source: expected-valid/discriminated-unions.json · Selected: /transports
[ { "type": "stdio", "command": "chess-rating", "args": [ "serve" ], "env": { "MODE": "test" }, "x-vendor": { "nested": [ 1, null ] } }, { "type": "streamable-http", "url": "https://example.test/mcp" }]Invalid example
Section titled “Invalid example”Source: expected-invalid/malformed-info-transport-tag-resource.json · Selected: /transports/0
{ "type": "stdio", "args": [ "--verbose" ]}Invalid example
Section titled “Invalid example”Source: expected-invalid/transport-arg-typo.json · Selected: /transports/0
{ "type": "stdio", "command": "chess-rating", "arg": [ "serve" ]}Invalid example
Section titled “Invalid example”Source: expected-invalid/transport-independent-defects.json · Selected: /transports
[ { "type": "stdio", "command": 5, "arg": [ "serve" ] }, { "type": "stdio", "command": "chess-rating", "env": { "MODE": 1 } }]Invalid example
Section titled “Invalid example”Source: expected-invalid/transport-discriminator-errors.json · Selected: /transports
[ { "command": "run" }, { "type": "unknown" }, { "type": null }, { "type": 5 }, null, "stdio", 5, [], true, { "type": "stdio" }, { "type": "stdio", "command": "run", "url": "https://example.test/mcp" }, { "type": "stdio", "command": "run", "X-vendor": true }]Rule Source Code
Section titled “Rule Source Code”transport.yaml at immutable tag v0.9.0-rc.3.