---
title: "DigitalOcean MCP server for AI agents - actionlake"
description: "Give Claude 847 DigitalOcean actions through one MCP server: agent platform API, monitoring. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/digitalocean
updated: 2026-10-22
---

Connectors · MSP & PSA

# DigitalOcean MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to DigitalOcean and the rest of your systems. It gives your agent 847 DigitalOcean actions (441 reads, 282 writes and 124 that wait for a confirmation) and holds the DigitalOcean credential itself, so the agent never does. It paces DigitalOcean's limits and records every call.

[Connect DigitalOcean free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "digitalocean.droplets.list",
  intent: "check which DigitalOcean account is connected"
}
# List All Droplets · read · 1 upstream call
```

- 847 actions in one signed file
- 441 read look, never change
- 282 write create and update
- 124 wait for a yes destructive, confirmed first

Set up

## Connect DigitalOcean in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect DigitalOcean.
   Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `access_token` DigitalOcean API token (dop_v1_…)
   ```
   account { op: "connections.requirements", service: "digitalocean" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "digitalocean.droplets.list" }
   # list all droplets · read · 1 upstream call
   check { action: "digitalocean.droplets.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

DigitalOcean at a glance

**Sign-in**

Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.

**You provide**

`access_token`

**Limits we pace to**

5,000 calls an hour and 250 a minute, per connection

**API covered**

DigitalOcean API v2 (OpenAPI 3.0.0, info.version 2.0)`api.digitalocean.com`

**Built from**

DigitalOcean's documentation, read 22 October 2026[api-engineering.nyc3.digitaloceanspaces.com](https://api-engineering.nyc3.digitaloceanspaces.com/spec-ci/DigitalOcean-public.v2.yaml) [docs.digitalocean.com](https://docs.digitalocean.com/reference/api/digitalocean/)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

427 of 441 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

4, so ask can line DigitalOcean up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in DigitalOcean.

847 actions in 62 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **441** read look, never change
- **282** write create and update
- **124** destructive wait for a confirmation

1. ### Agent platform API
   142
   64 read · 57 write · 21 destructive
   Add Agent Route to an Agent · Create an Agent · Create an Agent API Key · List Agent API Keys
2. ### Monitoring
   72
   64 read · 5 write · 3 destructive
   Create Alert Policy · List Alert Policies · Create Logging Destination · Update Logging Destination
3. ### Databases
   71
   32 read · 29 write · 10 destructive
   Add a New Database · List All Databases · Reset a Database User's Password or Authentication Method · List Backups for a Database Cluster
4. ### Harness runtime
   49
   22 read · 18 write · 9 destructive
   Create an Environment Config (environment spec + optional Insights opt-in). · Clone an Environment Config under a new name. · List the sessions created from one Environment Config. · List active Environment Configs for the caller's team.
5. ### Action gateway
   43
   25 read · 13 write · 5 destructive
   Clear an Actor's Limits · Set an Actor's Limits · Create a Connection · List Connections
6. ### Apps
   38
   24 read · 13 write · 1 destructive
   List All Apps · Create a New App · Retrieve an Existing App · Update an App
7. ### Insights
   28
   18 read · 8 write · 2 destructive
   List Alert Instances · Create an Alert Rule · List Alert Rules · Search logs
8. ### Kubernetes
   27
   11 read · 9 write · 7 destructive
   List Associated Resources for Cluster Deletion · Create a New Kubernetes Cluster · Upgrade a Kubernetes Cluster · Run Clusterlint Checks on a Kubernetes Cluster

**54 more areas · 377 actions**

- Container registries **19**
- Droplets **19**
- Container registry **18**
- Signals **14**
- Dedicated inference **13**
- Functions **13**
- Micro V MS public preview **13**
- Firewalls **11**
- NFS **11**
- Serverless inference **11**
- Uptime **11**
- Vector databases **11**
- Load balancers **10**
- Security **10**
- VP CS **10**
- Block storage **9**
- Images **9**
- Partner network connect **9**
- Projects **9**
- Add ons **8**
- Billing **8**
- Droplet autoscale pools **8**
- Action gateway data plane **6**
- Batch inference **6**
- Byoip prefixes **6**
- CDN endpoints **6**
- Domain records **6**
- Spaces keys **6**
- Tags **6**
- VPC subnets public preview **6**
- SSH keys **5**
- VPC nat gateways **5**
- VPC peerings **5**
- VPC routes public preview **5**
- Block storage actions **4**
- Certificates **4**
- Domains **4**
- Droplet actions **4**
- Floating i PS **4**
- Project resources **4**
- Reserved i PS **4**
- Reserved i PV6 **4**
- Floating ip actions **3**
- Image actions **3**
- Reserved ip actions **3**
- Snapshots **3**
- 1 click applications **2**
- Actions **2**
- Organizations **2**
- Account **1**
- NFS actions **1**
- Regions **1**
- Reserved i PV6 actions **1**
- Sizes **1**

Top actions

## The DigitalOcean API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 25 of DigitalOcean's 25 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `digitalocean.droplets.list` List All Droplets | List All Droplets | read | `infra.instance.list` 18 connectors |
| `digitalocean.apps.list` List All Apps | List All Apps | read | `infra.container_service.list` 11 connectors |
| `digitalocean.account.get` Get User Information | Get User Information | read | `identity.current_user.get` 307 connectors |
| `digitalocean.droplets.create` Create a New Droplet | Create a New Droplet | write | `infra.instance.create` 10 connectors |
| `digitalocean.apps.create` Create a New App | Create a New App | write | `infra.container_service.create` 8 connectors |
| `digitalocean.uptime_checks.list` List All Checks | List All Checks | read | `monitoring.monitor.list` 32 connectors |
| `digitalocean.droplets.destroy` Delete an Existing Droplet | Delete an Existing Droplet | destructive | `infra.instance.delete` 13 connectors |
| `digitalocean.uptime_check.create` Create a New Check | Create a New Check | write | `monitoring.monitor.create` 27 connectors |
| `digitalocean.apps_deployments.list` List App Deployments | List App Deployments | read | `infra.deployment.list` 8 connectors |
| `digitalocean.apps_deployment.create` Create an App Deployment | Create an App Deployment | write | `infra.deployment.create` 7 connectors |
| `digitalocean.sizes.list` List All Droplet Sizes | List All Droplet Sizes | read | `infra.instance_size.list` 6 connectors |
| `digitalocean.images_custom.create` Create a Custom Image | Create a Custom Image | write | `infra.instance_image.create` 3 connectors |

Try it

## Prompts to paste into Claude.

Each one names the DigitalOcean actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   List All Droplets in DigitalOcean and tell me what stands out.
   calls `digitalocean.droplets.list`
2. Write write
   Create a New Droplet in DigitalOcean. Show me exactly what you will send before you save it.
   calls `digitalocean.droplets.create`

Governance for DigitalOcean

## Destructive actions wait for a yes.

124 DigitalOcean actions are destructive. The first 10:

- Delete an Existing Droplet `digitalocean.droplets.destroy`
- Delete an App `digitalocean.apps.delete`
- Delete a Check `digitalocean.uptime_check.delete`
- Delete an Image `digitalocean.images.delete`
- Delete a Domain `digitalocean.domains.delete`
- Delete a Block Storage Volume `digitalocean.volumes.delete`
- Delete an Existing Project `digitalocean.projects.delete`
- Delete an SSH Key `digitalocean.ssh_keys.delete`
- Delete a Database `digitalocean.databases.delete`
- Delete a Firewall `digitalocean.firewalls.delete`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do digitalocean.droplets.destroy confirm_policy: **human**

Delete an Existing Droplet?

**intent:** the user asked me to delete an Existing Droplet

run suspended · waiting for a named person · key _digitalocean-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "digitalocean-agent",
  allowed_actions: ["digitalocean.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "digitalocean.droplets.destroy", approver: "lead@example.com" },
    { match: "digitalocean.apps.delete", approver: "lead@example.com" },
    { match: "digitalocean.uptime_check.delete", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to DigitalOcean only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What DigitalOcean costs on actionlake.

Every DigitalOcean action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call DigitalOcean refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 847 DigitalOcean actions
- 847 actions page each page of a long list is one call
- 427 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every DigitalOcean action.

847 actions by area: the id your agent calls, what it does, and its effect.

**Agent platform API 142**

- `digitalocean.genai_agent.attach` Add Agent Route to an Agent write
- `digitalocean.genai_agent.create` Create an Agent write
- `digitalocean.genai_agent_api_key.create` Create an Agent API Key write
- `digitalocean.genai_agent_api_keys.list` List Agent API Keys read
- `digitalocean.genai_agent.delete` Delete an Agent destructive
- `digitalocean.genai_agent.detach` Delete Agent Route for an Agent destructive
- and 136 more in this area

**Monitoring 72**

- `digitalocean.monitoring_alert_policy.create` Create Alert Policy write
- `digitalocean.monitoring_alert_policy.list` List Alert Policies read
- `digitalocean.monitoring_destination.create` Create Logging Destination write
- `digitalocean.monitoring_destination.update` Update Logging Destination write
- `digitalocean.monitoring_alert_policy.delete` Delete an Alert Policy destructive
- `digitalocean.monitoring_alert_policy.get` Retrieve an Existing Alert Policy read
- and 66 more in this area

**Databases 71**

- `digitalocean.databases.add` Add a New Database write
- `digitalocean.databases.list` List All Databases read
- `digitalocean.databases_auth.reset` Reset a Database User's Password or Authentication Method write
- `digitalocean.databases_backups.list` List Backups for a Database Cluster read
- `digitalocean.databases.delete` Delete a Database destructive
- `digitalocean.databases.get` Retrieve an Existing Database read
- and 65 more in this area

**Harness runtime 49**

- `digitalocean.harness_config.create` Create an Environment Config (environment spec + optional Insights opt-in). write
- `digitalocean.harness_config_clone.create` Clone an Environment Config under a new name. write
- `digitalocean.harness_config_sessions.list` List the sessions created from one Environment Config. read
- `digitalocean.harness_configs.list` List active Environment Configs for the caller's team. read
- `digitalocean.harness_config.delete` Soft-delete an Environment Config. destructive
- `digitalocean.harness_config.get` Get an active Environment Config and its environment spec. read
- and 43 more in this area

**Action gateway 43**

- `digitalocean.actor_limits.delete` Clear an Actor's Limits write
- `digitalocean.actor_limits.update` Set an Actor's Limits write
- `digitalocean.connections.create` Create a Connection write
- `digitalocean.connections.list` List Connections read
- `digitalocean.actor_limits.get` Get an Actor's Limits read
- `digitalocean.connections.delete` Delete a Connection destructive
- and 37 more in this area

**Apps 38**

- `digitalocean.apps.create` Create a New App write
- `digitalocean.apps.get` Retrieve an Existing App read
- `digitalocean.apps.list` List All Apps read
- `digitalocean.apps.update` Update an App write
- `digitalocean.apps.delete` Delete an App destructive
- `digitalocean.apps.restart` Restart an App write
- and 32 more in this area

**Insights 28**

- `digitalocean.insights_alert_instances.list` List Alert Instances read
- `digitalocean.insights_alert_rule.create` Create an Alert Rule write
- `digitalocean.insights_alert_rules.list` List Alert Rules read
- `digitalocean.insights_logs_search.post` Search logs write
- `digitalocean.insights_alert_instance.get` Retrieve an Alert Instance read
- `digitalocean.insights_alert_rule.delete` Delete an Alert Rule destructive
- and 22 more in this area

**Kubernetes 27**

- `digitalocean.kubernetes_associated_resources.list` List Associated Resources for Cluster Deletion read
- `digitalocean.kubernetes_cluster.create` Create a New Kubernetes Cluster write
- `digitalocean.kubernetes_cluster.upgrade` Upgrade a Kubernetes Cluster write
- `digitalocean.kubernetes_cluster_lint.run` Run Clusterlint Checks on a Kubernetes Cluster write
- `digitalocean.kubernetes_associated_resources_dangerous.destroy` Delete a Cluster and All of its Associated Resources (Dangerous) destructive
- `digitalocean.kubernetes_associated_resources_selective.destroy` Selectively Delete a Cluster and its Associated Resources destructive
- and 21 more in this area

**Container registries 19**

- `digitalocean.registries.create` Create Container Registry write
- `digitalocean.registries.list` List All Container Registries read
- `digitalocean.registries_garbage_collection.run` Start Garbage Collection write
- `digitalocean.registries_garbage_collections.list` List Garbage Collections read
- `digitalocean.registries.delete` Delete Container Registry By Name destructive
- `digitalocean.registries.get` Get a Container Registry By Name read
- and 13 more in this area

**Droplets 19**

- `digitalocean.droplets.create` Create a New Droplet write
- `digitalocean.droplets.destroy` Delete an Existing Droplet destructive
- `digitalocean.droplets.get` Retrieve an Existing Droplet read
- `digitalocean.droplets.list` List All Droplets read
- `digitalocean.droplets_associated_resources.list` List Associated Resources for a Droplet read
- `digitalocean.droplets_backup_policies.list` List Backup Policies for All Existing Droplets read
- and 13 more in this area

**Container registry 18**

- `digitalocean.registry.create` Create Container Registry write
- `digitalocean.registry_garbage_collection.run` Start Garbage Collection write
- `digitalocean.registry_garbage_collections.list` List Garbage Collections read
- `digitalocean.registry_name.validate` Validate a Container Registry Name write
- `digitalocean.registry.delete` Delete Container Registry destructive
- `digitalocean.registry.get` Get Container Registry Information read
- and 12 more in this area

**Signals 14**

- `digitalocean.signals_agent_sessions.list` List Sessions for an Environment read
- `digitalocean.signals_consents.list` List All Consent Records read
- `digitalocean.signals_deletion.create` Create a Data Deletion Job write
- `digitalocean.signals_deletions.list` List Data Deletion Jobs read
- `digitalocean.signals_consent.get` Retrieve Consent for an Environment read
- `digitalocean.signals_consent.update` Update Consent for an Environment write
- and 8 more in this area

**Dedicated inference 13**

- `digitalocean.dedicated_inferences.create` Create a Dedicated Inference write
- `digitalocean.dedicated_inferences.list` List Dedicated Inferences read
- `digitalocean.dedicated_inferences_accelerators.list` List Dedicated Inference Accelerators read
- `digitalocean.dedicated_inferences_sizes.list` List Dedicated Inference Sizes read
- `digitalocean.dedicated_inferences.delete` Delete a Dedicated Inference destructive
- `digitalocean.dedicated_inferences.get` Get a Dedicated Inference read
- and 7 more in this area

**Functions 13**

- `digitalocean.functions_access_key.create` Create a Namespace Access Key write
- `digitalocean.functions_access_key.list` List Namespace Access Keys read
- `digitalocean.functions_namespace.create` Create Namespace write
- `digitalocean.functions_namespaces.list` List Namespaces read
- `digitalocean.functions_access_key.delete` Delete a Namespace Access Key destructive
- `digitalocean.functions_access_key.update` Update a Namespace Access Key write
- and 7 more in this area

**Micro V MS public preview 13**

- `digitalocean.microvm_checkpoints.create` Create a checkpoint of a MicroVM write
- `digitalocean.microvm_checkpoints.list` List checkpoints read
- `digitalocean.microvms.create` Create a MicroVM write
- `digitalocean.microvms.list` List all MicroVMs read
- `digitalocean.microvm_checkpoints.delete` Delete a checkpoint destructive
- `digitalocean.microvm_checkpoints.get` Retrieve a checkpoint read
- and 7 more in this area

**Firewalls 11**

- `digitalocean.firewalls.create` Create a New Firewall write
- `digitalocean.firewalls.list` List All Firewalls read
- `digitalocean.firewalls_droplets.assign` Add Droplets to a Firewall write
- `digitalocean.firewalls_rules.add` Add Rules to a Firewall write
- `digitalocean.firewalls.delete` Delete a Firewall destructive
- `digitalocean.firewalls.get` Retrieve an Existing Firewall read
- and 5 more in this area

**NFS 11**

- `digitalocean.nfs.create` Create a new NFS share write
- `digitalocean.nfs.list` List NFS shares per region read
- `digitalocean.nfs_access_point.create` Create an NFS access point write
- `digitalocean.nfs_access_points.list` List NFS access points for a share read
- `digitalocean.nfs.delete` Delete an NFS share destructive
- `digitalocean.nfs.get` Get an NFS share read
- and 5 more in this area

**Serverless inference 11**

- `digitalocean.inference_async_invoke.create` Generate Image, Audio, or Text-to-Speech Using fal Models write
- `digitalocean.inference_chat_completion.create` Create a model response for the given chat conversation write
- `digitalocean.inference_embedding.create` Create embedding write
- `digitalocean.inference_image.create` Generate images from text prompts write
- `digitalocean.inference_messages.create` Create the next assistant message write
- `digitalocean.inference_models.list` List available models read
- and 5 more in this area

**Uptime 11**

- `digitalocean.uptime_check.create` Create a New Check write
- `digitalocean.uptime_check.get` Retrieve an Existing Check read
- `digitalocean.uptime_check.update` Update a Check write
- `digitalocean.uptime_checks.list` List All Checks read
- `digitalocean.uptime_alert.create` Create a New Alert write
- `digitalocean.uptime_alert.delete` Delete an Alert destructive
- and 5 more in this area

**Vector databases 11**

- `digitalocean.vector_databases.create` Create a New Vector Database write
- `digitalocean.vector_databases.list` List All Vector Databases read
- `digitalocean.vector_databases_backups.list` List Backups for a Vector Database read
- `digitalocean.vector_databases_resize.post` Resize a Vector Database write
- `digitalocean.vector_databases.delete` Delete a Vector Database destructive
- `digitalocean.vector_databases.get` Retrieve an Existing Vector Database read
- and 5 more in this area

**Load balancers 10**

- `digitalocean.load_balancers.create` Create a New Load Balancer write
- `digitalocean.load_balancers.list` List All Load Balancers read
- `digitalocean.load_balancers_droplets.add` Add Droplets to a Load Balancer write
- `digitalocean.load_balancers_forwarding_rules.add` Add Forwarding Rules to a Load Balancer write
- `digitalocean.load_balancers.delete` Delete a Load Balancer destructive
- `digitalocean.load_balancers.get` Retrieve an Existing Load Balancer read
- and 4 more in this area

**Security 10**

- `digitalocean.security_scan.create` Create Scan write
- `digitalocean.security_scan_finding_affected_resources.list` List Finding Affected Resources read
- `digitalocean.security_scan_rule.create` Create Scan Rule write
- `digitalocean.security_scans.list` List Scans read
- `digitalocean.security_latest_scan.get` Get Latest Scan read
- `digitalocean.security_scan.get` Get Scan read
- and 4 more in this area

**VP CS 10**

- `digitalocean.vpcs.create` Create a New VPC write
- `digitalocean.vpcs.list` List All VPCs read
- `digitalocean.vpcs_members.list` List the Member Resources of a VPC read
- `digitalocean.vpcs_peerings.create` Create a Peering with a VPC write
- `digitalocean.vpcs.delete` Delete a VPC destructive
- `digitalocean.vpcs.get` Retrieve an Existing VPC read
- and 4 more in this area

**Block storage 9**

- `digitalocean.volumes.create` Create a New Block Storage Volume write
- `digitalocean.volumes.delete` Delete a Block Storage Volume destructive
- `digitalocean.volumes.get` Retrieve an Existing Block Storage Volume read
- `digitalocean.volumes.list` List All Block Storage Volumes read
- `digitalocean.volume_snapshots.create` Create Snapshot from a Volume write
- `digitalocean.volume_snapshots.list` List Snapshots for a Volume read
- and 3 more in this area

**Images 9**

- `digitalocean.images.get` Retrieve an Existing Image read
- `digitalocean.images.list` List All Images read
- `digitalocean.images.update` Update an Image write
- `digitalocean.images_custom.create` Create a Custom Image write
- `digitalocean.images.delete` Delete an Image destructive
- `digitalocean.images_account_transfer_accept.post` Accept an Image Account Transfer destructive
- and 3 more in this area

**Partner network connect 9**

- `digitalocean.partner_attachments.create` Create a new partner attachment write
- `digitalocean.partner_attachments.list` List all partner attachments read
- `digitalocean.partner_attachments_remote_routes.list` List remote routes for a partner attachment read
- `digitalocean.partner_attachments_service_key.create` Regenerate the service key for the partner attachment write
- `digitalocean.partner_attachments.delete` Delete an existing partner attachment destructive
- `digitalocean.partner_attachments.get` Retrieve an existing partner attachment read
- and 3 more in this area

**Projects 9**

- `digitalocean.projects.create` Create a Project write
- `digitalocean.projects.get` Retrieve an Existing Project read
- `digitalocean.projects.list` List All Projects read
- `digitalocean.projects.patch` Patch a Project write
- `digitalocean.projects.delete` Delete an Existing Project destructive
- `digitalocean.projects.update` Update a Project write
- and 3 more in this area

**Add ons 8**

- `digitalocean.addons.create` Create/Provision a New Add-on Resource write
- `digitalocean.addons.get` Get details on an Add-On Resource read
- `digitalocean.addons.list` List all Add-On Resources read
- `digitalocean.addons.patch` Update the name for an Add-On Resource write
- `digitalocean.addons.delete` Delete/Deprovision an Add-on Resource destructive
- `digitalocean.addons_app.get` List Available Add-On Applications read
- and 2 more in this area

**Billing 8**

- `digitalocean.billing_history.list` List Billing History read
- `digitalocean.billing_insights.list` List Billing Insights read
- `digitalocean.invoices.list` List All Invoices read
- `digitalocean.invoices_by_uuid.get` Retrieve an Invoice by UUID read
- `digitalocean.balance.get` Get Customer Balance read
- `digitalocean.invoices_summary_by_uuid.get` Retrieve an Invoice Summary by UUID read
- and 2 more in this area

**Droplet autoscale pools 8**

- `digitalocean.autoscalepools.create` Create a New Autoscale Pool write
- `digitalocean.autoscalepools.list` List All Autoscale Pools read
- `digitalocean.autoscalepools_history.list` List history events read
- `digitalocean.autoscalepools_members.list` List members read
- `digitalocean.autoscalepools.delete` Delete autoscale pool destructive
- `digitalocean.autoscalepools.get` Retrieve an Existing Autoscale Pool read
- and 2 more in this area

**Action gateway data plane 6**

- `digitalocean.gateway_approvals.update` Decide a Pending Approval by Session Header write
- `digitalocean.gateway_code.run` Execute Code write
- `digitalocean.gateway_session_approvals.update` Decide a Pending Approval write
- `digitalocean.gateway_tools.list` List Session Tools read
- `digitalocean.gateway_tools.run` Invoke Session Tools write
- `digitalocean.gateway_tools_search.list` Search Session Tools read

**Batch inference 6**

- `digitalocean.inference_batch.cancel` Cancel a Batch Inference Job write
- `digitalocean.inference_batch.create` Create a Batch Inference Job write
- `digitalocean.inference_batch_file.create` Create a Batch Inference Input File write
- `digitalocean.inference_batches.list` List Batch Inference Jobs read
- `digitalocean.inference_batch.get` Retrieve a Batch Inference Job read
- `digitalocean.inference_batch_results.get` Get Batch Inference Results Download Links read

**Byoip prefixes 6**

- `digitalocean.byoip_prefixes.create` Create a BYOIP Prefix write
- `digitalocean.byoip_prefixes.get` Get a BYOIP Prefix read
- `digitalocean.byoip_prefixes.list` List BYOIP Prefixes read
- `digitalocean.byoip_prefixes_resources.list` List BYOIP Prefix Resources read
- `digitalocean.byoip_prefixes.delete` Delete a BYOIP Prefix destructive
- `digitalocean.byoip_prefixes.patch` Update a BYOIP Prefix write

**CDN endpoints 6**

- `digitalocean.cdn_endpoint.create` Create a New CDN Endpoint write
- `digitalocean.cdn_endpoint.get` Retrieve an Existing CDN Endpoint read
- `digitalocean.cdn_endpoints.list` List All CDN Endpoints read
- `digitalocean.cdn_endpoints.update` Update a CDN Endpoint write
- `digitalocean.cdn_cache.purge` Purge the Cache for an Existing CDN Endpoint destructive
- `digitalocean.cdn_endpoint.delete` Delete a CDN Endpoint destructive

**Domain records 6**

- `digitalocean.domains_record.create` Create a New Domain Record write
- `digitalocean.domains_record.get` Retrieve an Existing Domain Record read
- `digitalocean.domains_record.patch` Update a Domain Record write
- `digitalocean.domains_record.update` Update a Domain Record write
- `digitalocean.domains_records.list` List All Domain Records read
- `digitalocean.domains_record.delete` Delete a Domain Record destructive

**Spaces keys 6**

- `digitalocean.spaces_key.create` Create a New Spaces Access Key write
- `digitalocean.spaces_key.get` Get a Spaces Access Key read
- `digitalocean.spaces_key.list` List Spaces Access Keys read
- `digitalocean.spaces_key.patch` Update Spaces Access Keys write
- `digitalocean.spaces_key.update` Update Spaces Access Keys write
- `digitalocean.spaces_key.delete` Delete a Spaces Access Key destructive

**Tags 6**

- `digitalocean.tags.create` Create a New Tag write
- `digitalocean.tags.get` Retrieve a Tag read
- `digitalocean.tags.list` List All Tags read
- `digitalocean.tags_resources.assign` Tag a Resource write
- `digitalocean.tags.delete` Delete a Tag destructive
- `digitalocean.tags_resources.unassign` Untag a Resource destructive

**VPC subnets public preview 6**

- `digitalocean.vpc_subnets.create` Create a VPC Subnet write
- `digitalocean.vpc_subnets.get` Retrieve a VPC Subnet read
- `digitalocean.vpc_subnets.list` List VPC Subnets read
- `digitalocean.vpc_subnets_members.list` List the Member Resources of a VPC Subnet read
- `digitalocean.vpc_subnets.delete` Delete a VPC Subnet destructive
- `digitalocean.vpc_subnets.update` Update a VPC Subnet write

**SSH keys 5**

- `digitalocean.ssh_keys.create` Create a New SSH Key write
- `digitalocean.ssh_keys.get` Retrieve an Existing SSH Key read
- `digitalocean.ssh_keys.list` List All SSH Keys read
- `digitalocean.ssh_keys.update` Update an SSH Key's Name write
- `digitalocean.ssh_keys.delete` Delete an SSH Key destructive

**VPC nat gateways 5**

- `digitalocean.vpcnatgateways.create` Create a New VPC NAT Gateway write
- `digitalocean.vpcnatgateways.get` Retrieve an Existing VPC NAT Gateway read
- `digitalocean.vpcnatgateways.list` List All VPC NAT Gateways read
- `digitalocean.vpcnatgateways.update` Update VPC NAT Gateway write
- `digitalocean.vpcnatgateways.delete` Delete VPC NAT Gateway destructive

**VPC peerings 5**

- `digitalocean.vpc_peerings.create` Create a New VPC Peering write
- `digitalocean.vpc_peerings.get` Retrieve an Existing VPC Peering read
- `digitalocean.vpc_peerings.list` List All VPC Peerings read
- `digitalocean.vpc_peerings.patch` Update a VPC peering write
- `digitalocean.vpc_peerings.delete` Delete a VPC peering destructive

**VPC routes public preview 5**

- `digitalocean.vpc_routes.list` List VPC Routes read
- `digitalocean.vpc_subnet_routes.create` Create a VPC Subnet Route write
- `digitalocean.vpc_subnet_routes.list` List VPC Subnet Routes read
- `digitalocean.vpc_subnet_routes.update` Update a VPC Subnet Route write
- `digitalocean.vpc_subnet_routes.delete` Delete a VPC Subnet Route destructive

**Block storage actions 4**

- `digitalocean.volume_actions.get` Retrieve an Existing Volume Action read
- `digitalocean.volume_actions.list` List All Actions for a Volume read
- `digitalocean.volume_actions.post` Initiate A Block Storage Action By Volume Name write
- `digitalocean.volume_actions_by_id.post` Initiate A Block Storage Action By Volume Id write

**Certificates 4**

- `digitalocean.certificates.create` Create a New Certificate write
- `digitalocean.certificates.delete` Delete a Certificate destructive
- `digitalocean.certificates.get` Retrieve an Existing Certificate read
- `digitalocean.certificates.list` List All Certificates read

**Domains 4**

- `digitalocean.domains.create` Create a New Domain write
- `digitalocean.domains.delete` Delete a Domain destructive
- `digitalocean.domains.get` Retrieve an Existing Domain read
- `digitalocean.domains.list` List All Domains read

**Droplet actions 4**

- `digitalocean.droplet_actions.get` Retrieve a Droplet Action read
- `digitalocean.droplet_actions.list` List Actions for a Droplet read
- `digitalocean.droplet_actions.post` Initiate a Droplet Action write
- `digitalocean.droplet_actions_by_tag.post` Acting on Tagged Droplets write

**Floating i PS 4**

- `digitalocean.floating_i_ps.create` Create a New Floating IP write
- `digitalocean.floating_i_ps.delete` Delete a Floating IP destructive
- `digitalocean.floating_i_ps.get` Retrieve an Existing Floating IP read
- `digitalocean.floating_i_ps.list` List All Floating IPs read

**Project resources 4**

- `digitalocean.projects_resources.assign` Assign Resources to a Project write
- `digitalocean.projects_resources.list` List Project Resources read
- `digitalocean.projects_resources_default.assign` Assign Resources to Default Project write
- `digitalocean.projects_resources_default.list` List Default Project Resources read

**Reserved i PS 4**

- `digitalocean.reserved_i_ps.create` Create a New Reserved IP write
- `digitalocean.reserved_i_ps.delete` Delete a Reserved IP destructive
- `digitalocean.reserved_i_ps.get` Retrieve an Existing Reserved IP read
- `digitalocean.reserved_i_ps.list` List All Reserved IPs read

**Reserved i PV6 4**

- `digitalocean.reserved_i_pv6.create` Create a New Reserved IPv6 write
- `digitalocean.reserved_i_pv6.delete` Delete a Reserved IPv6 destructive
- `digitalocean.reserved_i_pv6.get` Retrieve an Existing Reserved IPv6 read
- `digitalocean.reserved_i_pv6.list` List All Reserved IPv6s read

**Floating ip actions 3**

- `digitalocean.floating_i_ps_action.get` Retrieve an Existing Floating IP Action read
- `digitalocean.floating_i_ps_action.list` List All Actions for a Floating IP read
- `digitalocean.floating_i_ps_action.post` Initiate a Floating IP Action write

**Image actions 3**

- `digitalocean.image_actions.get` Retrieve an Existing Action read
- `digitalocean.image_actions.list` List All Actions for an Image read
- `digitalocean.image_actions.post` Initiate an Image Action write

**Reserved ip actions 3**

- `digitalocean.reserved_i_ps_actions.get` Retrieve an Existing Reserved IP Action read
- `digitalocean.reserved_i_ps_actions.list` List All Actions for a Reserved IP read
- `digitalocean.reserved_i_ps_actions.post` Initiate a Reserved IP Action write

**Snapshots 3**

- `digitalocean.snapshots.delete` Delete a Snapshot destructive
- `digitalocean.snapshots.get` Retrieve an Existing Snapshot read
- `digitalocean.snapshots.list` List All Snapshots read

**1 click applications 2**

- `digitalocean.one_clicks.list` List 1-Click Applications read
- `digitalocean.one_clicks_kubernetes.install` Install Kubernetes 1-Click Applications write

**Actions 2**

- `digitalocean.actions.get` Retrieve an Existing Action read
- `digitalocean.actions.list` List All Actions read

**Organizations 2**

- `digitalocean.organizations_team.create` Create a Team in an Organization write
- `digitalocean.organizations_teams.list` List Teams in an Organization read

**Account 1**

- `digitalocean.account.get` Get User Information read

**NFS actions 1**

- `digitalocean.nfs_action.create` Initiate an NFS action write

**Regions 1**

- `digitalocean.regions.list` List All Data Center Regions read

**Reserved i PV6 actions 1**

- `digitalocean.reserved_i_pv6_actions.post` Initiate a Reserved IPv6 Action write

**Sizes 1**

- `digitalocean.sizes.list` List All Droplet Sizes read

This index shows a sample of each area. All 847 actions, with their inputs and prices, are in the [catalogue](https://actionlake.com/console/catalogue), which a free sandbox key can search.

Questions

## The DigitalOcean MCP server, answered.

**Is there a DigitalOcean MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 847 DigitalOcean actions across agent platform API, monitoring, databases and harness runtime, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by DigitalOcean.

**What do I need to connect DigitalOcean?**

DigitalOcean API token (dop_v1_…). The free call account { op: "connections.requirements", service: "digitalocean" } lists exactly what to paste.

**Can an AI agent delete or change things in DigitalOcean?**

Only if its key allows it, and only with an explicit confirmation. 124 DigitalOcean actions are destructive, including delete an Existing Droplet, delete an App and delete a Check. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my DigitalOcean API limit?**

actionlake paces every call to the limits in the DigitalOcean service file: 5,000 calls an hour and 250 a minute per connection. Repeated reads are answered from cache (427 DigitalOcean actions can be), which never reaches DigitalOcean.

**What does a DigitalOcean action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (847 DigitalOcean actions page). Cache hits, searches, dry runs and calls DigitalOcean refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which DigitalOcean API does it cover?**

The DigitalOcean API v2 (OpenAPI 3.0.0, info.version 2.0) at api.digitalocean.com. It is built from DigitalOcean's documentation as read on 22 October 2026. 847 actions in 62 areas, each one in the signed service file (version 1.0.0).

**Does actionlake keep my DigitalOcean data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your DigitalOcean credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like DigitalOcean

Shares the most action names with

- [Portainer 9](https://actionlake.com/connectors/portainer)
- [Azure Compute (Virtual Machines) 8](https://actionlake.com/connectors/azure-compute-virtual-machines)
- [UptimeRobot 6](https://actionlake.com/connectors/uptimerobot)
- [Logz.io 5](https://actionlake.com/connectors/logz-io)
- [Azure Monitor 4](https://actionlake.com/connectors/azure-monitor)
- [Azure Container Apps 4](https://actionlake.com/connectors/azure-container-apps)

Joins with, on shared entities

- [Vultr 2](https://actionlake.com/connectors/vultr)
- [Kubernetes 2](https://actionlake.com/connectors/kubernetes)
- [Akamai Cloud (Linode) 2](https://actionlake.com/connectors/akamai-cloud-linode)
- [Heroku Platform API 2](https://actionlake.com/connectors/heroku-platform-api)
- [Coolify 2](https://actionlake.com/connectors/coolify)
- [Laravel Forge 2](https://actionlake.com/connectors/laravel-forge)

Browse

- [All MSP & PSA connectors](https://actionlake.com/connectors/category/msp-and-psa)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by DigitalOcean; the name is the vendor's own. Counts are from the DigitalOcean service file, version 1.0.0.

## Give your agent DigitalOcean today.

[Connect DigitalOcean free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/digitalocean
More: https://actionlake.com/llms.txt
