Skip to content

Add Streamable HTTP transport to the MCP host (stdio parity, unauthenticated MVP) #161

Description

@mertsatilmaz

Carved out of #96 so the first slice of MCP transport work has a clean, reviewable home.

The MCP host currently supports stdio only (mcp_host.py / mcp_runtime.py, exposed through --mcp-host-target + --mcp-runtime-config since #145). This issue adds Streamable HTTP transport alongside it.

Scope

  • Config (mcp_runtime.py): accept transport: streamable_http on a server entry, with url and optional headers. Validate it the same way stdio entries are validated today.
  • Host (mcp_host.py): dispatch on server_config.transport to a _connect_streamable_http_server(...) alongside the existing _connect_stdio_server(...). Raise a clear AdapterError for unsupported transports and when the optional MCP SDK doesn't expose the client.
  • Behavior parity: stdio stays the default and its behavior is unchanged. HTTP runs must produce the same canonical trace shape (mcp_servers, mcp_tool_calls, mcp_eventsmcp_connection_initializedmcp_tools_discoveredmcp_tool_resultmcp_connection_closed).
  • Tests: focused transport-level coverage that doesn't require a live network service (fake/loopback in the spirit of tests/fixtures/mcp_servers/).
  • Docs: extend the "MCP host adapter" section of docs/adapters.md with a runtime-config example.
  • CHANGELOG: [Unreleased] entry (new user-visible config surface).

Out of scope (stays in #96)

OAuth / authenticated transports, SSE, MCP resources, prompts, sampling, default-deny roots.

Notes

An unauthenticated MVP is the right first step — auth lands in a follow-up so the transport plumbing can be reviewed on its own.

Assigned to @Flames4fun, who built the stdio host runtime (#107) and the CLI wiring (#145).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    adapterTarget adapters and live execution integrations.enhancementNew feature or requesthttpHTTP target contract, HTTP adapter behavior, and HTTP examples.mcp

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions