Skip to main content
Glama
rsp2k
by rsp2k
README.md
<div align="center">

# ๐ŸŒฉ๏ธ 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)

</div>

---

## ๐ŸŽฏ 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
- ๐Ÿš€ **Enterprise Ready**: Battle-tested with comprehensive error handling
- ๐ŸŒ **Full Coverage**: From DNS to Kubernetes, databases to CDN
- โœจ **Beautiful CLI**: Professional Rich UI with colors, tables, and real-time feedback

---

## ๐Ÿ› ๏ธ **Features**

### ๐ŸŒŸ **Core Capabilities**

<table>
<tr>
<td width="50%">

**๐ŸŽฏ Smart Management**
- ๐Ÿ”ค Human-readable identifiers
- ๐Ÿ›ก๏ธ Intelligent validation  
- ๐Ÿ“Š Real-time analytics
- ๐Ÿ”„ Bulk operations

</td>
<td width="50%">

**โšก Developer Experience**
- ๐Ÿ Native Python API
- ๐Ÿ–ฅ๏ธ Rich CLI interface
- ๐Ÿ“š Comprehensive docs
- ๐Ÿงช Full test coverage

</td>
</tr>
</table>

### ๐ŸŽฏ **Enterprise Features (v2.1.0)**

<table>
<tr>
<td width="50%">

**๐ŸŽจ Beautiful CLI Interface**
- ๐ŸŒˆ Rich colors and professional tables
- ๐Ÿ“Š Real-time performance metrics  
- ๐Ÿ”„ Loading spinners and progress bars
- โœจ Branded panels and status indicators

**๐Ÿ“ Structured Logging**
- ๐Ÿท๏ธ Contextual logging with service tags
- โฑ๏ธ Request timing and performance data
- ๐Ÿ” Debug-level API call tracing
- ๐Ÿ“Š Error tracking with retry attempts

</td>
<td width="50%">

**โšก Performance & Reliability**
- ๐Ÿ’พ Intelligent TTL-based caching (85%+ hit rate)
- ๐Ÿ”„ Exponential backoff retry with jitter
- ๐Ÿ“ˆ Real-time P95/P99 performance monitoring
- ๐Ÿ›ก๏ธ Network timeout and error resilience

**๐Ÿ”’ Security & Quality**
- ๐Ÿ›ก๏ธ Pre-commit hooks with 7 quality checks
- ๐Ÿ” Bandit security scanning
- ๐Ÿค– Dependabot automated updates
- โšก Ruff lightning-fast linting

</td>
</tr>
</table>

### ๐Ÿ—๏ธ **Service Coverage (335+ Tools)**

<details>
<summary><strong>๐Ÿ–ฅ๏ธ Compute & Infrastructure (67 tools)</strong></summary>

| 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 |

</details>

<details>
<summary><strong>๐ŸŒ Networking & DNS (54 tools)</strong></summary>

| 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` |

</details>

<details>
<summary><strong>๐Ÿ—„๏ธ Storage & Data (53 tools)</strong></summary>

| Service | Tools | Smart Identifiers |
|---------|-------|------------------|
| **Managed Databases** | 41 | `name`, `label` |
| **Block Storage** | 12 | `label` |
| **Object Storage** | 12 | `name`, `label` |
| **Storage Gateways** | 14 | `name`, `label` |

</details>

<details>
<summary><strong>๐Ÿณ Containers & Apps (45 tools)</strong></summary>

| Service | Tools | Smart Identifiers |
|---------|-------|------------------|
| **Kubernetes** | 24 | Cluster `name`/`label` |
| **Container Registry** | 10 | Registry `name` |
| **Serverless Inference** | 10 | Service `name`/`label` |
| **Marketplace** | 11 | App name |

</details>

<details>
<summary><strong>๐Ÿ”ง Management & Operations (40+ tools)</strong></summary>

| 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 |

</details>

---

## ๐Ÿš€ **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.

### ๐Ÿงฆ **Proxy Support (optional)**

Route every outbound Vultr API call through an HTTP or SOCKS5 proxy by setting `VULTR_PROXY`:

```bash
# ๐Ÿง… SOCKS5, resolving DNS proxy-side (socks5h)
export VULTR_PROXY="socks5h://127.0.0.1:1080"

