A framework for building Model Context Protocol servers using Express.
MCP (Model Context Protocol) is a standard created by Anthropic for managing model context and interactions.
src/- Source code for the serverssrc/docker-orbstack/- Docker management server via OrbStack
config/- Configuration filesdata/- Data storage
-
Install dependencies:
npm install -
Start the server:
npm start -
Development mode with auto-restart:
npm run dev
Server configuration is stored in config/server.json. You can modify this file to change server settings.
Key configuration options:
port: Main server port (default: 7829)host: Main server host (default: 0.0.0.0)dockerPort: Docker server port (default: 7830)dockerHost: Docker server host (default: 0.0.0.0)serverName: Name of the main servertimeout: Request timeout in milliseconds
The MCP Servers come with a beautiful web dashboard that displays all available servers, their status, and endpoints. Simply navigate to the root URL of the main server to access it:
http://localhost:7829/
The dashboard provides:
- Real-time server status monitoring
- Complete list of available endpoints for each server
- Server control buttons to start and stop individual MCP servers
- Status notifications for server operations
- Auto-refresh of server status every 30 seconds
- Manual refresh button to check server status on demand
- Quick access links to running servers
- Responsive design that works on desktop and mobile devices
The main server provides the main entry point to the application.
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Web dashboard showing servers and their status |
/api |
GET | Get server information and status as JSON |
/api/servers |
GET | Get information about all available servers |
/api/servers/:id/start |
POST | Start a specific server by ID |
/api/servers/:id/stop |
POST | Stop a specific server by ID |
/health |
GET | Health check endpoint |
The Docker OrbStack server provides a Model Context Protocol interface for managing Docker containers and images via OrbStack.
| Endpoint | Method | Description | Request Body |
|---|---|---|---|
/ |
GET | Get Docker server information and status | - |
/containers |
GET | List all Docker containers (includes stopped containers) | - |
/containers/:id |
GET | Get detailed information about a specific container | - |
/containers/:id/start |
POST | Start a container | - |
/containers/:id/stop |
POST | Stop a container | - |
/images |
GET | List all Docker images | - |
/images/pull |
POST | Pull a Docker image | { "imageName": "image:tag" } |
/containers/create |
POST | Create a new container | { "imageName": "image:tag", "containerConfig": {...} } |
Example request to create a container:
POST /containers/create
{
"imageName": "nginx:latest",
"containerConfig": {
"name": "my-nginx",
"ExposedPorts": { "80/tcp": {} },
"HostConfig": {
"PortBindings": { "80/tcp": [{ "HostPort": "8080" }] }
}
}
}To add a new server, create a new directory under src/ with the server name and implement the server logic there.
- Node.js 14.x or higher
- Docker installation (for Docker OrbStack server)
- OrbStack installed on macOS