项目简介
MCP DigitalOcean 集成是一个开源项目,旨在为管理 DigitalOcean 资源和通过其 API 执行操作提供一个全面的接口。该项目基于 Model Context Protocol (MCP) 框架构建,将广泛的云基础设施管理功能暴露为可供 LLM 调用的工具。
主要功能点
- 资源管理: 允许 LLM 访问、创建、更新和删除 DigitalOcean 账户、应用、Droplet (虚拟机)、网络、数据库、Spaces 对象存储、Kubernetes (DOKS) 集群、监控洞察和 Marketplace 应用等。
- 工具调用: 将 DigitalOcean API 的功能封装成标准化的 MCP 工具,LLM 可以通过这些工具执行具体操作,例如:部署 GitHub 仓库中的应用、调整 Droplet 大小、创建 SSH 密钥、管理数据库集群配置和用户、配置防火墙规则、管理 CDN 缓存等。
- 上下文提供: 作为 LLM 的上下文服务后端,以结构化和安全的方式提供 DigitalOcean 账户和资源信息,支持 LLM 理解和执行复杂的云操作指令。
- 多服务支持: 通过 '--services' 标志按需启用特定的 DigitalOcean 服务,减少上下文大小并提高 LLM 交互的准确性。支持的服务包括:'apps' (应用平台)、'droplets' (虚拟机)、'accounts' (账户信息)、'networking' (域名、防火墙、负载均衡、VPC等)、'insights' (监控和告警)、'spaces' (对象存储和CDN)、'databases' (托管数据库)、'marketplace' (一键应用)、'doks' (Kubernetes)。
安装步骤
- 安装 Node.js 和 NPM: 确保您的系统安装了 Node.js (v18 或更高版本) 和 NPM (v8 或更高版本)。可以通过访问 https://nodejs.org/en/download 获取安装指南。
- 验证安装:
node --version npm --version - 快速测试: 在命令行中运行以下命令以验证 MCP 服务器是否正常工作:
npx @digitalocean/mcp --services apps
服务器配置示例 (JSON)
MCP 客户端(如 Claude Code, Cursor, VS Code)需要配置以下 JSON 格式信息来连接 DigitalOcean MCP 服务器。您需要提供 DigitalOcean API 令牌。
{ "mcpServers": { "digitalocean": { "command": "npx", "args": ["@digitalocean/mcp", "--services", "apps,databases"], "env": { "DIGITALOCEAN_API_TOKEN": "YOUR_DO_API_TOKEN" // 替换为您的 DigitalOcean API 令牌 } } } }
- 'command': 启动 MCP 服务器的命令,这里是 'npx',它会执行 '@digitalocean/mcp' 包。
- 'args': 传递给 MCP 服务器的参数列表。'--services' 标志后接逗号分隔的服务列表(例如 'apps,databases'),用于指定该 MCP 服务器将激活哪些 DigitalOcean 服务的功能。
- 'env': 环境变量对象,用于将敏感信息(如 'DIGITALOCEAN_API_TOKEN')安全地传递给 MCP 服务器。'YOUR_DO_API_TOKEN' 需替换为您真实的 DigitalOcean API 令牌。
基本使用方法
配置完成后,您可以从支持 MCP 的 LLM 客户端中通过自然语言请求来管理 DigitalOcean 资源。
- 示例 (在 LLM 客户端聊天中尝试):
- "列出我所有的 DigitalOcean 应用" (List all my DigitalOcean apps)
- "创建一个名为 'my-new-app' 的应用,从 GitHub 仓库 'https://github.com/myuser/my-app' 的 'main' 分支部署" (Create an app named 'my-new-app' from GitHub repo 'https://github.com/myuser/my-app' on 'main' branch)
- "调整 ID 为 12345 的 Droplet 的大小为 's-2vcpu-4gb'" (Resize droplet with ID 12345 to 's-2vcpu-4gb')
- "为 DigitalOcean Kubernetes 集群 'my-k8s-cluster' 列出所有节点池" (List all node pools for DigitalOcean Kubernetes cluster 'my-k8s-cluster')
请根据实际 LLM 客户端的交互方式进行调整。
信息
分类
AI与计算