A production-grade Model Context Protocol (MCP) server that provides secure code execution, VS Code integration, and browser automation capabilities for Large Language Models.
- π Model Context Protocol: Full MCP implementation with SSE and STDIO transports
- π Multi-Language Support: Execute Python, JavaScript, TypeScript, Bash, and more
- π₯οΈ VS Code Integration: Launch development environments on-demand
- π Browser Automation: Playwright integration for web testing and automation
- π Enterprise Security: Rate limiting, input validation, and secure container isolation
- π Monitoring: Health checks, metrics, and comprehensive logging
- β‘ High Performance: Fast boot times and optimized resource usage
- π³ Docker Ready: Production-ready containerization with multi-arch support
# Install Railway CLI and deploy
curl -fsSL https://railway.app/install.sh | sh
railway login
railway init
railway upImportant: Railway will automatically expose the web interface on the assigned port. The application includes:
- Main web UI with documentation and configuration
- Health endpoints for monitoring
- SSE transport for MCP connections
- Redis for session management (internal only)
# Pull and run the latest version
docker run -d --name opendoor-mcp \
-p 3000:3000 -p 3001:3001 \
-e MCP_TRANSPORT=sse \
ghcr.io/openhands-mentat-cli/opendoor/opendoor-mcp:latest
# Access documentation at http://localhost:3001
# MCP endpoint available at http://localhost:3000/ssegit clone https://github.com/smishi204/Opendoor.git
cd Opendoor
docker-compose -f docker-compose.production.yml up -dSSE Configuration (Web-based):
{
"mcpServers": {
"opendoor": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"],
"env": {
"MCP_SERVER_URL": "http://localhost:3000/sse"
}
}
}
}STDIO Configuration (Command-line):
{
"mcpServers": {
"opendoor": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"ghcr.io/openhands-mentat-cli/opendoor/opendoor-mcp:latest"
]
}
}
}| Tool | Description |
|---|---|
execute_code |
Execute code in multiple languages with secure sandboxing |
create_vscode_session |
Launch VS Code development environments |
create_playwright_session |
Start browser automation sessions |
manage_sessions |
List, monitor, and cleanup active sessions |
system_health |
Monitor system resources and service health |
- system_config: Server configuration and capabilities
- usage_guide: Comprehensive usage instructions and examples
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β LLM Client β β MCP Server β β Local Execution β
β β β β β β
β βββββββββββββββ β β βββββββββββββββ β β βββββββββββββββ β
β β Claude/GPT βββΌβββββΌβΊβ Opendoor βββΌβββββΌβΊβ Python Venv β β
β β Desktop β β β β MCP Server β β β β Node.js β β
β βββββββββββββββ β β βββββββββββββββ β β β Java/Go/Rustβ β
β β β β β β Code Server β β
β SSE/STDIO β β Redis Session β β β Playwright β β
β Transport β β Management β β βββββββββββββββ β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
Opendoor/
βββ mcp-server/ # Main MCP server implementation
β βββ src/ # TypeScript source code
β βββ docker/ # Docker configuration files
β βββ Dockerfile # MCP server Dockerfile
β βββ package.json # Dependencies and scripts
βββ containers/ # Container definitions
β βββ base/ # Base container images
β βββ languages/ # Language-specific containers
β βββ playwright/ # Browser automation containers
β βββ vscode/ # VS Code development containers
βββ frontend/ # Web interface (optional)
βββ .github/workflows/ # CI/CD pipelines
βββ Dockerfile.opendoor-mcp # Production Dockerfile
βββ docker-compose.production.yml
# Clone the repository
git clone https://github.com/openhands-mentat-cli/Opendoor.git
cd Opendoor/mcp-server
# Install dependencies
npm install
# Start in development mode
npm run dev
# Build for production
npm run build
npm start| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT |
sse |
Transport type: sse or stdio |
HOST |
0.0.0.0 |
Server host |
PORT |
3000 |
Server port |
REDIS_URL |
redis://localhost:6379 |
Redis connection URL |
NODE_ENV |
production |
Environment mode |
LOG_LEVEL |
info |
Logging level |
latest- Latest stable releasemain- Latest from main branchv1.0.0- Specific version tags
linux/amd64- Intel/AMD 64-bitlinux/arm64- ARM 64-bit (Apple Silicon, ARM servers)
- Production Image: ~200MB (optimized Alpine-based)
- Development Image: ~300MB (includes dev tools)
- Container Isolation: Secure Docker-in-Docker execution
- Rate Limiting: Configurable request rate limits
- Input Validation: Comprehensive input sanitization
- Session Management: Secure session handling with Redis
- Resource Monitoring: CPU and memory usage tracking
- Audit Logging: Comprehensive security event logging
# Basic health check
curl http://localhost:3000/health
# Detailed system status
curl http://localhost:3000/health | jq- Prometheus metrics: Available at
/metrics - Custom dashboards: Grafana-compatible
- Real-time monitoring: WebSocket-based updates
- Structured logging: JSON format with Winston
- Log levels: ERROR, WARN, INFO, DEBUG
- Log rotation: Automatic log file management
Use Railway for production deployment with automatic scaling and HTTPS.
- Docker-in-Docker (DIND) configuration
- Automatic HTTPS and scaling
- Environment variable management
- Monitoring and logging
- Cost optimization
See PRODUCTION_DEPLOYMENT.md for comprehensive production deployment guide including:
- Docker Compose configurations
- Kubernetes manifests
- Reverse proxy setup (Nginx, Traefik)
- SSL/TLS configuration
- Scaling strategies
- Monitoring setup
- Build & Test: Automated testing on every PR
- Security Scanning: Vulnerability and dependency scanning
- Docker Publishing: Multi-arch image builds to GHCR
- Documentation: Auto-generated API docs
- β Unit and integration tests
- β Security vulnerability scanning
- β Code quality analysis
- β Docker image security scanning
- β Performance benchmarks
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and add tests
- Run the test suite:
npm test - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow TypeScript best practices
- Add tests for new features
- Update documentation
- Follow conventional commit messages
- Ensure Docker builds pass
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: http://localhost:3001 (when running)
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Security: Report security issues via GitHub Security Advisories
- Model Context Protocol - The protocol specification
- MCP Framework - Framework foundation
- Docker - Containerization platform
- Node.js - Runtime environment
- Kubernetes operator
- WebAssembly runtime support
- Advanced code analysis tools
- Multi-tenant support
- Plugin system
- GraphQL API
- Real-time collaboration features
Made with β€οΈ by the Opendoor Team
Empowering LLMs with secure, scalable, and production-ready code execution capabilities.