Overview
The MCP SSE (Server-Sent Events) Transport module provides real-time communication between PraisonAI agents and MCP servers using Server-Sent Events. This transport layer enables agents to use tools from MCP servers that communicate via SSE instead of stdio.Architecture
Components
Quick Start
Core Classes
SSEMCPClient
The main client class for connecting to SSE-based MCP servers.Key Methods
connect()
discover_tools()
invoke_tool()
SSEMCPTool
Wrapper class that makes MCP tools compatible with PraisonAI agents.Usage Examples
Basic SSE Connection
Authenticated Connection
Custom Event Handling
Streaming Responses
Event Flow
Connection Lifecycle
Initialize Connection
- Client creates HTTP connection to SSE endpoint
- Establishes persistent event stream
Event Processing
- Client listens for server-sent events
- Events processed asynchronously in background
Tool Invocation
Configuration
MCP Class with SSE
Environment Variables
Error Handling
Connection Errors
Tool Invocation Errors
Best Practices
Connection Management
- Use connection pooling for multiple agents
- Implement retry logic for transient failures
- Set appropriate timeouts for your use case
- Close connections gracefully when done
Event Processing
- Process events asynchronously to avoid blocking
- Implement proper error handling in event handlers
- Use event filtering to reduce processing overhead
- Log important events for debugging
Performance
- Reuse MCP client instances across agents
- Batch tool invocations when possible
- Monitor memory usage with long-running connections
- Implement circuit breakers for unreliable servers
Security
- Always use HTTPS in production
- Rotate API keys regularly
- Validate server certificates
- Implement request signing if required
Advanced Topics
Custom Transport Implementation
Event Stream Processing
Monitoring and Metrics
Troubleshooting
Common Issues:Debug Mode
Enable debug logging to troubleshoot issues:Summary
The SSE Transport module enables: ✅ Real-time Communication - Stream events and responses via SSE✅ Async Operations - Non-blocking tool invocations
✅ Automatic Validation - Pydantic-based input validation
✅ Event Handling - Process streaming data and progress updates
✅ Easy Integration - Drop-in replacement for stdio transport Perfect for:
- Real-time streaming applications
- Long-running tool operations
- Progress tracking and updates
- Distributed MCP server deployments

