All integrations

DigitalOcean

Manage DigitalOcean Droplets, DNS, firewalls, volumes, VPCs, and load balancers via MCP. Connect with OAuth or a personal access token.

OAuth 63 tools

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)

  1. In stackgate.ai, open My Integrations → DigitalOcean.
  2. Click Connect DigitalOcean and authorize access for the DigitalOcean team you want to use.
  3. After redirect, the integration is ready. Use Edit tool access to limit Read vs Write tools if needed.

Option B — Personal access token

  1. Sign in to the DigitalOcean Control Panel.
  2. Open API → Tokens and click Generate New Token.
  3. 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).
  4. Copy the token once (dop_v1_…).
  5. 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/digitalocean with 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.