Depth Pro MCP Server
🔬 Depth Pro Docker
Production-ready Docker deployment for Apple's Depth Pro model
Zero-shot monocular metric depth estimation • 2.25MP depth map in 0.3s

✨ Features
Feature | Description |
🚀 One-Click Deploy | Docker Compose for instant deployment |
🎨 Modern Web UI | Beautiful interface with multiple colormaps |
🔌 REST API | Full-featured API with Swagger docs |
🤖 MCP Server | Model Context Protocol support for AI assistants |
📊 Multiple Outputs | JPG visualization, NPZ data, 16-bit PNG |
🎛️ Manual Focal Length | Override auto focal length estimation |
🌐 Multi-language | Chinese, English, Japanese UI |
💾 GPU Management | Auto memory offload, status monitoring |
🚀 Quick Start
# One command to run (All-in-One image, no downloads needed!)
docker run -d --name depth-pro --gpus all -p 8500:8500 neosun/depth-pro:latest
# Open browser
open http://localhost:8500📦 Installation
Prerequisites
Docker 24.0+ with NVIDIA Container Toolkit
NVIDIA GPU with 8GB+ VRAM (16GB+ recommended)
CUDA 12.1 compatible driver
Method 1: Docker Run (Recommended)
All-in-One image includes model weights (~5GB), no additional downloads required!
# Pull and run (model included in image)
docker run -d \
--name depth-pro \
--gpus all \
-p 8500:8500 \
-e GPU_IDLE_TIMEOUT=60 \
neosun/depth-pro:latestMethod 2: Docker Compose
# Create docker-compose.yml
cat > docker-compose.yml << 'EOF'
services:
depth-pro:
image: neosun/depth-pro:latest
container_name: depth-pro
ports:
- "8500:8500"
environment:
- GPU_IDLE_TIMEOUT=60
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
restart: unless-stopped
EOF
# Start service
docker compose up -dMethod 3: Local Development
# Create conda environment
conda create -n depth-pro python=3.9 -y
conda activate depth-pro
# Install dependencies
pip install -e .
pip install flask flask-cors flasgger gunicorn
# Download model
source get_pretrained_models.sh
# Run server
python app.py⚙️ Configuration
Environment Variables
Variable | Default | Description |
|
| Server port |
|
| Seconds before GPU memory release |
|
| GPU device index |
docker-compose.yml
services:
depth-pro:
image: neosun/depth-pro:latest
container_name: depth-pro
ports:
- "8500:8500"
environment:
- PORT=8500
- GPU_IDLE_TIMEOUT=60
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8500/health"]
interval: 30s
timeout: 10s
retries: 3📖 Usage
Web Interface
Visit http://localhost:8500 for the interactive UI:
Upload an image (JPG/PNG/WebP/HEIC)
Select colormap (Turbo, Viridis, Plasma, etc.)
Optionally set manual focal length
Click "Process" and download results
REST API
Depth Estimation
curl -X POST http://localhost:8500/api/predict \
-F "file=@image.jpg" \
-F "colormap=turbo" \
-F "focal_length=1000"Response:
{
"task_id": "abc12345",
"focal_length_px": 1000.0,
"min_depth_m": 0.5,
"max_depth_m": 10.2,
"mean_depth_m": 3.4,
"image_size": "1920x1080",
"depth_image_base64": "...",
"download_jpg": "/api/download/abc12345/color.jpg",
"download_npz": "/api/download/abc12345/depth.npz",
"download_16bit": "/api/download/abc12345/depth16.png"
}GPU Status
curl http://localhost:8500/api/gpu/statusRelease GPU Memory
curl -X POST http://localhost:8500/api/gpu/offloadAPI Documentation
Swagger UI available at: http://localhost:8500/apidocs/
MCP Server (for AI Assistants)
Add to your Claude Desktop config:
{
"mcpServers": {
"depth-pro": {
"command": "docker",
"args": ["exec", "-i", "depth-pro", "python3", "mcp_server.py"]
}
}
}Available MCP tools:
estimate_depth- Process single imagebatch_estimate_depth- Process multiple imagesget_gpu_status- Check GPU statusrelease_gpu- Free GPU memory
📁 Project Structure
depth-pro-docker/
├── app.py # Flask web server
├── mcp_server.py # MCP server for AI assistants
├── gpu_manager.py # GPU memory management
├── Dockerfile # Container build file
├── docker-compose.yml # Docker Compose config
├── checkpoints/ # Model weights (download separately)
│ └── depth_pro.pt
├── src/depth_pro/ # Core model code
├── templates/ # HTML templates
├── static/ # CSS/JS assets
└── docs/ # Documentation🛠️ Tech Stack
Model: Apple Depth Pro (DINOv2 + Multi-scale ViT)
Backend: Flask + Gunicorn
Frontend: Vanilla JS + Modern CSS
Container: Docker + NVIDIA Container Toolkit
GPU: PyTorch + CUDA 12.1
📝 Limitations
Far-field scenes (>20m) may have inaccurate absolute depth values
Best suited for indoor and close-range outdoor scenes
Relative depth ordering is generally reliable even for far scenes
🤝 Contributing
Contributions are welcome! Please read CONTRIBUTING.md first.
Fork the repository
Create feature branch (
git checkout -b feature/amazing)Commit changes (
git commit -m 'Add amazing feature')Push to branch (
git push origin feature/amazing)Open a Pull Request
📄 License
This project is based on Apple's Depth Pro and is licensed under the Apple Sample Code License.
🙏 Acknowledgements
Apple ML Research - Original Depth Pro model
Depth Pro Paper - Research paper
⭐ Star History
📱 Follow Me

Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/neosun100/depth-pro-docker'
If you have feedback or need assistance with the MCP directory API, please join our Discord server