StreamableHTTP -> Streamable HTTP

This commit is contained in:
Riley Shott 2025-05-30 16:23:27 -04:00
commit 4e4455772b
4 changed files with 8 additions and 8 deletions

View file

@ -33,7 +33,7 @@ It implements the Model Context Protocol specification, handling model context r
- Manages tool registration and invocation - Manages tool registration and invocation
- Supports prompt registration and execution - Supports prompt registration and execution
- Supports resource registration and retrieval - Supports resource registration and retrieval
- Supports stdio & StreamableHTTP (including SSE) transports - Supports stdio & Streamable HTTP (including SSE) transports
### Supported Methods ### Supported Methods
- `initialize` - Initializes the protocol and returns server capabilities - `initialize` - Initializes the protocol and returns server capabilities
@ -52,14 +52,14 @@ It implements the Model Context Protocol specification, handling model context r
- Log Level - Log Level
- Resource subscriptions - Resource subscriptions
- Completions - Completions
- Complete StreamableHTTP implementation with streaming responses - Complete Streamable HTTP implementation with streaming responses
### Usage ### Usage
#### Rails Controller #### Rails Controller
When added to a Rails controller on a route that handles POST requests, your server will be compliant with non-streaming When added to a Rails controller on a route that handles POST requests, your server will be compliant with non-streaming
[StreamableHTTP](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http) transport [Streamable HTTP](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http) transport
requests. requests.
You can use the `Server#handle_json` method to handle requests. You can use the `Server#handle_json` method to handle requests.

View file

@ -14,7 +14,7 @@ ruby examples/stdio_server.rb
``` ```
### 2. HTTP Server (`http_server.rb`) ### 2. HTTP Server (`http_server.rb`)
A standalone HTTP server built with Rack that implements the MCP StreamableHTTP transport protocol. This demonstrates how to create a web-based MCP server with session management and Server-Sent Events (SSE) support. A standalone HTTP server built with Rack that implements the MCP Streamable HTTP transport protocol. This demonstrates how to create a web-based MCP server with session management and Server-Sent Events (SSE) support.
**Features:** **Features:**
- HTTP transport with Server-Sent Events (SSE) for streaming - HTTP transport with Server-Sent Events (SSE) for streaming
@ -127,11 +127,11 @@ curl -X POST http://localhost:9393 \
-d '{"jsonrpc":"2.0","method":"tools/call","id":2,"params":{"name":"notification_tool","arguments":{"message":"Hello from cURL!"}}}' -d '{"jsonrpc":"2.0","method":"tools/call","id":2,"params":{"name":"notification_tool","arguments":{"message":"Hello from cURL!"}}}'
``` ```
## StreamableHTTP Transport Details ## Streamable HTTP Transport Details
### Protocol Flow ### Protocol Flow
The HTTP server implements the MCP StreamableHTTP transport protocol: The HTTP server implements the MCP Streamable HTTP transport protocol:
1. **Initialize Session**: 1. **Initialize Session**:
- Client sends POST request with `initialize` method - Client sends POST request with `initialize` method

View file

@ -93,7 +93,7 @@ server.resources_read_handler do |params|
}] }]
end end
# Create the StreamableHTTP transport # Create the Streamable HTTP transport
server.transport = MCP::Transports::HTTP.new(server) server.transport = MCP::Transports::HTTP.new(server)
# Create a logger for MCP-specific logging # Create a logger for MCP-specific logging

View file

@ -63,7 +63,7 @@ server.define_tool(
MCP::Tool::Response.new([{ type: "text", text: "Echo: #{message}" }]) MCP::Tool::Response.new([{ type: "text", text: "Echo: #{message}" }])
end end
# Create the StreamableHTTP transport # Create the Streamable HTTP transport
server.transport = MCP::Transports::HTTP.new(server) server.transport = MCP::Transports::HTTP.new(server)
# Create a logger for MCP request/response logging # Create a logger for MCP request/response logging