Skip to content

Add Streamable HTTP transport, progress/notifications, and ping#17

Merged
0xeb merged 1 commit into
mainfrom
feature/streamable-http-transport
Dec 6, 2025
Merged

Add Streamable HTTP transport, progress/notifications, and ping#17
0xeb merged 1 commit into
mainfrom
feature/streamable-http-transport

Conversation

@0xeb
Copy link
Copy Markdown
Owner

@0xeb 0xeb commented Dec 6, 2025

Summary

  • Streamable HTTP transport: MCP 2025-03-26 compliant client and server implementation
  • Server progress/notifications: ServerSession::send_notification() and send_progress()
  • ping method: Added to all 7 MCP handler variants

Changes

Client

  • StreamableHttpTransport: Single POST endpoint at /mcp with Mcp-Session-Id header for session management

Server

  • StreamableHttpServerWrapper: Thread-safe session management, request routing
  • ServerSession: New methods for sending notifications and progress updates to clients

Handler

  • ping method support in all handler variants (ToolManager, Server, McpApp, ProxyApp, sampling)

Test Plan

  • 59/59 unit tests passing
  • Streamable HTTP integration tests
  • T5 interop tests (C++ server + Python fastmcp client) - 6/6 passing

…g support

Features:
- StreamableHttpTransport client: single POST endpoint with session management
- StreamableHttpServerWrapper: MCP 2025-03-26 compliant server
- ServerSession::send_notification() and send_progress() for server-to-client messages
- ping method support in all MCP handlers

Implementation:
- Client transport uses Mcp-Session-Id header for session tracking
- Server wrapper manages sessions via thread-safe session map
- Progress notifications sent via existing SSE infrastructure
- All 7 handler variants support ping method

Tests:
- 59/59 unit tests passing
- Streamable HTTP integration tests
- Interop tests (T5: C++ server + Python fastmcp client)

Spec: MCP 2025-03-26 (Streamable HTTP transport)
@0xeb 0xeb force-pushed the feature/streamable-http-transport branch from a82f282 to e381c8d Compare December 6, 2025 02:33
@0xeb 0xeb merged commit 669b0c4 into main Dec 6, 2025
7 of 9 checks passed
@0xeb 0xeb deleted the feature/streamable-http-transport branch December 8, 2025 05:05
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