Expand description
HTTP transport for FastMCP.
This module provides HTTP-based transport for MCP servers, enabling web-based deployments without relying on stdio or WebSockets.
§Modes
The HTTP transport supports two modes:
-
Stateless: Each HTTP request contains a single JSON-RPC message and receives a single response. No session state is maintained between requests.
-
Streamable: Long-lived connections using HTTP streaming (chunked transfer) for bidirectional communication. Supports Server-Sent Events (SSE) for server-to-client notifications.
§Integration
This transport is designed to integrate with any HTTP server framework. It provides:
HttpRequestHandler: Processes incoming HTTP requests containing JSON-RPC messagesHttpTransport: Full transport implementation for HTTP connectionsStreamableHttpTransport: Streaming transport for long-lived connections
§Example
ⓘ
use fastmcp_transport::http::{HttpRequestHandler, HttpRequest, HttpResponse};
let handler = HttpRequestHandler::new();
// In your HTTP server's request handler:
fn handle_mcp_request(http_req: YourHttpRequest) -> YourHttpResponse {
let request = HttpRequest {
method: http_req.method(),
path: http_req.path(),
headers: http_req.headers(),
body: http_req.body(),
};
let mcp_response = handler.handle(&cx, request)?;
YourHttpResponse::new()
.status(mcp_response.status)
.header("Content-Type", &mcp_response.content_type)
.body(mcp_response.body)
}Structs§
- Http
Handler Config - Configuration for the HTTP request handler.
- Http
Request - Incoming HTTP request.
- Http
Request Handler - Handles HTTP requests containing MCP JSON-RPC messages.
- Http
Response - Outgoing HTTP response.
- Http
Session - HTTP session for maintaining state across requests.
- Http
Status - HTTP status code.
- Http
Transport - HTTP transport for stateless MCP communication.
- Session
Store - Session store for HTTP sessions.
- Streamable
Http Transport - Streaming HTTP transport for long-lived MCP connections.
Enums§
- Http
Error - HTTP transport error.
- Http
Method - HTTP method.