DigitalOcean API服务器

DigitalOcean MCP服务器提供对所有DigitalOcean API端点的全面访问,使AI助手能够以编程方式与您的DigitalOcean资源进行交互。

  • by amranu
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 amranu/digitalocean-mcp

使用说明

DigitalOcean MCP服务器

模型上下文协议(MCP)服务器,提供对所有DigitalOcean API端点的全面访问,这些端点是从其OpenAPI规范中动态提取的。此服务器使AI助手能够以编程方式与您的DigitalOcean资源进行交互。

特性

  • API全面覆盖:在所有服务中访问471+个DigitalOcean API端点
  • 动态端点发现:自动从DigitalOcean的OpenAPI规范中提取端点并为其建立索引
  • 智能搜索:按操作ID、摘要、描述或标记查找端点
  • 详细文件:获取每个端点的参数详细信息、描述和要求
  • 经过身份验证的API调用:通过具有正确身份验证的MCP服务器执行API调用
  • 基于标签的组织:按类别浏览端点(Droplets、负载均衡器、数据库等)
  • 自动配置:从自动配置 DIGITALOCEAN_API_TOKEN 环境变量

快速开始

安装

npm install
npm run build

环境设置

创建一个 .env 文件或设置环境变量:

export DIGITALOCEAN_API_TOKEN="your-digitalocean-api-token"

运行服务器

npm start

或者用于自动重新加载的开发:

npm run dev

MCP工具

服务器为AI助手提供以下MCP工具:

1. configure_digitalocean_api

设置API凭据(如果使用环境变量,则为可选)

2. list_endpoints

列出所有可用端点,并可选择按标签进行筛选

3. search_endpoints

按查询字符串搜索端点

4. get_endpoint_details

获取特定端点的详细信息

5. call_digitalocean_api

使用身份验证执行API调用

6. list_tags

显示所有可用的端点类别

使用示例

基本液滴管理

// List all droplets
{
  "tool": "call_digitalocean_api",
  "arguments": {
    "operationId": "droplets_list"
  }
}

// Create a new droplet
{
  "tool": "call_digitalocean_api",
  "arguments": {
    "operationId": "droplets_create",
    "parameters": {
      "name": "example-droplet",
      "region": "nyc3",
      "size": "s-1vcpu-1gb",
      "image": "ubuntu-20-04-x64"
    }
  }
}

发现和搜索

// Find all droplet-related endpoints
{
  "tool": "search_endpoints",
  "arguments": {
    "query": "droplet",
    "limit": 10
  }
}

// List endpoints by category
{
  "tool": "list_endpoints",
  "arguments": {
    "tag": "Load Balancers",
    "limit": 5
  }
}

// Get detailed endpoint information
{
  "tool": "get_endpoint_details",
  "arguments": {
    "operationId": "droplets_list"
  }
}

建筑

  • extract_endpoints.py:解析OpenAPI规范并提取端点定义的Python脚本
  • src/端点s.ts:用于加载和搜索端点数据的TypeScript模块
  • src/api-client.ts:用于进行经过身份验证的API调用的HTTP客户端
  • src/index.ts:主MCP服务器实现

API覆盖范围

服务器提供对所有DigitalOcean API端点的访问,这些端点的类别包括:

  • 单击应用程序
  • 账户管理
  • 计费
  • 块存储卷
  • CDN端点
  • 证书
  • 集装箱登记处
  • 数据库
  • 域名和DNS
  • 水滴
  • 防火墙
  • 浮动IP
  • 图像
  • Kubernetes
  • 负载均衡器
  • 监控
  • 项目
  • 预留IP
  • 快照
  • SSH密钥
  • 标签
  • 性早搏
  • 还有更多。..

发展

要重新生成端点数据,请执行以下操作:

python extract_endpoints.py

要重建服务器,请执行以下操作:

npm run build

克劳德配置

克劳德桌面

添加到您的Claude Desktop MCP配置(~/Library/Application Support/Claude/claude_desktop_config.json 在 macOS 上:

{
  "mcpServers": {
    "digitalocean": {
      "command": "node",
      "args": ["/path/to/digitalocean-mcp/dist/index.js"],
      "env": {
        "DIGITALOCEAN_API_TOKEN": "your-digitalocean-api-token"
      }
    }
  }
}

克劳德代码(CLI)

对于Claude Code用户,服务器会根据环境变量自动配置:

export DIGITALOCEAN_API_TOKEN="your-digitalocean-api-token"
claude

真实世界的例子

基础设施管理

// Check droplet status across your infrastructure
{
  "tool": "call_digitalocean_api",
  "arguments": {
    "operationId": "droplets_list"
  }
}

// Scale a droplet
{
  "tool": "call_digitalocean_api",
  "arguments": {
    "operationId": "dropletActions_post",
    "parameters": {
      "droplet_id": "123456789",
      "type": "resize",
      "size": "s-2vcpu-4gb"
    }
  }
}

数据库操作

// List database clusters
{
  "tool": "call_digitalocean_api",
  "arguments": {
    "operationId": "databases_list_clusters"
  }
}

// Create database backup
{
  "tool": "call_digitalocean_api",
  "arguments": {
    "operationId": "databases_add_backup",
    "parameters": {
      "database_cluster_uuid": "your-cluster-uuid"
    }
  }
}

负载均衡器管理

// List load balancers
{
  "tool": "call_digitalocean_api",
  "arguments": {
    "operationId": "load_balancers_list"
  }
}

// Update load balancer configuration
{
  "tool": "call_digitalocean_api",
  "arguments": {
    "operationId": "load_balancers_update",
    "parameters": {
      "lb_id": "your-lb-id",
      "name": "updated-lb-name",
      "algorithm": "round_robin"
    }
  }
}

安全

  • API令牌处理安全,从不记录
  • 所有请求都使用HTTPS
  • 速率限制是自动处理的
  • 环境变量是令牌存储的首选

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件

支持