# DigitalOcean — how to use (mcp.ai)

DigitalOcean is a cloud infrastructure provider offering scalable compute platforms with a user-friendly interface.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_digital_ocean?ms=1781542440000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `digital_ocean_create_custom_image`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/digital_ocean`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/digital_ocean/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/digital_ocean/create/custom/image` — Tool to create a new custom image by providing a url to a linux vm image. use when you need to import a vm image into digitalocean after specifying name, url, distribution, and region.
  - body: { url: string, name: string, tags?: string[], region: string, description?: string, distribution: string }
- `POST https://api.mcp.ai/api/digital_ocean/create/database/cluster` — Tool to create a new managed database cluster. use when you need to provision a database cluster with name, engine, version, region, size, and number of nodes.
  - body: { name: string, size: string, tags?: string[], engine: string, region: string, version: string, db_names?: string[], sql_mode?: string, num_nodes: integer, user_names?: string[], backup_restore?: object, eviction_policy?: string, storage_size_gb?: integer, maintenance_window?: object, private_network_uuid?: string }
- `POST https://api.mcp.ai/api/digital_ocean/create/new/block/storage/volume` — Tool to create a new block storage volume. use when you need to provision persistent block storage after confirming the target region supports volumes. example: "create a 100 gib ext4 backup volume na
  - body: { name: string, tags?: string[], region: string, description?: string, snapshot_id?: string, size_gigabytes: integer, filesystem_type?: string, filesystem_label?: string }
- `POST https://api.mcp.ai/api/digital_ocean/create/new/domain` — Tool to create a new domain. use when you have the domain name and optionally an ip address to assign an a record.
  - body: { name: string, ip_address?: string }
- `POST https://api.mcp.ai/api/digital_ocean/create/new/domain/record` — Tool to create a new dns record for a domain. use after confirming domain exists and record specifics.
  - body: { tag?: string, ttl?: integer, data: string, name?: string, port?: integer, type: string, flags?: integer, weight?: integer, priority?: integer, domain_name: string }
- `POST https://api.mcp.ai/api/digital_ocean/create/new/droplet` — Tool to create a new droplet. use when you need to provision a vm with name, region, size, and image.
  - body: { ipv6?: boolean, name: string, size: string, tags?: string[], image: string, region: string, backups?: boolean, volumes?: string[], ssh_keys?: string[], vpc_uuid?: string, user_data?: string, monitoring?: boolean, private_networking?: boolean, with_droplet_agent?: boolean }
- `POST https://api.mcp.ai/api/digital_ocean/create/new/firewall` — Tool to create a new firewall. use when you need to define a firewall name and custom rules (requires at least one inbound and one outbound rule).
  - body: { name: string, tags?: string[], vpc_uuid?: string, droplet_ids?: integer[], inbound_rules: object[], outbound_rules: object[] }
- `POST https://api.mcp.ai/api/digital_ocean/create/new/kubernetes/cluster` — Tool to create a new kubernetes cluster. use when you have finalized the cluster name, region, version, and at least one node pool. confirm region supports kubernetes clusters before use.
  - body: { name: string, tags?: string[], region: string, version: string, node_pools: object[], auto_upgrade?: boolean, maintenance_policy?: object }
- `POST https://api.mcp.ai/api/digital_ocean/create/new/ssh/key` — Tool to create a new ssh key. use when you need to register a public key to access droplets.
  - body: { name: string, public_key: string }
- `POST https://api.mcp.ai/api/digital_ocean/create/new/tag` — Tool to create a new tag. use when you need to organize resources by grouping them under a custom tag. ensure the tag name passes validation before calling. example: "create a new tag named analytics"
  - body: { name: string }
- `POST https://api.mcp.ai/api/digital_ocean/create/new/vpc` — Tool to create a new vpc. use when you need to provision a private network in a specific region.
  - body: { name: string, tags?: string[], region: string, ip_range?: string, description?: string }
- `POST https://api.mcp.ai/api/digital_ocean/delete/block/storage/volume` — Tool to delete a block storage volume by id. use when you need to permanently remove an existing block storage volume after confirming its id. returns http 204 no content on success.
  - body: { region?: string, volume_id: string }
- `POST https://api.mcp.ai/api/digital_ocean/delete/database/cluster` — Tool to delete a database cluster by uuid. use when you have confirmed the cluster is no longer needed. returns http 204 no content on success.
  - body: { database_cluster_uuid: string }
