Package Exports
- opendoor-mcp
- opendoor-mcp/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (opendoor-mcp) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
πͺ Opendoor MCP Server
A production-grade Model Context Protocol (MCP) server that provides secure code execution, VS Code integration, and browser automation capabilities for Large Language Models and OpenHands.
π Features
- π 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
π Quick Start
NPX (Recommended)
# Run directly with npx (no installation required)
npx opendoor-mcp
# Or install globally first
npm install -g opendoor-mcp
opendoor-mcpLocal Development
git clone https://github.com/make-change-code/Opendoor.git
cd Opendoor
npm install
npm run build
npm startπ OpenHands Integration
Important: OpenHands requires both sse_servers and stdio_servers arrays in the configuration.
STDIO Configuration (npx)
{
"sse_servers": [],
"stdio_servers": [
{
"name": "opendoor",
"command": "npx",
"args": ["-y", "opendoor-mcp"]
}
]
}STDIO Configuration (global install)
{
"sse_servers": [],
"stdio_servers": [
{
"name": "opendoor",
"command": "opendoor-mcp"
}
]
}Testing Your Configuration
- Test the package:
npx opendoor-mcp(should start and wait for STDIO input) - Press Ctrl+C to exit
- Apply configuration to OpenHands and test connection
π οΈ Available Tools
| 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 |
π Resources
- system_config: Server configuration and capabilities
- usage_guide: Comprehensive usage instructions and examples
ποΈ Architecture
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β 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 β β βββββββββββββββ β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββπ¦ Repository Structure
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π§ Development
Local Development
# Clone the repository
git clone https://github.com/make-change-code/Opendoor.git
cd Opendoor
# Install dependencies
npm install
# Start in development mode
npm run dev
# Build for production
npm run build
npm startEnvironment Variables
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT |
stdio |
Transport type (always stdio) |
NODE_ENV |
production |
Environment mode |
LOG_LEVEL |
error |
Logging level |
REDIS_URL |
redis://localhost:6379 |
Redis connection URL (if needed) |
π³ Docker Images
Available Tags
latest- Latest stable releasemain- Latest from main branchv1.0.0- Specific version tags
Multi-Architecture Support
linux/amd64- Intel/AMD 64-bitlinux/arm64- ARM 64-bit (Apple Silicon, ARM servers)
Image Sizes
- Production Image: ~200MB (optimized Alpine-based)
- Development Image: ~300MB (includes dev tools)
π Security Features
- 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
π Monitoring & Observability
Health Checks
# Basic health check
curl http://localhost:50063/health
# Detailed system status
curl http://localhost:50063/health | jqMetrics
- Prometheus metrics: Available at
/metrics - Custom dashboards: Grafana-compatible
- Real-time monitoring: WebSocket-based updates
Logging
- Structured logging: JSON format with Winston
- Log levels: ERROR, WARN, INFO, DEBUG
- Log rotation: Automatic log file management
π Production Deployment
Railway Deployment (Recommended)
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
Traditional Deployment
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
π CI/CD Pipeline
Automated Workflows
- 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
Quality Gates
- β Unit and integration tests
- β Security vulnerability scanning
- β Code quality analysis
- β Docker image security scanning
- β Performance benchmarks
π€ Contributing
- 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
Development Guidelines
- Follow TypeScript best practices
- Add tests for new features
- Update documentation
- Follow conventional commit messages
- Ensure Docker builds pass
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Support
- Configuration UI: http://localhost:50064 (when running)
- Documentation: http://localhost:50063 (when running)
- Issues: GitHub Issues
- Security: Report security issues via GitHub Security Advisories
π§ Troubleshooting
Common Issues
- Package not found: Ensure the package is published to npm first
- Permission errors: Try running with elevated permissions if needed
- OpenHands connection: Verify both
sse_serversandstdio_serversarrays are present - STDIO timeout: Increase timeout in OpenHands configuration if needed
Debug Steps
- Test package:
npx opendoor-mcp(should start and wait for input) - Check package version:
npm ls opendoor-mcp -g(if installed globally) - Verify OpenHands config syntax
- Check npm registry: https://www.npmjs.com/package/opendoor-mcp
π¦ Publishing
Automatic Publishing (GitHub Actions)
- Create a release on GitHub
- The workflow automatically builds and publishes to npm
- Package becomes available via
npx opendoor-mcp
Manual Publishing
npm login
npm run build
npm publishSetting up NPM_TOKEN
- Create an npm account and get an API token
- Add
NPM_TOKENto your GitHub repository secrets - The workflow will automatically publish on releases
π Acknowledgments
- Model Context Protocol - The protocol specification
- MCP Framework - Framework foundation
- Docker - Containerization platform
- Node.js - Runtime environment
π Roadmap
- 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.