DigitalOcean
Manage DigitalOcean Droplets, DNS, firewalls, volumes, VPCs, and load balancers via MCP. Connect with OAuth or a personal access token.
Overview
Connect DigitalOcean so AI clients can manage your control plane: Droplets, DNS, firewalls, volumes, tags, projects, snapshots, VPCs, reserved IPs, and load balancers.
This integration uses the DigitalOcean API v2 (https://api.digitalocean.com/v2). Authenticate with OAuth (Connect DigitalOcean) when configured, or paste a personal access token.
Prerequisites
- A DigitalOcean account with API access to the team you want to manage
- A stackgate.ai account
Getting credentials
Option A — OAuth (recommended when available)
- In stackgate.ai, open My Integrations → DigitalOcean.
- Click Connect DigitalOcean and authorize access for the DigitalOcean team you want to use.
- After redirect, the integration is ready. Use Edit tool access to limit Read vs Write tools if needed.
Option B — Personal access token
- Sign in to the DigitalOcean Control Panel.
- Open API → Tokens and click Generate New Token.
- Prefer Custom Scopes that match the tools you need (for example
droplet:read,droplet:update,droplet:create,droplet:delete,domain:read,domain:create,firewall:read,block_storage:read). - Copy the token once (
dop_v1_…). - In stackgate.ai, open My Integrations → DigitalOcean, paste the token, and activate.
See the DigitalOcean API authentication docs for scope details.
Using with AI clients
- Dedicated endpoint:
POST /mcp/digitaloceanwith a Sanctum bearer token - Private gateway: one config for all integrations — use
digitalocean__*namespaced tools
Key tools:
- list_droplets, get_droplet, create_droplet, delete-droplet-tool — Droplet inventory and lifecycle
- initiate_droplet_action — reboot, shutdown, power on/off, snapshots
- list-domains-tool, list-domain-records-tool, create-domain-record-tool — DNS
- list-firewalls-tool, list-volumes-tool, list-load-balancers-tool — networking and storage
See Documentation for HTTP authentication and private gateway setup.
Troubleshooting
- 422 integration not configured — connect with OAuth or paste a personal access token in My Integrations.
- 401 Unauthorized — reconnect OAuth or regenerate the personal access token.
- 403 Forbidden — the token lacks the required custom scope or your team role cannot perform the action.
- 429 Too many requests — DigitalOcean limits tokens to 5,000 requests/hour and 250/minute; wait and avoid tight polling. Listing SSH keys is limited to 10 requests per 60 seconds.
- Empty Droplet list — confirm the token belongs to the correct DigitalOcean team.
Available tools
-
get_account
Get the DigitalOcean account and team status for the connected token.
-
list_droplets
List Droplets. Optionally filter by tag_name.
-
get_droplet
Get details for a single Droplet by ID.
-
create_droplet
Create a Droplet. Requires name, region, size, and image. Optional ssh_keys, backups, ipv6, monitoring, tags, vpc_uuid, user_data.
-
delete_droplet
Delete a Droplet by ID. This is irreversible.
-
list_droplet_actions
List actions performed on a Droplet.
-
get_droplet_action
Get the status of a Droplet action.
-
initiate_droplet_action
Start a Droplet power/lifecycle action: reboot, power_cycle, shutdown, power_off, power_on, password_reset, enable_ipv6, enable_backups, disable_backups, or snapshot (requires name for snapshot).
-
list_regions
List DigitalOcean regions and available features.
-
list_sizes
List Droplet size plans (CPU, memory, disk, price).
-
list_images
List images (distributions, applications, or private snapshots).
-
get_image
Get an image by ID or slug.
-
list_ssh_keys
List SSH keys on the account. Note: DO rate-limits this endpoint to 10 requests per 60 seconds.
-
get_ssh_key
Get an SSH key by ID or fingerprint.
-
create_ssh_key
Add an SSH public key to the account.
-
delete_ssh_key
Delete an SSH key by ID or fingerprint.
-
list_domains
List domains in the account DNS.
-
get_domain
Get a domain and its TTL zone file metadata.
-
create_domain
Add a domain to DigitalOcean DNS. Optional ip_address creates an A record for @.
-
delete_domain
Delete a domain and all of its DNS records from DigitalOcean DNS.
-
list_domain_records
List DNS records for a domain. Optionally filter by type, name, or both.
-
get_domain_record
Get a single DNS record by ID.
-
create_domain_record
Create a DNS record. Provide type, name, and data; optional priority, port, ttl, weight, flags, tag.
-
update_domain_record
Update a DNS record fields (type, name, data, ttl, etc.).
-
delete_domain_record
Delete a DNS record by ID.
-
list_firewalls
List cloud firewalls.
-
get_firewall
Get a cloud firewall by ID.
-
create_firewall
Create a cloud firewall. Pass inbound_rules and outbound_rules as DigitalOcean rule objects; optional droplet_ids and tags.
-
delete_firewall
Delete a cloud firewall by ID.
-
add_droplets_to_firewall
Assign Droplets to a firewall.
-
remove_droplets_from_firewall
Remove Droplets from a firewall.
-
list_volumes
List block storage volumes. Optionally filter by name or region.
-
get_volume
Get a block storage volume by ID.
-
create_volume
Create a block storage volume. Provide name, size_gigabytes, and region (or snapshot_id).
-
delete_volume
Delete a block storage volume by ID.
-
initiate_volume_action
Attach or detach a volume (type=attach|detach). For attach, provide droplet_id and optional region.
-
list_tags
List resource tags.
-
get_tag
Get a tag and resource counts by name.
-
create_tag
Create a tag name (resources can be tagged afterward).
-
delete_tag
Delete a tag by name (untags resources).
-
tag_resources
Apply a tag to resources. resources is an array of {resource_id, resource_type} objects (droplet, image, volume, volume_snapshot).
-
untag_resources
Remove a tag from resources. Same resources shape as tag_resources.
-
list_projects
List projects used to organize resources.
-
get_project
Get a project by ID.
-
create_project
Create a project. purpose and environment are required by DigitalOcean.
-
update_project
Update a project name, description, purpose, environment, or default flag.
-
delete_project
Delete an empty project by ID.
-
list_snapshots
List Droplet or volume snapshots. Optionally filter by resource_type (droplet|volume).
-
get_snapshot
Get a snapshot by ID.
-
delete_snapshot
Delete a snapshot by ID.
-
list_vpcs
List VPCs.
-
get_vpc
Get a VPC by UUID.
-
create_vpc
Create a VPC in a region. Optional ip_range (CIDR).
-
delete_vpc
Delete a VPC by UUID (must have no members).
-
list_reserved_ips
List reserved (floating) IPv4 addresses.
-
get_reserved_ip
Get a reserved IP by address.
-
create_reserved_ip
Reserve a new IPv4. Provide region for an unassigned IP, or droplet_id to assign immediately.
-
delete_reserved_ip
Release a reserved IP address.
-
initiate_reserved_ip_action
Assign or unassign a reserved IP (type=assign|unassign). assign requires droplet_id.
-
list_load_balancers
List load balancers.
-
get_load_balancer
Get a load balancer by ID.
-
create_load_balancer
Create a load balancer. Provide name, region, and forwarding_rules; optional droplet_ids, tag, vpc_uuid, health_check, sticky_sessions.
-
delete_load_balancer
Delete a load balancer by ID.
MCP endpoint:
https://stackgate.ai/mcp/digitalocean
(HTTP) or via the
private gateway.