feat: Prioritize HTTP transport over SSE (CFOS-43)#47
Merged
jayscambler merged 2 commits intomainfrom Jun 22, 2025
Merged
Conversation
- Set HTTP as default transport in MCPConfig - Update HttpAdapter documentation to clarify SSE is optional - Create HTTP-first client example (http_client_example.py) - Add comprehensive transport guide (TRANSPORT_GUIDE.md) - Document HTTP as primary, SSE as optional enhancement - Add migration guidance from SSE-focused implementations This addresses CFOS-43 by making it clear that HTTP with simple JSON responses is the primary transport method, while SSE remains available as an optional feature for specific streaming use cases.
- Create test_http_first_approach.py with comprehensive tests - Create test_http_primary.py demonstrating recommended patterns - Create test_transport_migration.py for migration scenarios - Update test_protocol.py to use HTTP as default transport - Fix import issues in HTTP transport modules - Update HttpAdapter to clarify SSE is optional All tests validate that HTTP is the primary transport protocol and SSE is only used for specific streaming scenarios.
28 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR addresses CFOS-43 by making HTTP the primary transport protocol and clarifying that SSE is optional for specific streaming scenarios only.
Changes Made
1. Set HTTP as Default Transport
MCPConfigfromstdiotohttpHttpAdapterdocumentation to clarify SSE is optional2. Documentation Updates
TRANSPORT_GUIDE.md- Comprehensive guide on transport selectionhttp_client_example.py- HTTP-first client examplehttp_primary_transport.md- Implementation notes on HTTP prioritization3. Test Updates
test_http_first_approach.py- 14 tests validating HTTP as primarytest_http_primary.py- Integration tests demonstrating recommended patternstest_transport_migration.py- Migration scenario teststest_protocol.pyto use HTTP as default transportKey Points
HTTP is Primary
/mcp/v1/jsonrpcuses simple HTTP POST with JSON responsesSSE is Optional
SSE endpoints are clearly separated and only for:
/mcp/v1/sse/progress/{operation_id}/mcp/v1/sse/subscribeMigration Path
The changes maintain backward compatibility while guiding users toward HTTP-first implementations. Existing SSE implementations continue to work but are positioned as optional enhancements.
Testing
✅ 14 new tests added specifically for HTTP-first validation
✅ All existing tests updated to reflect HTTP as default
✅ Documentation includes migration examples
Related to #44 (CFOS-43)