MCP Transport Protocols
Satellite implements three MCP transport protocols for external client communication. Each protocol serves different use cases and client requirements.Transport Overview
Protocol | Endpoint | Method | Use Case |
---|---|---|---|
SSE Transport | /sse | GET | Persistent connections with session management |
SSE Messaging | /message | POST | JSON-RPC message sending via established sessions |
Streamable HTTP | /mcp | GET/POST | Direct HTTP communication with optional streaming |
SSE Transport
Connection Establishment
Endpoint:GET /sse
Headers:
Accept: text/event-stream
(required)Cache-Control: no-cache
Connection: keep-alive
- Content-Type:
text/event-stream
- Session ID and endpoint URL sent as SSE events
- 30-minute session timeout with automatic cleanup
Session Management
- Session ID: 32-byte cryptographically secure base64url identifier
- Timeout: 30 minutes of inactivity
- Activity Tracking: Updated on each message received
- Cleanup: Automatic removal of expired sessions
SSE Messaging
Endpoint:POST /message?session={sessionId}
Headers:
Content-Type: application/json
(required)
200
- Message sent successfully202
- Message accepted (for notifications)400
- Invalid JSON-RPC or missing session404
- Session not found500
- Internal server error
Streamable HTTP Transport
GET Endpoint
Endpoint:GET /mcp
Headers:
Accept: text/event-stream
(required for SSE stream)Mcp-Session-Id: {sessionId}
(optional)
POST Endpoint
Endpoint:POST /mcp
Headers:
Content-Type: application/json
(required)Accept: application/json
(default) ortext/event-stream
(streaming)Mcp-Session-Id: {sessionId}
(optional)
- Standard JSON: Direct JSON-RPC response
- SSE Streaming: Response sent via Server-Sent Events
Supported MCP Methods
Core Protocol
initialize
- Initialize MCP sessionnotifications/initialized
- Client initialization complete
Tools
tools/list
- List available tools from remote MCP serverstools/call
- Execute tools on remote MCP servers
Resources
resources/list
- List available resources (returns empty array)resources/templates/list
- List resource templates (returns empty array)
Prompts
prompts/list
- List available prompts (returns empty array)
Error Handling
JSON-RPC Errors
HTTP Errors
Common Error Codes
-32600
- Invalid Request-32601
- Method not found-32603
- Internal error-32001
- Session not found (custom)
Client Integration
MCP Client Configuration
SSE Transport Example:Development Setup
Local Testing
-
Start Satellite:
-
Test SSE Connection:
-
Send JSON-RPC Message:
Protocol Selection
Use SSE Transport when:- Long-lived connections needed
- Session state management required
- Real-time bidirectional communication
- Stateless request/response patterns
- Standard HTTP client libraries
- Optional streaming responses
Security Considerations
- No Authentication: Current implementation has no security layer
- Session Isolation: Sessions are isolated by cryptographic session IDs
- Resource Limits: 30-minute session timeout prevents resource exhaustion
- CORS Support: Cross-origin requests supported via preflight handling
Logging and Monitoring
All transport protocols generate structured logs with:- Operation tracking
- Session management events
- Error conditions
- Performance metrics