Back to MCP directory
publicPublicdnsLocal runtime

mcp-vultr

Vultr MCP是一个全面的模型上下文协议服务器,提供335+个工具来通过自然语言管理Vultr云基础设施,支持智能标识符解析和丰富的CLI界面。

article

README

🚀 🌩️ Vultr MCP

Vultr云管理的终极模型上下文协议服务器

通过自然语言命令变革你的云基础设施

Python 3.10+ PyPI version License: MIT MCP Compatible Downloads

🚀 快速开始📖 详细文档🛠️ 主要特性💡 使用示例🤝 贡献代码


🚀 快速开始

📦 安装指南

# 🏃‍♂️ 使用uv快速安装(推荐)
uv add mcp-vultr

# 📦 传统pip安装
pip install mcp-vultr

⚙️ 与Claude Code进行设置

# 🔑 设置你的Vultr API密钥
export VULTR_API_KEY="your-vultr-api-key"

# 🔌 添加到Claude Code(一键完成!)
claude mcp add vultr vultr-mcp-server --env VULTR_API_KEY="${VULTR_API_KEY}"

🎉 开始管理!

# 🚀 启动MCP服务器
vultr-mcp-server

就是这么简单! 现在你可以在Claude Code中通过自然语言使用335多种Vultr管理工具了。


✨ 主要特性

🌟 核心功能

| 功能分类 | 详情 | | ---- | ---- | | 🎯 智能管理 | - 🔤 人类可读的标识符
- 🛡️ 智能验证
- 📊 实时分析
- 🔄 批量操作 | | ⚡ 开发者体验 | - 🐍 原生Python API
- 🖥️ 丰富的CLI界面
- 📚 全面的文档
- 🧪 完整的测试覆盖 |

🎯 企业级特性(v2.1.0)

| 功能分类 | 详情 | | ---- | ---- | | 🎨 美观的CLI界面 | - 🌈 丰富的颜色和专业的表格
- 📊 实时性能指标
- 🔄 加载指示器和进度条
- ✨ 品牌面板和状态指示器

📝 结构化日志记录
- 🏷️ 带有服务标签的上下文日志记录
- ⏱️ 请求计时和性能数据
- 🔍 调试级API调用跟踪
- 📊 带有重试尝试的错误跟踪 | | ⚡ 性能与可靠性 | - 💾 基于智能TTL的缓存(命中率85%以上)
- 🔄 带抖动的指数退避重试
- 📈 实时P95/P99性能监控
- 🛡️ 网络超时和错误恢复能力

🔒 安全与质量
- 🛡️ 带有7项质量检查的预提交钩子
- 🔍 Bandit安全扫描
- 🤖 Dependabot自动更新
- ⚡ Ruff快速代码检查 |

🏗️ 服务覆盖范围(335+工具)

🖥️ 计算与基础设施(67个工具)

| 服务 | 工具数量 | 智能标识符 | | ---- | ---- | ---- | | 实例 | 14 | 标签, 主机名 | | 裸金属 | 18 | 标签, 主机名 | | 预留IP | 11 | IP地址 | | SSH密钥 | 5 | 名称 | | 快照 | 6 | 描述 | | 备份 | 2 | UUID | | 区域 | 5 | 区域代码 | | 计划 | 10 | 计划ID |

🌐 网络与DNS(54个工具)

| 服务 | 工具数量 | 智能标识符 | | ---- | ---- | ---- | | DNS管理 | 14 | 域名 | | VPC和VPC 2.0 | 15 | 描述 | | 负载均衡器 | 16 | 名称, 标签 | | CDN与边缘 | 15 | 源/CDN域名 | | 防火墙 | 10 | 描述 |

🗄️ 存储与数据(53个工具)

| 服务 | 工具数量 | 智能标识符 | | ---- | ---- | ---- | | 托管数据库 | 41 | 名称, 标签 | | 块存储 | 12 | 标签 | | 对象存储 | 12 | 名称, 标签 | | 存储网关 | 14 | 名称, 标签 |

🐳 容器与应用(45个工具)

| 服务 | 工具数量 | 智能标识符 | | ---- | ---- | ---- | | Kubernetes | 24 | 集群 名称/标签 | | 容器注册表 | 10 | 注册表 名称 | | 无服务器推理 | 10 | 服务 名称/标签 | | 市场 | 11 | 应用名称 |

