使用说明
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
- 速率限制是自动处理的
- 环境变量是令牌存储的首选
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件