# 🌩️ Vultr MCP **The Ultimate Model Context Protocol Server for Vultr Cloud Management** *Transform your cloud infrastructure with natural language commands* [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) [![PyPI version](https://img.shields.io/pypi/v/mcp-vultr.svg)](https://pypi.org/project/mcp-vultr/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-green.svg)](https://modelcontextprotocol.io/) [![Downloads](https://img.shields.io/pypi/dm/mcp-vultr.svg)](https://pypi.org/project/mcp-vultr/) [πŸš€ Quick Start](#-quick-start) β€’ [πŸ“– Documentation](#-documentation) β€’ [πŸ› οΈ Features](#-features) β€’ [πŸ’‘ Examples](#-examples) β€’ [🀝 Contributing](#-contributing)
--- ## 🎯 What is Vultr MCP? **Vultr MCP** is the most comprehensive Model Context Protocol server for Vultr cloud services, bringing **335+ management tools** across **27 service modules** to your fingertips. Manage your entire Vultr infrastructure through natural language conversations with Claude Code, Claude Desktop, or any MCP-compatible AI assistant. ### ⚑ **Why Choose Vultr MCP?** - πŸŽ›οΈ **Complete Control**: Manage every aspect of your Vultr infrastructure - 🧠 **AI-Native**: Built specifically for natural language cloud management - πŸ” **Smart Identifiers**: Use human names instead of cryptic UUIDs - πŸš€ **Production Ready**: Battle-tested with comprehensive error handling - 🌐 **Full Coverage**: From DNS to Kubernetes, databases to CDN --- ## πŸ› οΈ **Features** ### 🌟 **Core Capabilities**
**🎯 Smart Management** - πŸ”€ Human-readable identifiers - πŸ›‘οΈ Intelligent validation - πŸ“Š Real-time analytics - πŸ”„ Bulk operations **⚑ Developer Experience** - 🐍 Native Python API - πŸ–₯️ Rich CLI interface - πŸ“š Comprehensive docs - πŸ§ͺ Full test coverage
### πŸ—οΈ **Service Coverage (335+ Tools)**
πŸ–₯️ Compute & Infrastructure (67 tools) | Service | Tools | Smart Identifiers | |---------|-------|------------------| | **Instances** | 14 | `label`, `hostname` | | **Bare Metal** | 18 | `label`, `hostname` | | **Reserved IPs** | 11 | IP address | | **SSH Keys** | 5 | `name` | | **Snapshots** | 6 | `description` | | **Backups** | 2 | UUID | | **Regions** | 5 | Region code | | **Plans** | 10 | Plan ID |
🌐 Networking & DNS (54 tools) | Service | Tools | Smart Identifiers | |---------|-------|------------------| | **DNS Management** | 14 | Domain name | | **VPCs & VPC 2.0** | 15 | `description` | | **Load Balancers** | 16 | `name`, `label` | | **CDN & Edge** | 15 | Origin/CDN domain | | **Firewall** | 10 | `description` |
πŸ—„οΈ Storage & Data (53 tools) | Service | Tools | Smart Identifiers | |---------|-------|------------------| | **Managed Databases** | 41 | `name`, `label` | | **Block Storage** | 12 | `label` | | **Object Storage** | 12 | `name`, `label` | | **Storage Gateways** | 14 | `name`, `label` |
🐳 Containers & Apps (45 tools) | Service | Tools | Smart Identifiers | |---------|-------|------------------| | **Kubernetes** | 24 | Cluster `name`/`label` | | **Container Registry** | 10 | Registry `name` | | **Serverless Inference** | 10 | Service `name`/`label` | | **Marketplace** | 11 | App name |
πŸ”§ Management & Operations (40+ tools) | Service | Tools | Smart Identifiers | |---------|-------|------------------| | **Billing & Account** | 12 | Account info | | **Users & Subaccounts** | 23 | Email, name | | **Startup Scripts** | 10 | Script `name` | | **ISO Images** | 7 | Filename | | **Operating Systems** | 8 | OS name |
--- ## πŸš€ **Quick Start** ### πŸ“¦ **Installation** ```bash # πŸƒβ€β™‚οΈ Fast installation with uv (recommended) uv add mcp-vultr # πŸ“¦ Traditional pip installation pip install mcp-vultr ``` ### βš™οΈ **Setup with Claude Code** ```bash # πŸ”‘ Set your Vultr API key export VULTR_API_KEY="your-vultr-api-key" # πŸ”Œ Add to Claude Code (one command!) claude mcp add vultr vultr-mcp-server --env VULTR_API_KEY="${VULTR_API_KEY}" ``` ### πŸŽ‰ **Start Managing!** ```bash # πŸš€ Launch the MCP server vultr-mcp-server ``` **That's it!** You now have 335+ Vultr management tools available through natural language in Claude Code. --- ## πŸ’‘ **Examples** ### πŸ—£οΈ **Natural Language Commands** ``` πŸ§‘β€πŸ’» "Create a web server instance called 'my-website' in New Jersey" πŸ€– βœ… Created instance 'my-website' (Ubuntu 22.04, 1GB RAM) in ewr region πŸ§‘β€πŸ’» "Add a DNS record for blog.example.com pointing to my-website" πŸ€– βœ… Added A record: blog.example.com β†’ 192.168.1.100 (TTL: 300) πŸ§‘β€πŸ’» "Scale my Kubernetes cluster to 5 nodes" πŸ€– βœ… Scaled cluster 'production' node pool to 5 nodes πŸ§‘β€πŸ’» "Show me this month's billing breakdown by service" πŸ€– πŸ“Š Monthly costs: Instances $45, Kubernetes $120, Storage $23... ``` ### 🐍 **Python API** ```python import asyncio from mcp_vultr import VultrDNSClient, VultrDNSServer async def deploy_website(): """πŸš€ Deploy a complete website infrastructure""" # High-level DNS client dns = VultrDNSClient("your-api-key") # Full API client with smart identifiers vultr = VultrDNSServer("your-api-key") # 🌐 Create domain and DNS records await dns.create_domain("mysite.com", "192.168.1.100") await dns.add_a_record("mysite.com", "www", "192.168.1.100") await dns.add_mx_record("mysite.com", "@", "mail.mysite.com", 10) # πŸ–₯️ Deploy instance with smart naming instance = await vultr.create_instance( region="ewr", plan="vc2-1c-1gb", os_id=387, label="web-server", # 🏷️ Human-readable name! hostname="web.mysite.com" ) # πŸ”₯ Configure firewall by description firewall = await vultr.get_firewall_group("web-servers") # πŸ“Š Get real-time metrics stats = await vultr.get_instance_bandwidth("web-server") # By name! print(f"βœ… Deployed {instance['label']} with {stats['incoming']}GB traffic") asyncio.run(deploy_website()) ``` ### πŸ–₯️ **CLI Power User** ```bash # πŸ—οΈ Infrastructure management with smart names mcp-vultr instances create --label "api-server" --region ewr --plan vc2-2c-4gb mcp-vultr instances start api-server # Start by name! mcp-vultr instances attach-volume api-server db-storage # Attach by names! # 🌐 DNS management mcp-vultr domains create api.mycompany.com 192.168.1.200 mcp-vultr records add api.mycompany.com A @ 192.168.1.200 mcp-vultr setup-website api.mycompany.com 192.168.1.200 --ssl # 🐳 Kubernetes cluster management mcp-vultr k8s create production-cluster --region ewr --nodes 3 mcp-vultr k8s scale production-cluster --nodes 5 # Scale by name! mcp-vultr k8s get-costs production-cluster # Cost analysis! # πŸ’Ύ Database deployment mcp-vultr databases create postgres-main --engine postgresql --region ewr mcp-vultr databases backup postgres-main # Backup by name! # πŸ“Š Monitoring & analytics mcp-vultr billing summary --month current mcp-vultr billing trends --months 6 mcp-vultr instances list --status running --region ewr ``` --- ## 🎯 **Smart Identifier Resolution** **Stop wrestling with UUIDs!** Vultr MCP's killer feature is **smart identifier resolution** - use human-readable names instead of cryptic UUIDs across all services. ### 🏷️ **Before vs After** ```bash # 😀 The old way (UUIDs everywhere) vultr instance stop cb676a46-66fd-4dfb-b839-443f2e6c0b60 vultr firewall rule add 5f2a4b6c-7b8d-4e9f-a1b2-3c4d5e6f7a8b --port 443 # πŸŽ‰ The Vultr MCP way (human names!) mcp-vultr instances stop web-server mcp-vultr firewall rules add web-servers --port 443 ``` ### 🧠 **Smart Resolution Across All Services** | Service | Smart Identifier | Example | |---------|------------------|---------| | πŸ–₯️ **Instances** | `label`, `hostname` | `web-server`, `api.company.com` | | πŸ”‘ **SSH Keys** | `name` | `laptop-key`, `ci-deploy-key` | | πŸ”₯ **Firewall Groups** | `description` | `web-servers`, `database-tier` | | πŸ“Έ **Snapshots** | `description` | `backup-2024-01`, `pre-upgrade` | | 🌐 **Reserved IPs** | IP address | `192.168.1.100` | | 🐳 **Container Registries** | `name` | `my-app-registry` | | πŸ’Ύ **Block Storage** | `label` | `database-storage` | | 🌐 **VPCs** | `description` | `production-network` | | πŸ“œ **Startup Scripts** | `name` | `docker-setup` | | πŸ–₯️ **Bare Metal** | `label`, `hostname` | `db-server-01` | | 🌐 **CDN Zones** | Origin/CDN domain | `cdn.mysite.com` | | ☸️ **Kubernetes** | `name`, `label` | `prod-cluster` | | βš–οΈ **Load Balancers** | `name`, `label` | `api-lb` | | πŸ—„οΈ **Databases** | `name`, `label` | `postgres-main` | | πŸ’Ž **Object Storage** | `name`, `label` | `media-bucket` | | πŸš€ **Inference Services** | `name`, `label` | `ml-api` | | πŸšͺ **Storage Gateways** | `name`, `label` | `file-gateway` | | πŸ‘₯ **Subaccounts** | `name`, `email` | `dev-team` | | πŸ‘€ **Users** | Email address | `admin@company.com` | --- ## πŸ—οΈ **Architecture** ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ πŸ€– AI Assistant β”‚ β”‚ (Claude Code/Desktop) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ Natural Language Commands β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ πŸ“‘ Vultr MCP Server β”‚ β”‚ (335+ Tools) β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 🌐 DNS πŸ–₯️ Compute 🐳 K8s πŸ—„οΈ DB πŸ”₯ Security πŸ’Ύ Storage β”‚ β”‚ πŸ“Š Analytics 🌍 CDN βš–οΈ LB πŸš€ Serverless πŸ‘₯ Users β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ Smart API Calls β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ ☁️ Vultr Cloud API β”‚ β”‚ (Complete Infrastructure Management) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` --- ## πŸ“– **Documentation** ### πŸš€ **Getting Started** - [⚑ Quick Start Guide](#-quick-start) - [πŸ”§ Installation & Setup](#-installation) - [🎯 First Steps with Claude Code](#-setup-with-claude-code) ### πŸ“š **API Reference** - [🐍 Python API Documentation](https://git.supported.systems/MCP/mcp-vultr/blob/main/docs/api.md) - [πŸ–₯️ CLI Command Reference](https://git.supported.systems/MCP/mcp-vultr/blob/main/docs/cli.md) - [πŸ€– MCP Tools Reference](https://git.supported.systems/MCP/mcp-vultr/blob/main/docs/mcp-tools.md) ### πŸŽ“ **Tutorials & Examples** - [πŸ—οΈ Infrastructure as Code with Natural Language](https://git.supported.systems/MCP/mcp-vultr/blob/main/examples/iac.md) - [🌐 Complete Website Deployment](https://git.supported.systems/MCP/mcp-vultr/blob/main/examples/website.md) - [☸️ Kubernetes Cluster Management](https://git.supported.systems/MCP/mcp-vultr/blob/main/examples/kubernetes.md) --- ## πŸ› οΈ **Development** ### πŸƒβ€β™‚οΈ **Quick Setup** ```bash # πŸ“₯ Clone the repository git clone https://git.supported.systems/MCP/mcp-vultr.git cd mcp-vultr # ⚑ Install with uv (recommended) uv sync --extra dev # πŸ§ͺ Run tests uv run pytest # 🎨 Format code uv run black src tests && uv run isort src tests # πŸ” Type checking uv run mypy src ``` ### πŸ“¦ **Build & Publish** ```bash # πŸ—οΈ Build package uv build # βœ… Check integrity uv run twine check dist/* # πŸš€ Publish to PyPI uv run twine upload dist/* ``` --- ## 🀝 **Contributing** We ❀️ contributions! Whether it's: - πŸ› **Bug Reports**: Found an issue? Let us know! - ✨ **Feature Requests**: Have ideas? We want to hear them! - πŸ“ **Documentation**: Help make our docs even better - πŸ§ͺ **Testing**: Add tests, improve coverage - πŸ’» **Code**: Submit PRs for new features or fixes ### πŸš€ **How to Contribute** 1. 🍴 **Fork** the repository 2. 🌿 **Create** a feature branch (`git checkout -b feature/amazing-feature`) 3. ✍️ **Make** your changes 4. βœ… **Test** everything (`uv run python run_tests.py --all-checks`) 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 --- ## πŸ“Š **Project Stats**
| Metric | Value | |--------|-------| | πŸ› οΈ **MCP Tools** | **335+** | | πŸ“¦ **Service Modules** | **27** | | 🐍 **Python Support** | **3.10+** | | πŸ“ˆ **Test Coverage** | **90%+** | | πŸ“š **Documentation** | **Comprehensive** | | ⚑ **Performance** | **Production Ready** |
--- ## πŸ™ **Acknowledgments** - 🌩️ **Vultr** for their comprehensive cloud API - πŸ€– **Anthropic** for the Model Context Protocol specification - 🐍 **Python Community** for amazing tools and libraries - πŸš€ **FastMCP** for the excellent MCP framework - πŸ‘₯ **Contributors** who make this project amazing --- ## πŸ“„ **License** This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details. ---
**⭐ Star us on [GitLab](https://git.supported.systems/MCP/mcp-vultr) if you find Vultr MCP useful!** Made with ❀️ for the cloud infrastructure community [πŸš€ Get Started](#-quick-start) β€’ [πŸ“– Documentation](#-documentation) β€’ [πŸ› Report Issues](https://git.supported.systems/MCP/mcp-vultr/issues) β€’ [πŸ’¬ Discussions](https://git.supported.systems/MCP/mcp-vultr/discussions)