Skip to main content
Glama

DigitalOcean MCP Server

DigitalOcean MCP Server

A comprehensive Model Context Protocol (MCP) server that provides programmatic access to DigitalOcean's API. This server exposes 48 tools across 7 major service categories for complete infrastructure management through the MCP interface.

Features

  • πŸ–₯️ Droplet Management: Complete lifecycle management with resize and snapshot capabilities

  • πŸ’Ύ Volume Management: Block storage operations including attach/detach and snapshots

  • πŸ“Έ Snapshot Operations: Backup and restore functionality for droplets and volumes

  • πŸ–ΌοΈ Image Management: Custom image operations, transfers, and conversions

  • 🌐 Floating IP Management: Static IP allocation, assignment, and management

  • βš–οΈ Load Balancer Operations: Traffic distribution with full CRUD operations

  • πŸ”₯ Firewall Management: Complete network security with rule and policy management

  • ☸️ Kubernetes Operations: Comprehensive cluster and node pool management

  • πŸ“¦ Container Registry: Access and manage DigitalOcean container registries

  • βœ… Connection Testing: Verify API connectivity and authentication

Prerequisites

  • Go 1.19 or higher

  • DigitalOcean API token (required - see Configuration section)

Installation

From Source

git clone https://github.com/rohit-kaundal/digitalocean-mcp-server.git cd digitalocean-mcp-server go mod tidy go build -o digitalocean-mcp-server

Using Go Install

go install github.com/rohit-kaundal/digitalocean-mcp-server@latest

Configuration

Environment Variables

REQUIRED: Set your DigitalOcean API token before running the server:

export DIGITALOCEAN_ACCESS_TOKEN="your_digitalocean_api_token"

⚠️ The server will not function without this environment variable set.

