Thanks to visit codestin.com
Credit goes to github.com

Skip to content

openhands-mentat-cli/Opendoor

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

63 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸšͺ Opendoor - Multi - MCP Server

Build and Push Docker Images License: MIT

A production-grade Model Context Protocol (MCP) server that provides secure code execution, VS Code integration, and browser automation capabilities for Large Language Models.

🌟 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

Deploy on Railway (Recommended for Production)

# Install Railway CLI and deploy
curl -fsSL https://railway.app/install.sh | sh
railway login
railway init
railway up

Important: 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)

Using Docker (Local Development)

# 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/sse

Using Docker Compose

git clone https://github.com/smishi204/Opendoor.git
cd Opendoor
docker-compose -f docker-compose.production.yml up -d

πŸ”— LLM Integration

For Claude Desktop, ChatGPT, and other MCP clients:

SSE 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"
      ]
    }
  }
}

πŸ› οΈ 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/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

Environment Variables

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

🐳 Docker Images

Available Tags

  • latest - Latest stable release
  • main - Latest from main branch
  • v1.0.0 - Specific version tags

Multi-Architecture Support

  • linux/amd64 - Intel/AMD 64-bit
  • linux/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:3000/health

# Detailed system status
curl http://localhost:3000/health | jq

Metrics

  • 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

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and add tests
  4. Run the test suite: npm test
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to the branch: git push origin feature/amazing-feature
  7. 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

πŸ™ Acknowledgments

πŸ“ˆ 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 81.0%
  • JavaScript 10.4%
  • Shell 4.3%
  • Dockerfile 3.0%
  • Other 1.3%