-
Notifications
You must be signed in to change notification settings - Fork 0
feat: add remote mcp server infrastructure #192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
QuiltSimon
wants to merge
24
commits into
main
Choose a base branch
from
impl/remote-mcp-deployment
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
- Add CORSMiddleware to FastMCP server for cross-origin requests - Configure CORS to allow all origins, methods, and headers - Use proper ASGI app approach following FastMCP documentation - Enable credentials support for authenticated requests - Add fallback handling for missing CORS dependencies - Support both http and streamable-http transport modes This enables web frontend integration with the remote MCP server deployed at https://demo.quiltdata.com/mcp/
- Add SSE transport to CORS middleware configuration - Expose mcp-session-id header for SSE session management - Support SSE alongside HTTP and streamable-HTTP transports - Enable real-time bidirectional communication for frontend integration - Add SSE-specific ECS task definition for deployment
- Add ECS task definition for SSE transport mode - Configure SSE service with proper environment variables - Set up target group and ALB listener rule for /sse/* endpoint - Enable real-time streaming for frontend integration
- Implement custom SessionIDExposeMiddleware to explicitly set Access-Control-Expose-Headers - Add BaseHTTPMiddleware to ensure mcp-session-id is exposed for CORS - Address frontend requirement for session ID access in browser - Maintain compatibility with existing CORS configuration
- Remove custom middleware and use proper Starlette CORSMiddleware - Configure expose_headers=['mcp-session-id'] following FastAPI best practices - Clean up unused imports and simplify implementation - Follow official documentation for CORS header exposure
- Version bump from 0.6.12 to 0.6.13 - Added CHANGELOG entry for Docker container support features - Documented HTTP transport implementation and tooling
- Extract Docker operations to reusable scripts/docker.sh - Move Docker push from push.yml to create-release action - Add manual Docker targets to make.deploy (docker-build, docker-push) - Update env.example with Docker configuration variables - Optimize CI/CD by skipping Docker for dev releases - Add PR validation for Docker builds without pushing - Document required GitHub secrets for ECR operations
- Merged docker.sh and docker_image.py into single docker.py script - Unified tag generation, build, and push operations - Updated all references in workflows and Makefiles - Added comprehensive tests for the new unified script - Removed legacy bash and separate Python scripts - Maintains backward compatibility with same functionality
…Error - Removed _EnsureExposeHeadersMiddleware that was interfering with ASGI protocol - Simplified CORS configuration to use only standard CORSMiddleware - This resolves persistent health check failures and target group draining - CORS headers still properly exposed via expose_headers parameter Fixes: Persistent 404 errors due to unhealthy containers Root cause: Custom middleware breaking ASGI message flow
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
Testing
Closes #190