Skip to main content
Glama

Ultralytics MCP Server

README.md•10.3 kB
# šŸŽÆ RCT Detector Platform - Ultralytics MCP Server > **Advanced AI-powered object detection platform with intelligent dataset upload, custom model training, and MCP integration for N8N automation.** A comprehensive Model Context Protocol (MCP) server that seamlessly integrates Ultralytics YOLO models with N8N workflows, providing a complete AI-powered computer vision solution with 10GB dataset upload support and intelligent background processing. [![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://www.docker.com/) [![CUDA](https://img.shields.io/badge/CUDA-12.4.1-green.svg)](https://developer.nvidia.com/cuda-downloads) [![Streamlit](https://img.shields.io/badge/Streamlit-UI-red.svg)](https://streamlit.io/) [![N8N](https://img.shields.io/badge/N8N-Integration-orange.svg)](https://n8n.io/) ## ✨ Key Features ### šŸŽÆ Core Capabilities - **šŸ”¬ Advanced AI Detection**: YOLO-based object detection and analysis - **šŸ“¦ Smart Dataset Upload**: 10GB limit with intelligent ZIP structure detection - **šŸŽÆ Custom Model Training**: Train your own models with any YOLO dataset - **šŸ¤– YOLO11 Model Variants**: Choose from nano/small/medium/large/x-large base models - **⚔ GPU Acceleration**: NVIDIA CUDA support for fast training/inference - **🌐 Web Interface**: Beautiful Streamlit dashboard - **šŸ“Š Real-time Monitoring**: Live GPU stats and training progress - **šŸ”Œ MCP Integration**: Connect with N8N for workflow automation - **šŸ›”ļø Background Processing**: Stable upload handling for large files ## ļæ½ Quick Start ### One-Command Setup **For Windows users:** ```bash setup.bat ``` **For Linux/Mac users:** ```bash chmod +x setup.sh ./setup.sh ``` **Manual setup:** ```bash docker-compose up --build -d ``` ### Access the Platform - **🌐 Main Interface**: http://localhost:8501 - **šŸ“Š TensorBoard**: http://localhost:6006 - **šŸ”Œ MCP Server**: http://localhost:8092 - **šŸ““ Jupyter**: http://localhost:8888 ## ļæ½ Requirements - **Docker & Docker Compose** - **NVIDIA Docker Runtime** (for GPU support) - **8GB+ RAM** recommended - **50GB+ free disk space** ## šŸŽÆ Dataset Upload ### Supported ZIP Structures The platform automatically detects and organizes various ZIP structures: ``` āœ… Structure 1 (Flat): dataset.zip ā”œā”€ā”€ data.yaml ā”œā”€ā”€ images/ │ ā”œā”€ā”€ img1.jpg │ └── img2.jpg └── labels/ ā”œā”€ā”€ img1.txt └── img2.txt āœ… Structure 2 (Nested): dataset.zip └── my_dataset/ ā”œā”€ā”€ data.yaml ā”œā”€ā”€ images/ │ ā”œā”€ā”€ train/ │ └── val/ └── labels/ ā”œā”€ā”€ train/ └── val/ āœ… Structure 3 (Split folders): dataset.zip ā”œā”€ā”€ data.yaml ā”œā”€ā”€ train/ │ ā”œā”€ā”€ images/ │ └── labels/ └── val/ ā”œā”€ā”€ images/ └── labels/ ``` ### Upload Process 1. Navigate to **Training** page 2. Click **Upload Custom Dataset** 3. Select your ZIP file (up to 10GB) 4. Enter dataset name 5. Click **Upload Dataset** 6. **Do NOT refresh** during processing 7. Wait for completion message - 🌐 **Streamlit UI**: http://localhost:8501 - šŸ“Š **TensorBoard**: http://localhost:6006 - šŸ““ **Jupyter Lab**: http://localhost:8888 - šŸ”— **MCP Server**: http://localhost:8092 ## šŸŽ® Available Services | Service | Port | Description | Status | |---------|------|-------------|--------| | Streamlit Dashboard | 8501 | Interactive YOLO model interface | āœ… Ready | | MCP Server | 8092 | N8N integration endpoint | āœ… Ready | | TensorBoard | 6006 | Training metrics visualization | āœ… Ready | | Jupyter Lab | 8888 | Development environment | āœ… Ready | ## šŸ› ļø MCP Tools Available Our MCP server provides 7 specialized tools for AI workflows: 1. **`detect_objects`** - Real-time object detection in images 2. **`train_model`** - Custom YOLO model training 3. **`evaluate_model`** - Model performance assessment 4. **`predict_batch`** - Batch processing for multiple images 5. **`export_model`** - Model format conversion (ONNX, TensorRT, etc.) 6. **`benchmark_model`** - Performance benchmarking 7. **`analyze_dataset`** - Dataset statistics and validation ## šŸ”Œ N8N Integration Connect to N8N using our MCP server: 1. **Server Endpoint**: `http://localhost:8092` 2. **Transport**: Server-Sent Events (SSE) 3. **Health Check**: `http://localhost:8092/health` ### Example N8N Workflow ```json { "mcp_connection": { "transport": "sse", "endpoint": "http://localhost:8092/sse" } } ``` ## šŸ“ Project Structure ``` ultralytics_mcp_server/ ā”œā”€ā”€ 🐳 docker-compose.yml # Orchestration configuration ā”œā”€ā”€ šŸ”§ Dockerfile.ultralytics # CUDA-enabled Ultralytics container ā”œā”€ā”€ šŸ”§ Dockerfile.mcp-connector # Node.js MCP server container ā”œā”€ā”€ šŸ“¦ src/ │ └── server.js # MCP server implementation ā”œā”€ā”€ šŸŽØ main_dashboard.py # Streamlit main interface ā”œā”€ā”€ šŸ“„ pages/ # Streamlit multi-page app │ ā”œā”€ā”€ train.py # Model training interface │ └── inference.py # Inference interface ā”œā”€ā”€ ⚔ startup.sh # Container initialization script ā”œā”€ā”€ šŸ“‹ .dockerignore # Build optimization └── šŸ“– README.md # This documentation ``` ## šŸ”§ Configuration ### Environment Variables - `CUDA_VISIBLE_DEVICES` - GPU device selection - `STREAMLIT_PORT` - Streamlit service port (default: 8501) - `MCP_PORT` - MCP server port (default: 8092) - `TENSORBOARD_PORT` - TensorBoard port (default: 6006) ### Custom Configuration Edit `docker-compose.yml` to customize: - Port mappings - Volume mounts - Environment variables - Resource limits ## šŸ“Š Usage Examples ### Object Detection via Streamlit 1. Navigate to http://localhost:8501 2. Upload an image or video 3. Select YOLO model variant and confidence threshold 4. Run inference and view annotated results ### Training Custom Models with YOLO11 Variants 1. Go to **Training** page in Streamlit 2. Upload custom dataset or select built-in datasets 3. Choose **YOLO11 Model Variant**: - **yolo11n**: Fast training, good for testing (1.9M parameters) - **yolo11s**: Balanced performance (9.1M parameters) - **yolo11m**: Better accuracy (20.1M parameters) - **yolo11l**: High accuracy training (25.3M parameters) - **yolo11x**: Maximum accuracy (43.9M parameters) 4. Configure epochs, batch size, image size 5. Monitor real-time training progress with live GPU stats 6. Models automatically save to workspace ### Training Custom Models 1. Access Training page in Streamlit interface 2. Select **YOLO11 Model Variant** (nano/small/medium/large/x-large) 3. Choose your dataset (built-in or custom upload) 4. Configure training parameters (epochs, batch size, image size) 5. Click **Start Training** and monitor progress 6. Models auto-save to workspace for later use **Model Variant Selection:** - **yolo11n.pt** - Nano: Fastest, lowest accuracy (1.9M params) - **yolo11s.pt** - Small: Good balance (9.1M params) - **yolo11m.pt** - Medium: Better accuracy (20.1M params) - **yolo11l.pt** - Large: High accuracy (25.3M params) - **yolo11x.pt** - X-Large: Highest accuracy (43.9M params) ### N8N Automation 1. Create N8N workflow 2. Add MCP connector node 3. Configure endpoint: `http://localhost:8092` 4. Use available tools for automation ## šŸ” Monitoring & Debugging ### Container Status ```bash docker ps docker-compose logs ultralytics-container docker-compose logs mcp-connector-container ``` ### Health Checks ```bash # MCP Server curl http://localhost:8092/health # Streamlit curl http://localhost:8501/_stcore/health # TensorBoard curl http://localhost:6006 ``` ## šŸ”„ Restart & Maintenance ### Restart Services ```bash docker-compose restart ``` ### Update & Rebuild ```bash docker-compose down docker-compose up --build -d ``` ### Clean Reset ```bash docker-compose down docker system prune -f docker-compose up --build -d ``` ## šŸŽÆ Performance Optimization - **GPU Memory**: Automatically managed by CUDA runtime - **Batch Processing**: Optimized for multiple image inference - **Model Caching**: Pre-loaded models for faster response - **Multi-threading**: Concurrent request handling ## 🚨 Troubleshooting ### Common Issues **Container Restart Loop** ```bash # Check logs docker-compose logs ultralytics-container # Restart with rebuild docker-compose down docker-compose up --build -d ``` **Streamlit Not Loading** ```bash # Verify container status docker ps # Check if files are copied correctly docker exec ultralytics-container ls -la /ultralytics/ ``` **GPU Not Detected** ```bash # Check NVIDIA drivers nvidia-smi # Verify CUDA in container docker exec ultralytics-container nvidia-smi ``` ## šŸ”§ Development ### Local Development Setup 1. Clone repository 2. Install dependencies: `npm install` (for MCP server) 3. Set up Python environment for Streamlit 4. Run services individually for debugging ### Adding New MCP Tools 1. Edit `src/server.js` 2. Add tool definition in `tools` array 3. Implement handler in `handleToolCall` 4. Test with N8N integration ## šŸ¤ Contributing 1. Fork the repository 2. Create feature branch (`git checkout -b feature/amazing-feature`) 3. Commit changes (`git commit -m 'Add amazing feature'`) 4. Push to branch (`git push origin feature/amazing-feature`) 5. Open Pull Request ## šŸ“„ License This project is licensed under the AGPL-3.0 License - see the [Ultralytics License](https://ultralytics.com/license) for details. ## šŸ™ Acknowledgments - **Ultralytics** - For the amazing YOLO implementation - **N8N** - For the workflow automation platform - **Streamlit** - For the beautiful web interface framework - **NVIDIA** - For CUDA support and GPU acceleration ## šŸ“ž Support - šŸ› **Issues**: [GitHub Issues](https://github.com/MetehanYasar11/ultralytics_mcp_server/issues) - šŸ’¬ **Discussions**: [GitHub Discussions](https://github.com/MetehanYasar11/ultralytics_mcp_server/discussions) - šŸ“§ **Contact**: Create an issue for support --- **Made with ā¤ļø for the AI Community** > šŸš€ **Ready to revolutionize your computer vision workflows? Start with `docker-compose up -d`!**

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/MetehanYasar11/ultralytics_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server