项目简介

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

安装步骤

  1. 安装 Node.js 和 NPM: 确保您的系统安装了 Node.js (v18 或更高版本) 和 NPM (v8 或更高版本)。可以通过访问 https://nodejs.org/en/download 获取安装指南。
  2. 验证安装:
    node --version
    npm --version
  3. 快速测试: 在命令行中运行以下命令以验证 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与计算