# ๐Ÿ”’ SOCKS5 with credentials
export VULTR_PROXY="socks5://user:pass@bastion.internal:1080"

# ๐ŸŒ A plain HTTP proxy works too
export VULTR_PROXY="http://198.51.100.1:3128"

# ๐Ÿšซ Force a direct connection, ignoring ambient HTTP_PROXY/ALL_PROXY
export VULTR_PROXY="direct"
```

Handy with `ssh -D 1080 bastion` when the Vultr API is only reachable from an allowlisted network.

| Value | Effect |
|-------|--------|
| `socks5://host:port` | SOCKS5, DNS resolved locally |
| `socks5h://host:port` | SOCKS5, DNS resolved by the proxy |
| `http://host:port` / `https://host:port` | Standard HTTP proxy |
| `direct`, `none`, `off` | Connect directly and ignore ambient proxy variables |
| *unset* | Fall back to `ALL_PROXY` / `HTTPS_PROXY` / `HTTP_PROXY` / `NO_PROXY` |

`VULTR_PROXY` takes precedence over the ambient variables, so you can proxy this package without touching the rest of your shell. Proxy credentials are redacted from logs.

---

## โœจ **What's New in v2.1.0**

**๐ŸŽ‰ MAJOR ENTERPRISE UPGRADE** - Complete transformation with professional-grade features:

### ๐ŸŽจ **Beautiful CLI Interface**
- **Rich Tables**: Professional colored tables with borders and status indicators
- **Branded Panels**: Stunning server startup with custom panels and emojis
- **Loading Feedback**: Spinners, progress bars, and real-time status updates
- **Error Styling**: Graceful error handling with contextual formatting

### ๐Ÿ“Š **Performance Monitoring**
- **Real-time Metrics**: P95/P99 response times, cache hit rates, error tracking
- **Intelligent Caching**: TTL-based caching with 85%+ hit rates for faster responses
- **System Monitoring**: CPU, memory, network, and disk I/O tracking
- **Performance Tables**: Beautiful metrics visualization with trend analysis

### ๐Ÿ“ **Structured Logging**
- **Context-Rich Logs**: Service tags, request timing, and correlation IDs
- **Debug Tracing**: Full API call tracing with request/response details
- **Error Tracking**: Retry attempts, failure analysis, and recovery metrics
- **JSON Support**: Machine-readable logs for log aggregation systems

### ๐Ÿ›ก๏ธ **Enterprise Reliability**
- **Exponential Backoff**: Smart retry logic with jitter to prevent thundering herd
- **Network Resilience**: Timeout protection and connection pooling
- **Error Recovery**: Graceful degradation and automatic failover
- **Rate Limit Handling**: Intelligent backoff when approaching API limits

### ๐Ÿ”’ **Security & Quality**
- **Pre-commit Hooks**: Automated code quality checks on every commit
- **Security Scanning**: Bandit security analysis and vulnerability detection
- **Dependency Management**: Automated updates with Dependabot
- **Modern Tooling**: Lightning-fast Ruff linting with comprehensive rule sets

---

## ๐Ÿ’ก **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())
```

### ๐Ÿ–ฅ๏ธ **Enterprise CLI Experience**

**โœจ Beautiful Rich Interface with Professional Tables**

```bash
# ๐ŸŒˆ Stunning domain overview with colors and status indicators
$ mcp-vultr domains list

                    Vultr DNS Domains (49 found)                     
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Domain                  โ”ƒ Created                   โ”ƒ DNSSEC      โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ api.mycompany.com       โ”‚ 2024-01-15T10:30:00+00:00 โ”‚ โœ… enabled  โ”‚
โ”‚ webapp.io               โ”‚ 2024-03-22T14:20:00+00:00 โ”‚ โŒ disabled โ”‚
โ”‚ blog.example.com        โ”‚ 2024-07-10T09:15:00+00:00 โ”‚ โœ… enabled  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