Getting a DigitalOcean API Token

  1. Log in to your DigitalOcean Control Panel

  2. Navigate to API in the left sidebar

  3. Click Generate New Token

  4. Give your token a name and select appropriate scopes

  5. Copy the generated token (you won't be able to see it again)

Usage

Running the Server

First, ensure your DigitalOcean API token is set:

export DIGITALOCEAN_ACCESS_TOKEN="your_digitalocean_api_token"

Then run the server:

./digitalocean-mcp-server

Or run directly with Go:

go run main.go

The server will start and listen for MCP requests via stdio transport.

Available Tools (48 Total)

Connection & Testing

  • test_connection - Test API connectivity and authentication

Droplet Management (7 tools)

  • list_droplets - List all droplets with pagination support

  • get_droplet - Get detailed information about a specific droplet

  • create_droplet - Create a new droplet with custom specifications

  • delete_droplet - Permanently delete a droplet

  • resize_droplet - Resize droplet to different size (CPU/RAM/disk)

  • create_droplet_snapshot - Create a snapshot backup of a droplet

Volume Management (8 tools)

  • list_volumes - List all block storage volumes (optionally by region)

  • get_volume - Get detailed volume information

  • create_volume - Create new block storage volume

  • delete_volume - Delete a volume

  • attach_volume - Attach volume to a droplet

  • detach_volume - Detach volume from a droplet

  • resize_volume - Expand volume storage capacity

  • create_volume_snapshot - Create snapshot backup of a volume

Snapshot Operations (6 tools)

  • list_snapshots - List all snapshots (filter by droplet/volume)

  • list_volume_snapshots - List volume-specific snapshots

  • list_droplet_snapshots - List droplet-specific snapshots

  • get_snapshot - Get detailed snapshot information

  • delete_snapshot - Delete a snapshot

Image Management (6 tools)

  • list_images - List available images (distribution/application/user)

  • get_image - Get image details by ID or slug

  • update_image - Update image metadata (name, description)

  • delete_image - Delete custom images

  • transfer_image - Transfer image to different region

  • convert_image_to_snapshot - Convert image to snapshot format

Floating IP Management (6 tools)

  • list_floating_ips - List all floating IP addresses

  • get_floating_ip - Get floating IP details and assignment status

  • create_floating_ip - Create new floating IP (regional or assigned)

  • delete_floating_ip - Release floating IP

  • assign_floating_ip - Assign floating IP to droplet

  • unassign_floating_ip - Unassign floating IP from droplet

Load Balancer Operations (9 tools)

  • list_load_balancers - List all load balancers

  • get_load_balancer - Get load balancer configuration and status

  • create_load_balancer - Create new load balancer with forwarding rules

  • update_load_balancer - Update load balancer configuration

  • delete_load_balancer - Delete load balancer

  • add_droplets_to_load_balancer - Add droplets to load balancer pool

  • remove_droplets_from_load_balancer - Remove droplets from pool

  • add_forwarding_rules_to_load_balancer - Add traffic forwarding rules

  • remove_forwarding_rules_from_load_balancer - Remove forwarding rules

Firewall Management (11 tools)

  • list_firewalls - List all firewalls in the account

  • get_firewall - Get detailed firewall configuration and rules

  • create_firewall - Create new firewall with inbound/outbound rules

  • update_firewall - Update firewall configuration and rules

  • delete_firewall - Remove firewall from account

  • add_droplets_to_firewall - Assign droplets to firewall protection

  • remove_droplets_from_firewall - Remove droplets from firewall

  • add_tags_to_firewall - Add tags to firewall for organization

  • remove_tags_from_firewall - Remove tags from firewall

  • add_rules_to_firewall - Add new security rules to firewall

  • remove_rules_from_firewall - Remove existing security rules

Kubernetes Clusters (4 tools)

  • list_k8s_clusters - List all Kubernetes clusters

  • get_k8s_cluster - Get cluster details and status

  • create_k8s_cluster - Create new Kubernetes cluster

  • delete_k8s_cluster - Delete Kubernetes cluster

Container Registry (2 tools)

  • list_registries - List all container registries

  • get_registry - Get registry details and repositories

Example MCP Client Usage

Basic Operations

{ "method": "tools/call", "params": { "name": "list_droplets", "arguments": { "page": 1, "per_page": 25 } } }
{ "method": "tools/call", "params": { "name": "create_droplet", "arguments": { "name": "my-server", "region": "nyc3", "size": "s-1vcpu-1gb", "image": "ubuntu-22-04-x64" } } }

Volume Management

{ "method": "tools/call", "params": { "name": "create_volume", "arguments": { "name": "my-storage", "region": "nyc3", "size_gigabytes": 100, "description": "Additional storage for applications" } } }
{ "method": "tools/call", "params": { "name": "attach_volume", "arguments": { "volume_id": "volume-123", "droplet_id": 456 } } }

Load Balancer Setup

{ "method": "tools/call", "params": { "name": "create_load_balancer", "arguments": { "name": "web-lb", "algorithm": "round_robin", "region": "nyc3", "forwarding_rules": [ { "entry_protocol": "http", "entry_port": 80, "target_protocol": "http", "target_port": 8080 } ], "droplet_ids": [123, 456] } } }

Floating IP Management

{ "method": "tools/call", "params": { "name": "create_floating_ip", "arguments": { "region": "nyc3" } } }
{ "method": "tools/call", "params": { "name": "assign_floating_ip", "arguments": { "ip": "192.168.1.100", "droplet_id": 123 } } }

Firewall Configuration

{ "method": "tools/call", "params": { "name": "create_firewall", "arguments": { "name": "web-firewall", "inbound_rules": [ { "protocol": "tcp", "ports": "80", "sources": { "addresses": ["0.0.0.0/0"] } }, { "protocol": "tcp", "ports": "443", "sources": { "addresses": ["0.0.0.0/0"] } } ], "outbound_rules": [ { "protocol": "tcp", "ports": "all", "destinations": { "addresses": ["0.0.0.0/0"] } } ], "droplet_ids": [123, 456] } } }
{ "method": "tools/call", "params": { "name": "add_droplets_to_firewall", "arguments": { "firewall_id": "firewall-123", "droplet_ids": [789, 101112] } } }

Development

Project Structure

digitalocean-mcp-server/ β”œβ”€β”€ main.go # Entry point β”œβ”€β”€ server/ β”‚ β”œβ”€β”€ server.go # MCP server initialization β”‚ └── tools.go # Tool registration β”œβ”€β”€ client/ β”‚ └── digitalocean.go # DigitalOcean API client β”œβ”€β”€ handlers/ β”‚ β”œβ”€β”€ common.go # Shared handler functionality β”‚ β”œβ”€β”€ droplets.go # Droplet operations β”‚ β”œβ”€β”€ volumes.go # Volume operations β”‚ β”œβ”€β”€ snapshots.go # Snapshot operations β”‚ β”œβ”€β”€ images.go # Image operations β”‚ β”œβ”€β”€ floating_ips.go # Floating IP operations β”‚ β”œβ”€β”€ load_balancers.go # Load balancer operations β”‚ β”œβ”€β”€ firewalls.go # Firewall operations β”‚ β”œβ”€β”€ kubernetes.go # Kubernetes operations β”‚ └── registry.go # Registry operations β”œβ”€β”€ types/ β”‚ └── args.go # Request argument types └── CLAUDE.md # AI assistant instructions

Development Commands

# Run the server go run main.go # Run tests go test ./... # Build binary go build -o digitalocean-mcp-server # Update dependencies go mod tidy

Adding New Tools

  1. Define argument types in types/args.go

  2. Implement handler logic in the appropriate file under handlers/

  3. Register the tool in server/tools.go

  4. Update this documentation

Dependencies

  • godo - DigitalOcean API client

  • mcp-golang - MCP protocol implementation

  • oauth2 - OAuth2 authentication

Error Handling

All tools return standardized MCP responses:

  • Success: JSON-formatted data with the requested information

  • Error: Structured error messages with details about what went wrong

Common error scenarios:

  • Invalid or missing API token

  • Insufficient permissions

  • Resource not found

  • API rate limiting

  • Network connectivity issues

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Changelog

v2.0.1

  • Firewall Management: Added comprehensive network security with 11 firewall tools

  • Security Rules: Complete inbound/outbound rule management and configuration

  • Droplet Protection: Assign and manage firewall protection for droplets

  • Tag Management: Organize firewalls with tag-based categorization

  • Rule Modification: Dynamic addition and removal of security rules

  • Enhanced Documentation: Updated with firewall management examples

v2.0.0

  • MAJOR EXPANSION: Added 30+ new API tools across 5 additional service categories

  • Volume Management: Complete block storage lifecycle (8 tools)

  • Snapshot Operations: Backup and restore functionality (6 tools)

  • Image Management: Custom image operations and transfers (6 tools)

  • Floating IP Management: Static IP allocation and assignment (6 tools)

  • Load Balancer Operations: Traffic distribution with full CRUD (9 tools)

  • Enhanced Droplets: Added resize and snapshot capabilities

  • Comprehensive Documentation: Updated with detailed API coverage

  • Improved Architecture: Modular handler design for scalability

v1.0.0

  • Initial release

  • Droplet management tools (5 tools)

  • Kubernetes cluster tools (4 tools)

  • Container registry tools (2 tools)

  • Connection testing

-
security - not tested
A
license - permissive license
-
quality - not tested

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    MCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.
    Last updated -
    2
    4
    MIT License
  • -
    security
    A
    license
    -
    quality
    MCP Server provides a simpler API to interact with the Model Context Protocol by allowing users to define custom tools and services to streamline workflows and processes.
    Last updated -
    17
    3
    MIT License
  • A
    security
    F
    license
    A
    quality
    An all-in-one Model Context Protocol (MCP) server that connects your coding AI to numerous databases, data warehouses, data pipelines, and cloud services, streamlining development workflow through seamless integrations.
    Last updated -
    3
    • Apple
    • Linux

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rohit-kaundal/digitalocean-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server