【中文 | English】
Dynamic MCP Container Orchestration Platform
A Docker-based container orchestration system for deploying and managing
MCP (Model Context Protocol) services with dynamic lifecycle management.
- 🐳 Dynamic Container Management - Auto create, start, stop, and remove Docker containers
- 📊 Resource Monitoring - Real-time CPU, memory, and disk usage monitoring
- 🔄 Health Checks - Automatic container health detection with auto-restart
- 🌐 MCP Routing - Streamable-HTTP MCP protocol request routing
- 📈 Web Dashboard - Visual container management interface
AgentDock/
├── master/ # Manager service
│ ├── main.py # FastAPI main application
│ ├── config.py # Configuration management
│ ├── node.py # Node management routes
│ ├── config.yml # Default configuration
│ ├── dockerfile # Docker build file
│ └── templates/ # Web templates
├── node/ # Base node image
├── agentdock-node-full/ # Full-feature MCP node
├── agentdock-node-explore/ # Explore MCP node (search & analysis)
├── docker-compose.yml # Docker Compose configuration
└── .env.example # Environment variables template
The fastest way to get started - no build required!
1. Configure Environment
# Clone the repository (or just download the compose file)
git clone https://github.com/OpenBMB/AgentCPM.git
cd AgentCPM/AgentCPM-Explore/AgentDock
# Create environment file
cp .env.example .env
# Edit .env file with your MongoDB credentials2. Pull and Start Services
# Pull images from Docker Hub
docker compose -f docker-compose-hub.yml pull
# Start all services
docker compose -f docker-compose-hub.yml up -d3. Access Dashboard
Open browser: http://localhost:8080
| Image | Description | Architectures |
|---|---|---|
sailaoda/agentdock-manager |
Main orchestration service | amd64, arm64 |
sailaoda/agentdock-node-full |
Full-feature MCP server | amd64, arm64 |
sailaoda/agentdock-node-explore |
Explore MCP server | amd64, arm64 |
# Pull individual images
docker pull sailaoda/agentdock-manager:latest
docker pull sailaoda/agentdock-node-full:latest
docker pull sailaoda/agentdock-node-explore:latestBuild images locally from source code.
For users outside China, use the default Dockerfiles with official mirrors:
# 1. Configure environment
cp .env.example .env
# Edit .env file with your MongoDB credentials
# 2. Build and start services
docker compose build
docker compose up -dFor users in China, use the .cn Dockerfiles with Aliyun mirrors for faster builds:
# 1. Configure environment
cp .env.example .env
# Edit .env file with your MongoDB credentials
# 2. Build and start services (using China mirrors)
docker compose -f docker-compose.cn.yml build
docker compose -f docker-compose.cn.yml up -dFiles for China Build:
master/dockerfile.cnagentdock-node-full/dockerfile.cnagentdock-node-explore/Dockerfile.cndocker-compose.cn.yml
3. Access Dashboard
Open browser: http://localhost:8080
| Service | Description | Ports |
|---|---|---|
agentdock-manager |
Main orchestration dashboard | 8080 |
agentdock-mongodb |
Database for node persistence | 27017 |
agentdock-node-full |
Full-feature MCP server | 8004, 8092 |
agentdock-node-explore |
Explore MCP server (search & analysis) | 8014, 8102 |
| Variable | Description | Required |
|---|---|---|
MONGODB_USERNAME |
MongoDB username | ✅ |
MONGODB_PASSWORD |
MongoDB password | ✅ |
JINA_API_KEY |
Jina Reader API key | ❌ |
GOOGLE_SERP_API_KEY |
Google SERP API key | ❌ |
Default resource allocation:
- agentdock-manager: 2 cores / 4GB
- agentdock-mongodb: 2 cores / 6GB
- agentdock-node-full: 8 cores / 32GB
- agentdock-node-search: 4 cores / 16GB
Adjust in docker-compose.yml as needed.
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Web dashboard |
/alive |
GET | Health check |
/node/create |
POST | Create new node |
/node/close |
POST | Stop node |
/node/release |
POST | Release node |
/node/details |
GET | Get node details |
/container/{id}/mcp |
POST | MCP request routing |
| Endpoint | Method | Description |
|---|---|---|
/api/resources/system |
GET | System resources |
/api/resources/docker |
GET | Docker container info |
/api/resources/alerts |
GET | Resource alerts |
curl -X POST "http://localhost:8080/node/create?image_name=agentdock-node:explore"curl -X POST "http://localhost:8080/container/{container_id}/mcp" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "tool_name",
"arguments": {}
},
"id": 1
}'# Install dependencies
pip install -r master/requirements.txt
# Start development server
cd master
uvicorn main:app --reload --host 0.0.0.0 --port 8080# Build all images
docker compose build
# Rebuild without cache
docker compose build --no-cache# Start services
docker compose up -d
# Stop services
docker compose down
# View logs
docker compose logs -f agentdock-manager
# Check status
docker compose ps
# Resource stats
docker statsThe code in this repository is released under the Apache-2.0 license.