- `POST https://api.mcp.ai/api/digital_ocean/delete/domain` — Tool to delete a domain by name. use when you have confirmed the domain has no records assigned. returns 204 no content on success.
  - body: { name: string }
- `POST https://api.mcp.ai/api/digital_ocean/delete/domain/record` — Tool to delete a dns record by its record id for a domain. use when you need to remove an existing dns record and have the domain name and record id. returns http 204 no content on success.
  - body: { name: string, record_id: integer }
- `POST https://api.mcp.ai/api/digital_ocean/delete/existing/droplet` — Tool to delete a droplet by id. use when you need to permanently remove an existing droplet after confirming its id to avoid unintended deletions.
  - body: { droplet_id: integer }
- `POST https://api.mcp.ai/api/digital_ocean/delete/firewall` — Tool to delete a firewall by id. use when you have confirmed the firewall is no longer needed.
  - body: { firewall_id: string }
- `POST https://api.mcp.ai/api/digital_ocean/delete/image` — Tool to delete a snapshot or custom image by id. use when cleaning up unused images after confirming there are no dependents.
  - body: { image_id: integer }
- `POST https://api.mcp.ai/api/digital_ocean/delete/load/balancer` — Tool to delete a load balancer instance by id. use when you need to permanently remove an existing load balancer after confirming its id. returns 204 no content on success.
  - body: { load_balancer_id: string }
- `POST https://api.mcp.ai/api/digital_ocean/delete/ssh/key` — Tool to delete a public ssh key. use when you need to remove an ssh key from your account by its id or fingerprint after confirming its ownership. returns 204 no content on success.
  - body: { key_id_or_fingerprint: string }
- `POST https://api.mcp.ai/api/digital_ocean/delete/tag` — Tool to delete a tag by name. use when you need to untag all resources previously tagged. returns 204 no content on success.
  - body: { name: string }
- `POST https://api.mcp.ai/api/digital_ocean/delete/vpc` — Tool to delete a vpc by its id. use when you need to remove an existing virtual private cloud. returns 204 no content on success.
  - body: { vpc_id: string }
- `POST https://api.mcp.ai/api/digital_ocean/digital/ocean/create/new/load/balancer` — Tool to create a new load balancer. use after specifying region, forwarding rules, and targets.
  - body: { tag?: string, name: string, region: string, vpc_uuid?: string, algorithm?: string, droplet_ids?: integer[], health_check?: object, firewall_policy?: string, sticky_sessions?: object, forwarding_rules: object[], enable_proxy_protocol?: boolean, redirect_http_to_https?: boolean, enable_backend_keepalive?: boolean }
- `POST https://api.mcp.ai/api/digital_ocean/digital/ocean/list/domain/records` — Tool to list all dns records for a domain. use when you need to inspect or filter a domain's dns configuration.
  - body: { name: string, page?: integer, type?: string, per_page?: integer }
- `POST https://api.mcp.ai/api/digital_ocean/list/all/databases` — Tool to list all managed database clusters on your account. use when you need to retrieve clusters and support pagination or filtering by tag.
  - body: { page?: integer, per_page?: integer, tag_name?: string }
- `POST https://api.mcp.ai/api/digital_ocean/list/all/domains` — Tool to list all domains in your digitalocean account. use when you need to retrieve or iterate through domains, with optional pagination. use after authentication.
  - body: { page?: integer, per_page?: integer }
- `POST https://api.mcp.ai/api/digital_ocean/list/all/droplets` — Tool to list all droplets in your account. use when you need an overview of droplets, optionally filtered by tag. use after authentication.
  - body: { page?: integer, per_page?: integer, tag_name?: string }
- `POST https://api.mcp.ai/api/digital_ocean/list/all/firewalls` — Tool to list all firewalls on your digitalocean account. use when you need to audit or manage firewall rules with optional pagination.
  - body: { page?: integer, per_page?: integer }
- `POST https://api.mcp.ai/api/digital_ocean/list/all/images` — Tool to list all images available on your account. use after obtaining a valid api token to retrieve images optionally filtered by type, private visibility, or tag name.
  - body: { page?: integer, type?: string, private?: boolean, per_page?: integer, tag_name?: string }
- `POST https://api.mcp.ai/api/digital_ocean/list/all/kubernetes/clusters` — Tool to list all kubernetes clusters on your account. use when you need to enumerate every cluster and handle pagination.
  - body: { page?: integer, per_page?: integer }
- `POST https://api.mcp.ai/api/digital_ocean/list/all/load/balancers` — Tool to list all load balancer instances on your account. use when you need a paginated overview of load balancers after authentication.
  - body: { page?: integer, per_page?: integer }
- `POST https://api.mcp.ai/api/digital_ocean/list/all/snapshots` — Tool to list all snapshots available on your digitalocean account. use when you need to fetch and optionally filter snapshots by resource type (droplet or volume) and handle pagination for inventory o
  - body: { page?: integer, per_page?: integer, resource_type?: string }
- `POST https://api.mcp.ai/api/digital_ocean/list/all/ssh/keys` — Tool to list all ssh keys in your account. use when you need to retrieve ssh key metadata.
  - body: { page?: integer, per_page?: integer }
- `POST https://api.mcp.ai/api/digital_ocean/list/all/tags` — Tool to list all tags in your account. use when you need to retrieve available tags and pagination info.
  - body: { page?: integer, per_page?: integer }
- `POST https://api.mcp.ai/api/digital_ocean/list/all/volumes` — Tool to list all block storage volumes available on your account. use when you need to retrieve volumes and optionally filter by name and region.
  - body: { name?: string, page?: integer, region?: string, per_page?: integer }
- `POST https://api.mcp.ai/api/digital_ocean/list/all/vpcs` — Tool to list all vpcs on your account. use when you need an inventory of your vpc resources; supports pagination.
  - body: { page?: integer, per_page?: integer }
- `POST https://api.mcp.ai/api/digital_ocean/list/database/options` — Tool to list valid database engine, version, region, and size options. use when configuring a new managed database cluster.
- `POST https://api.mcp.ai/api/digital_ocean/retrieve/domain` — Tool to retrieve details about a specific domain by its name. use after creating or importing a domain to verify ttl and zone file configuration.
  - body: { name: string }
- `POST https://api.mcp.ai/api/digital_ocean/retrieve/domain/record` — Tool to retrieve a specific dns record for a domain by its record id. use when you have the domain name and record id to fetch record details.
  - body: { name: string, record_id: integer }
- `POST https://api.mcp.ai/api/digital_ocean/retrieve/existing/droplet` — Tool to show information about an individual droplet by id. use when you have a droplet id and need detailed status.
  - body: { droplet_id: integer }
- `POST https://api.mcp.ai/api/digital_ocean/retrieve/existing/image` — Tool to retrieve information about an image by id or slug. use when you need detailed metadata for a known image.
  - body: { image_id: integer }
- `POST https://api.mcp.ai/api/digital_ocean/retrieve/tag` — Tool to retrieve an individual tag by name. use when you need to inspect the resources grouped under a specific tag.
  - body: { name: string }
- `POST https://api.mcp.ai/api/digital_ocean/retrieve/vpc` — Tool to retrieve details about a specific vpc by its id. use when you need to inspect vpc properties for configuration or auditing.
  - body: { vpc_uuid: string }
- `POST https://api.mcp.ai/api/digital_ocean/tag/resource` — Tool to tag resources by name. use when you need to assign an existing tag to one or more resources. returns 204 no content on success.
  - body: { tag_name: string, resources: object[] }
- `POST https://api.mcp.ai/api/digital_ocean/untag/resource` — Tool to untag resources by tag name. use when you need to remove an existing tag from multiple resources in a single operation.
  - body: { tag_name: string, resources: object[] }
- `POST https://api.mcp.ai/api/digital_ocean/update/domain/record` — Tool to update an existing dns record for a domain. use when you need to modify any valid attribute of a record after confirming its record id.
  - body: { tag?: string, ttl?: integer, data?: string, name?: string, port?: integer, type?: string, flags?: integer, weight?: integer, priority?: integer, record_id: integer, domain_name: string }
- `POST https://api.mcp.ai/api/digital_ocean/update/vpc` — Tool to update information about a vpc. use when you need to modify the name, description, or default status of an existing vpc.
  - body: { name?: string, vpc_id: string, default?: boolean, description?: string }

## More
- Page: https://mcp.ai/digital_ocean
- Agent spec (llms.txt): https://mcp.ai/digital_ocean/llms.txt
- Postman collection: https://mcp.ai/digital_ocean/postman.json