🔧 管理与操作(40+工具)

| 服务 | 工具数量 | 智能标识符 | | ---- | ---- | ---- | | 计费与账户 | 12 | 账户信息 | | 用户与子账户 | 23 | 电子邮件,名称 | | 启动脚本 | 10 | 脚本 名称 | | ISO镜像 | 7 | 文件名 | | 操作系统 | 8 | 操作系统名称 |


💻 使用示例

🗣️ 自然语言命令

🧑‍💻 "在新泽西创建一个名为'my-website'的Web服务器实例"
🤖 ✅ 在ewr区域创建了实例'my-website'(Ubuntu 22.04,1GB内存)

🧑‍💻 "为blog.example.com添加一个指向my-website的DNS记录"
🤖 ✅ 添加了A记录:blog.example.com → 192.168.1.100(TTL: 300)

🧑‍💻 "将我的Kubernetes集群扩展到5个节点"
🤖 ✅ 将集群'production'的节点池扩展到5个节点

🧑‍💻 "显示本月按服务划分的计费明细"
🤖 📊 月度费用:实例 $45,Kubernetes $120,存储 $23...

🐍 Python API

import asyncio
from mcp_vultr import VultrDNSClient, VultrDNSServer

async def deploy_website():
    """🚀 部署完整的网站基础设施"""
    
    # 高级DNS客户端
    dns = VultrDNSClient("your-api-key")
    
    # 带有智能标识符的完整API客户端
    vultr = VultrDNSServer("your-api-key")
    
    # 🌐 创建域名和DNS记录
    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)
    
    # 🖥️ 使用智能命名部署实例
    instance = await vultr.create_instance(
        region="ewr",
        plan="vc2-1c-1gb", 
        os_id=387,
        label="web-server",  # 🏷️ 人类可读的名称!
        hostname="web.mysite.com"
    )
    
    # 🔥 按描述配置防火墙
    firewall = await vultr.get_firewall_group("web-servers")
    
    # 📊 获取实时指标
    stats = await vultr.get_instance_bandwidth("web-server")  # 按名称!
    
    print(f"✅ 部署了 {instance['label']},流量为 {stats['incoming']}GB")

asyncio.run(deploy_website())

🖥️ 企业级CLI体验

✨ 带有专业表格的美观丰富界面

# 🌈 带有颜色和状态指示器的惊艳域名概览
$ 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  │
└─────────────────────────┴───────────────────────────┴─────────────┘

# 🚀 带有品牌面板的专业服务器启动
$ mcp-vultr server
╭────────────────────────────── Vultr MCP Server ──────────────────────────────╮
│ 🚀 Starting Vultr DNS MCP Server                                             │
│ 🔑 API Key: your-key-abc123...                                               │
│ 🔄 Press Ctrl+C to stop                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

# 🏗️ 使用智能名称进行基础设施管理
mcp-vultr instances create --label "api-server" --region ewr --plan vc2-2c-4gb
mcp-vultr instances start api-server                    # 按名称启动!
mcp-vultr instances attach-volume api-server db-storage # 按名称挂载!

# 🌐 带有实时反馈的DNS管理
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集群管理
mcp-vultr k8s create production-cluster --region ewr --nodes 3
mcp-vultr k8s scale production-cluster --nodes 5       # 按名称扩展!
mcp-vultr k8s get-costs production-cluster             # 成本分析!

📊 实时性能监控与结构化日志记录

