Skip to content

feat(transport): add Streamable HTTP transport at /mcp#117

Closed
basebandit wants to merge 2 commits into
feat/tool-annotationsfrom
feat/streamable-http
Closed

feat(transport): add Streamable HTTP transport at /mcp#117
basebandit wants to merge 2 commits into
feat/tool-annotationsfrom
feat/streamable-http

Conversation

@basebandit
Copy link
Copy Markdown
Owner

Summary

Adds the Streamable HTTP transport (MCP spec 2025-03-26) at /mcp alongside the existing legacy SSE transport.

  • New: kai.Server.ServeStreamableHTTP(addr) using mcp-go's server.NewStreamableHTTPServer.
  • Refactor: shared registerOpsEndpoints and runHTTP helpers used by both HTTP transports — no behavioural change to SSE path.
  • CLI: --transport=streamable-http (or http) selects the new transport. --transport=sse is accepted as a deprecated alias of sse-legacy (logs a warning). Unknown values now return a clear error instead of silently falling back to stdio.
  • README updates intentionally deferred to avoid conflict with Docs/readme and docker publishing #108.

Why

The HTTP+SSE transport (two endpoints, /sse + /message) was deprecated in spec 2025-03-26. Modern clients (Inspector ≥ 0.10, Claude.ai web) expect a single /mcp endpoint with Mcp-Session-Id resumption. SSE stays available behind sse-legacy for one release cycle.

Stacked on

Based on feat/tool-annotations (#116). Merge order: #114#115#116 → this.

Test plan

  • go build ./...
  • go vet ./...
  • go test -race ./...
  • Manual: kai --transport=streamable-http then npx @modelcontextprotocol/inspector http://localhost:8080/mcp

@basebandit basebandit force-pushed the feat/tool-annotations branch from 5a5c3c7 to cfa0058 Compare May 7, 2026 11:24
@basebandit basebandit force-pushed the feat/streamable-http branch from 0a83c94 to fbea5b8 Compare May 7, 2026 11:24
* feat(cluster): honor --request-timeout flag in K8s client config

* fix(lint): replace WriteString(Sprintf) with Fprintf (staticcheck QF1012)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant