Sign In
Share:

DigitalOcean's open-source MCP server: manage Droplets, App Platform, databases, DNS, Kubernetes and more from an AI agent.

Security Reviewed

Official DigitalOcean server with full API reach under your token or OAuth login (429 tools, 56 delete-style, 50 high-risk at commit 28eda15); scope the token and enable only the services you need.

Install DigitalOcean MCP in Google Antigravity

Antigravity reads MCP servers from ~/.gemini/config/mcp_config.json (all projects) or .agents/mcp_config.json (one project) (official docs).

EasiestOption 1: paste this to your Antigravity agent
Install the "DigitalOcean MCP" MCP server for Google Antigravity.
Follow the steps at https://www.antigravityskills.org/install/digital-ocean.md (source: https://github.com/digitalocean-labs/mcp-digitalocean).
Before running anything, show me what you will download and whether it includes scripts, and wait for my OK.
Ask me for any keys or paths it needs. When done, check that it is listed under Installed MCP Servers.

The agent reads the install file, shows you what it will download and waits for your OK.

Option 2: install it yourself
  1. 1. Create a DigitalOcean API token

    cloud.digitalocean.com/account/api/tokens (README Step 2). Give it only the scopes you need; a read-only token is enough for looking around.

  2. 2. Check Node.js
    node --version

    Local mode runs through npx and needs Node.js 18 or later (README).

  3. 3. Open the global Antigravity MCP config

    ~/.gemini/config/mcp_config.json. Use the global file rather than .agents/mcp_config.json so the token never sits inside a project folder that could be committed (the README warns against tokens in config files that reach GitHub).

  4. 4. Add the server with only the services you need
    {
      "mcpServers": {
        "digitalocean": {
          "command": "npx",
          "args": ["@digitalocean/mcp", "--services", "apps,droplets"],
          "env": {
            "DIGITALOCEAN_API_TOKEN": "YOUR_TOKEN"
          }
        }
      }
    }

    Same command and args as the README's local Cursor config. Replace apps,droplets with the services you want (see the list of 24 below). We have not checked whether Antigravity expands ${VAR} placeholders here, so this example uses the token value.

  5. 5. Optional: a hosted endpoint instead
    {
      "mcpServers": {
        "digitalocean-docs": {
          "serverUrl": "https://docs.mcp.digitalocean.com/mcp"
        }
      }
    }

    Antigravity uses serverUrl for remote servers. The docs service needs no token. The README says OAuth sign-in works in clients that support it (it names recent Claude and Cursor); we have not checked whether Antigravity completes DigitalOcean's OAuth flow for the other services.

  6. 6. Check that it loaded

    Settings > Customizations > Installed MCP Servers: digitalocean should be listed and switched on. Then ask "List all my DigitalOcean apps".

MCP servers are not skills: they do not go in .agents/skills/. The DigitalOcean README does not mention Antigravity; this uses its documented npx command in Antigravity's mcp_config.json.

Using Claude Code, Cursor or Codex? See other assistants below.

What is DigitalOcean MCP?

DigitalOcean MCP is DigitalOcean's own open-source MCP server, written in Go, for people who run infrastructure on DigitalOcean and want an AI agent to look at or change it: Droplets, App Platform, managed databases, Kubernetes, networking, Spaces, GenAI services and more. You can connect to DigitalOcean's hosted endpoints (one URL per service) or run the same server locally with npx @digitalocean/mcp. What we counted at commit 28eda15 (2026-10-23): 24 services in the server's supportedServices list, matching the 24 remote URLs in the README; 429 tool definitions (428 unique names; action-list is defined twice) across pkg/registry, with networking alone at 61, genai at 47, droplets at 42 and databases at 38; 50 tools labelled high risk and 56 using the delete hint profile; 172 non-test Go files and 167 test files. The npm wrapper (@digitalocean/mcp 1.6.1) only starts a prebuilt binary and lists 6 of them (macOS, Linux and Windows, each x64 and arm64).

How to use DigitalOcean MCP?

Pick only the services you need. Remote: add https://<service>.mcp.digitalocean.com/mcp for each one and sign in with OAuth (or send a personal access token as a Bearer header). Local: run npx @digitalocean/mcp --services apps,droplets with DIGITALOCEAN_API_TOKEN set. Then ask in plain words, for example "List all my DigitalOcean apps". The README recommends enabling only the services you use to keep the tool list small and the model accurate.

Key features of DigitalOcean MCP

  • ✓24 services, each also hosted as its own remote endpoint, e.g. https://droplets.mcp.digitalocean.com/mcp
  • ✓OAuth 2.0 sign-in for the hosted endpoints, or a personal access token
  • ✓Local mode with a --services filter (npx @digitalocean/mcp --services apps,droplets)
  • ✓Tools such as droplet-resize, create-app-from-spec, domain-create, cdn-flush-cache, key-create and vpc-peering-delete
  • ✓A docs service that searches DigitalOcean documentation without an API token
  • ✓Every tool carries read/create/update/delete hints and a low/medium/high risk label in its metadata
  • ✓Two tools run commands inside DigitalOcean-hosted environments, not on your computer: microvm-exec (labelled high risk) and harness-runtime-exec-in-sandbox (medium)

When to use DigitalOcean MCP

  1. 1Listing and resizing Droplets from chat
  2. 2Deploying an App Platform app from a GitHub repo
  3. 3Managing DNS records, firewalls and load balancers
  4. 4Checking balance and invoices
  5. 5Searching DigitalOcean docs while troubleshooting

Installation & Setup Guide

MCP Server Integration

Follow these steps (taken from the project's own docs) to configure DigitalOcean MCP in your development environment.

Step 1: Claude Code (remote, OAuth), from the READMEclaude
claude mcp add --transport http digitalocean-apps https://apps.mcp.digitalocean.com/mcp

Claude prompts you to sign in on first use. Repeat with other service URLs. For a token instead, add --header "Authorization: Bearer $DIGITALOCEAN_API_TOKEN".

Step 2: Claude Code (local), from the READMEclaude
claude mcp add digitalocean-mcp -e DIGITALOCEAN_API_TOKEN=$DIGITALOCEAN_API_TOKEN -- npx @digitalocean/mcp --services apps,databases

Set DIGITALOCEAN_API_TOKEN in your shell profile first. Adds the server for the current folder only; the README shows -s user for all folders.

Step 3: Claude Desktop (remote, OAuth), from the READMEclaude
{
  "mcpServers": {
    "digitalocean-apps": {
      "command": "npx",
      "args": ["mcp-remote", "https://apps.mcp.digitalocean.com/mcp"]
    }
  }
}

Add to claude_desktop_config.json and restart Claude Desktop.

Step 4: Cursor (remote, OAuth), from the READMEcursor
{
  "mcpServers": {
    "digitalocean-apps": {
      "url": "https://apps.mcp.digitalocean.com/mcp"
    }
  }
}

The README says to add this to ~/.cursor/config.json; Cursor prompts you to sign in on first use. For local mode the README uses command npx, args ["@digitalocean/mcp", "--services", "apps"] and env DIGITALOCEAN_API_TOKEN.

Usage Example & Verification

Prompt / Request Example
1) README example (Cursor section, "Testing the Connection"): "List all my DigitalOcean apps"
-> What happens: with the apps service enabled, the agent calls the App Platform list tool and returns your apps. A 401 means the token is missing or wrong.

2) Our example: "Search the DigitalOcean docs for how to add a custom domain to an App Platform app."
-> What happens: with the docs service, the agent uses docs-search (and docs-get-quickstart if useful). The README says this service needs no API token.

3) Our example: "Resize droplet web-1 to the next size up. Show me the size and price change first and wait for my OK."
-> What happens: with the droplets service, the agent lists your Droplets and sizes, then calls droplet-resize after you confirm. This changes a billed resource.
Installation Confirmation Method

Open Settings > Customizations > Installed MCP Servers in Antigravity and check that digitalocean is listed and on, then ask "List all my DigitalOcean apps" (needs the apps service).

Security Review

Static review
Reviewed Date
2026-10-23
Audited Ref / Commit
28eda1578f9209451d27cc99b27255aef65f0ba0
Reviewer
antigravityskills.org (static code review)

Official DigitalOcean server with full API reach under your token or OAuth login (429 tools, 56 delete-style, 50 high-risk at commit 28eda15); scope the token and enable only the services you need.

Full review: scope, findings, risks
Audit Scope:Static review of digitalocean-labs/mcp-digitalocean at commit 28eda15 (2026-10-23; earlier review at 88ab382 on 2026-10-06; 87 commits since): README.md, cmd/mcp-digitalocean/main.go (flags and environment variables, --allow-anonymous guard), pkg/registry/registry.go (supportedServices), pkg/registry/common/annotations.go (hint and risk profiles), a count of every mcp.NewTool definition and hint/risk label in non-test files under pkg/registry, the microvm-exec and harness-runtime-exec-in-sandbox definitions, the URL-fetching helpers in pkg/registry/genai and genai-custom-models, scripts/npm/package.json and index.js (npm wrapper), go.mod, a search for os/exec in non-test Go files, LICENSE. Individual tool handlers were not read line by line.
Key Findings:Go server on godo v1.228.0 and mcp-go v0.55.1. main.go reads DIGITALOCEAN_API_TOKEN, DIGITALOCEAN_API_ENDPOINT (default https://api.digitalocean.com), SERVICES, TRANSPORT (default stdio) and BIND_ADDR (default 127.0.0.1:8080 for http); optional WebSocket logging only if WS_LOGGING_URL is set; --allow-anonymous drops the bearer guard only when --services is limited to the docs service, otherwise the server refuses to start. No os/exec in non-test Go files. The npm wrapper (scripts/npm/index.js) has no install script and only spawns the bundled binary for your platform. 429 tool definitions; risk labels: 50 high, 129 medium, 252 low; 56 delete hints, 4 replace hints. Besides DigitalOcean's API, the server code fetches user-supplied http(s) URLs for GenAI dataset files (genai/file_input.go) and queries huggingface.co/api/models (genai-custom-models/huggingface.go).
Identified Operational Risks & Permissions:Agent actions can create costs or delete infrastructure. A token pasted into a config file can leak if the file is committed. The hosted endpoints run on DigitalOcean's servers, so requests and your OAuth session go through them.

Static review at commit 28eda15. README.md documents two auth paths: OAuth 2.0 for the hosted remote servers (recommended) and a personal access token, sent as an Authorization Bearer header (remote) or read from DIGITALOCEAN_API_TOKEN (local). cmd/mcp-digitalocean/main.go reads the token, an API endpoint defaulting to https://api.digitalocean.com, the service list, and the transport (stdio by default; http binds to 127.0.0.1:8080 unless changed). WebSocket logging is off unless WS_LOGGING_URL is set. A search of non-test Go files found no os/exec. The npm package @digitalocean/mcp (scripts/npm, version 1.6.1) has no postinstall script; index.js only spawns the prebuilt binary that matches your OS and CPU. Each of the 429 tools carries hint annotations and a risk label (pkg/registry/common/annotations.go); we counted 50 high-risk labels and 56 delete hints, so the agent can change and remove billable resources. Two tools execute commands remotely: microvm-exec (high risk) runs a one-shot command in a DigitalOcean MicroVM and harness-runtime-exec-in-sandbox (medium) in a session sandbox; both run on DigitalOcean's side, not on your machine. The GenAI dataset tools download files from URLs the agent supplies, from the machine running the server. The README has a section on never hardcoding tokens and a checklist for keeping them out of git.

Operational Notes & Known Limitations

Known Limitations

  • •Needs a DigitalOcean account. Token setups need a personal access token; local mode needs Node.js 18+ and npm 8+ (README)
  • •The server can create, resize and delete paid resources: we counted 56 tools using the delete hint profile and 50 labelled high risk. The README opens with a risk disclaimer
  • •Each hosted service is a separate MCP entry. Enabling everything locally loads all 429 tool definitions; networking alone has 61 (we counted)
  • •Antigravity is not mentioned anywhere in the repository (we searched). The README documents Claude Code, Claude Desktop, Cursor and VS Code; the Antigravity config below is our adaptation
  • •The README puts Cursor's MCP config at ~/.cursor/config.json; Cursor's own docs use ~/.cursor/mcp.json, so check which file your Cursor version reads
  • •The tool set moves fast: at commit 28eda15 we counted 429 tools, up from 357 at 88ab382 (our review on 2026-10-06), and the 24 services include new harness-runtime, microvms and signals entries. Re-check the tool list after upgrading

Frequently Asked Questions

Is the DigitalOcean MCP safe?

It is DigitalOcean's own code, but it acts on your real account: at commit 28eda15 we counted 56 tools using the delete hint profile and 50 labelled high risk. Enable only the services you need, use a token with limited scopes, keep the token out of project files, and ask the agent to confirm before changes.

How do I install the DigitalOcean MCP in Antigravity?

Add the README's local command (npx @digitalocean/mcp --services apps,droplets) with DIGITALOCEAN_API_TOKEN to ~/.gemini/config/mcp_config.json, then check Installed MCP Servers. The repo does not mention Antigravity.

Do I need an API token?

For local mode, yes (DIGITALOCEAN_API_TOKEN). The hosted endpoints also accept OAuth sign-in in clients that support it, and the docs service needs no token at all.

Which services and how many tools are there?

24 services (apps, accounts, databases, doks, droplets, docr, networking, spaces, functions, volumes, nfs, insights, marketplace, docs, vector-databases, signals, harness-runtime, microvms and six GenAI/inference services) with 429 tool definitions at commit 28eda15 (we counted).

Supported Platforms

antigravityclaudecursor