# 📈 实时性能指标和缓存统计信息
[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

# 📊 带有P95/P99指标的美观性能表格
                         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% │
└───────────────┴──────────┴──────────┴────────┴───────────┴────────────┘

🎯 智能标识符解析

告别繁琐的UUID! Vultr MCP的核心特性是 智能标识符解析 - 在所有服务中使用人类可读的名称代替晦涩的UUID。

🏷️ 使用前后对比

# 😤 旧方式(到处都是UUID)
vultr instance stop cb676a46-66fd-4dfb-b839-443f2e6c0b60
vultr firewall rule add 5f2a4b6c-7b8d-4e9f-a1b2-3c4d5e6f7a8b --port 443

# 🎉 Vultr MCP方式(人类可读的名称!)
mcp-vultr instances stop web-server  
mcp-vultr firewall rules add web-servers --port 443

🧠 全服务智能解析

| 服务 | 智能标识符 | 示例 | | ---- | ---- | ---- | | 🖥️ 实例 | 标签, 主机名 | web-server, api.company.com | | 🔑 SSH密钥 | 名称 | laptop-key, ci-deploy-key | | 🔥 防火墙组 | 描述 | web-servers, database-tier | | 📸 快照 | 描述 | backup-2024-01, pre-upgrade | | 🌐 预留IP | IP地址 | 192.168.1.100 | | 🐳 容器注册表 | 名称 | my-app-registry | | 💾 块存储 | 标签 | database-storage | | 🌐 VPC | 描述 | production-network | | 📜 启动脚本 | 名称 | docker-setup | | 🖥️ 裸金属 | 标签, 主机名 | db-server-01 | | 🌐 CDN区域 | 源/CDN域名 | cdn.mysite.com | | ☸️ Kubernetes | 名称, 标签 | prod-cluster | | ⚖️ 负载均衡器 | 名称, 标签 | api-lb | | 🗄️ 数据库 | 名称, 标签 | postgres-main | | 💎 对象存储 | 名称, 标签 | media-bucket | | 🚀 推理服务 | 名称, 标签 | ml-api | | 🚪 存储网关 | 名称, 标签 | file-gateway | | 👥 子账户 | 名称, 电子邮件 | dev-team | | 👤 用户 | 电子邮件地址 | admin@company.com |


🏗️ 架构

┌─────────────────────────────────────────────────────────────────┐
│                        🤖 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)                │
└─────────────────────────────────────────────────────────────────┘

📚 详细文档

🚀 入门指南

📚 API参考

🎓 教程与示例


🛠️ 开发

🏃‍♂️ 快速设置

# 📥 克隆仓库
git clone https://git.supported.systems/MCP/mcp-vultr.git
cd mcp-vultr

# ⚡ 使用uv安装(推荐)
uv sync --extra dev

# 🧪 运行测试(多种性能模式)
make test-fast          # ⚡ 快速测试(30 - 60秒)
make test-parallel      # 🚀 并行执行(60 - 120秒)
make test-coverage      # 📊 全覆盖测试(180 - 300秒)

# 🎯 针对性测试
make test-unit          # 仅单元测试
make test-mcp           # MCP服务器测试
make test-error         # 错误处理测试

# 📈 性能监控
python test_performance_benchmark.py

# 🎨 格式化代码
uv run black src tests && uv run isort src tests

# 🔍 类型检查
uv run mypy src

📦 构建与发布

# 🏗️ 构建包
uv build

# ✅ 检查完整性
uv run twine check dist/*

# 🚀 发布到PyPI
uv run twine upload dist/*

🤝 贡献代码

我们欢迎贡献!无论是:

  • 🐛 Bug报告:发现问题?告诉我们!
  • 功能请求:有想法?我们想听!
  • 📝 文档编写:帮助我们完善文档
  • 🧪 测试工作:添加测试,提高覆盖率
  • 💻 代码提交:提交新功能或修复的PR

🚀 如何贡献

  1. 🍴 Fork 仓库
  2. 🌿 创建 一个功能分支 (git checkout -b feature/amazing-feature)
  3. ✍️ 进行 更改
  4. 测试 所有内容 (make test-parallelmake test-coverage)
  5. 📝 提交 更改 (git commit -m 'Add amazing feature')
  6. 📤 推送 到分支 (git push origin feature/amazing-feature)
  7. 🎉 打开 一个Pull Request

📊 项目统计

| 指标 | 值 | | ---- | ---- | | 🛠️ MCP工具 | 335+ | | 📦 服务模块 | 27 | | 🐍 Python支持 | 3.10+ | | 📈 测试覆盖率 | 90%+ | | 📚 文档 | 全面 | | ⚡ 性能 | 生产就绪 |


🙏 致谢

  • 🌩️ Vultr 提供全面的云API
  • 🤖 Anthropic 提供模型上下文协议规范
  • 🐍 Python社区 提供出色的工具和库
  • 🚀 FastMCP 提供优秀的MCP框架
  • 👥 贡献者 让这个项目变得出色

📄 许可证

本项目采用 MIT许可证 - 详情请参阅 LICENSE 文件。


⭐ 如果你觉得Vultr MCP有用,请在 GitLab 上给我们加星!

为云基础设施社区用心打造

🚀 开始使用📖 详细文档🐛 报告问题💬 讨论

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client