Documentation
¶
Overview ¶
/* Package mcp implements Server-Sent Events (SSE) transport for JSON-RPC communication.
SSE Transport Overview: This implementation provides a bidirectional communication channel between client and server: - Server to Client: Uses Server-Sent Events (SSE) for real-time message streaming - Client to Server: Uses HTTP POST requests for sending messages
Key Features: 1. Bidirectional Communication:
- SSE for server-to-client streaming (one-way, real-time updates)
- HTTP POST endpoints for client-to-server messages
2. Session Management:
- Unique session IDs for each connection
- Proper connection lifecycle management
- Automatic cleanup on connection close
3. Message Handling:
- JSON-RPC message format support
- Automatic message type detection (request vs response)
- Built-in error handling and reporting
- Message size limits for security
4. Security Features:
- Content-type validation
- Message size limits (4MB default)
- Error handling for malformed messages
Usage Example:
// Create a new SSE transport transport, err := NewSSETransport("/messages", responseWriter) if err != nil { log.Fatal(err) } // Set up message handling transport.SetMessageHandler(func(msg JSONRPCMessage) { // Handle incoming messages }) // Start the SSE connection if err := transport.Start(context.Background()); err != nil { log.Fatal(err) } // Send a message msg := JSONRPCResponse{ Jsonrpc: "2.0", Result: Result{...}, Id: 1, } if err := transport.Send(msg); err != nil { log.Fatal(err) }
*/
Click to show internal directories.
Click to hide internal directories.