# ๐Ÿš€ Professional server startup with branded panels
$ mcp-vultr server
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Vultr MCP Server โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ ๐Ÿš€ Starting Vultr DNS MCP Server                                             โ”‚
โ”‚ ๐Ÿ”‘ API Key: your-key-abc123...                                               โ”‚
โ”‚ ๐Ÿ”„ Press Ctrl+C to stop                                                      โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

# ๐Ÿ—๏ธ 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 with real-time feedback
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!
```

**๐Ÿ“Š Real-time Performance Monitoring & Structured Logging**

```bash
# ๐Ÿ“ˆ Live performance metrics and cache statistics
[info] API request completed    method=GET response_time=0.63s status_code=200
[debug] Cache set              cache_type=TTLCache endpoint=/domains hit_rate=85.2%
[debug] API call recorded      cache_hit=False duration=0.63s success=True

# ๐Ÿ“Š Beautiful performance tables with P95/P99 metrics
                         API Performance Metrics                         
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Endpoint      โ”ƒ Requests โ”ƒ Avg Time โ”ƒ    P95 โ”ƒ Cache Hit โ”ƒ Error Rate โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ GET /domains  โ”‚    1,247 โ”‚   0.234s โ”‚ 0.456s โ”‚     85.2% โ”‚       0.1% โ”‚
โ”‚ GET /records  โ”‚    3,891 โ”‚   0.189s โ”‚ 0.312s โ”‚     92.1% โ”‚       0.3% โ”‚
โ”‚ POST /records โ”‚      456 โ”‚   0.567s โ”‚ 1.234s โ”‚      0.0% โ”‚       2.1% โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

---

## ๐ŸŽฏ **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 00000000-0000-0000-0000-000000000001
vultr firewall rule add 00000000-0000-0000-0000-000000000002 --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 (multiple performance modes)
make test-fast          # โšก Quick tests (30-60s)
make test-parallel      # ๐Ÿš€ Parallel execution (60-120s) 
make test-coverage      # ๐Ÿ“Š Full coverage (180-300s)

# ๐ŸŽฏ Targeted testing
make test-unit          # Unit tests only
make test-mcp           # MCP server tests
make test-error         # Error handling tests

# ๐Ÿ“ˆ Performance monitoring
python test_performance_benchmark.py

# ๐ŸŽจ 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 (`make test-parallel` or `make test-coverage`)
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**

<div align="center">

| Metric | Value |
|--------|-------|
| ๐Ÿ› ๏ธ **MCP Tools** | **335+** |
| ๐Ÿ“ฆ **Service Modules** | **27** |
| ๐Ÿ **Python Support** | **3.10+** |
| ๐Ÿ“ˆ **Test Coverage** | **90%+** |
| ๐Ÿ“š **Documentation** | **Comprehensive** |
| โšก **Performance** | **Production Ready** |

</div>

---

## ๐Ÿ™ **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.

---

<div align="center">

**โญ 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)

</div>

TDQS

C2.9/5.0

Scored across 322 tools

Disambiguation2/5

The server exposes 322 tools across many Vultr services, with heavy overlap among list/get/search/summary/analyze/setup variants (e.g., OS, plan, and backup tools). Although prefixes and descriptions help, an agent can easily misselect between near-duplicate query and convenience tools.

Naming Consistency4/5

Names generally follow module_prefix + verb_noun in snake_case (instance_create, dns_list_records, firewall_create_rule), which is predictable. Minor deviations like redundant cdn_get_cdn_zone or plan_list_plans exist but do not break the pattern.

Tool Count1/5

322 tools is extreme for any MCP server; many are convenience wrappers or narrow analytics helpers that could be collapsed into parameters. This far exceeds a well-scoped surface and increases selection cost.

Completeness5/5

The surface covers a wide range of Vultr services with CRUD, lifecycle, analytics, and setup helpers for instances, DNS, databases, Kubernetes, storage, billing, users, and more. Obvious domain operations are present, so it is effectively complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues