MCP DigitalOcean Integration

MCP serverCloud & infra

Lets your agent manage DigitalOcean cloud services like servers and apps from your chat.

Then ask your AI: use MCP DigitalOcean Integration

Details

Available today. Use it as a step in a pipeline you build, or from your connected AI.

Add it as a step in a pipeline you build on Ahel, or connect Ahel to Claude, ChatGPT, Cursor, Claude Code or Codex and ask your AI to use it.

About this server

Run AI products in production with a unified stack for agents, inference, and cloud, built for control, performance, and economics at scale.

Install MCP DigitalOcean Integration

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user mcp-digitalocean-integration 'https://accounts.mcp.digitalocean.com/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://accounts.mcp.digitalocean.com/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=mcp-digitalocean-integration&config=eyJ1cmwiOiJodHRwczovL2FjY291bnRzLm1jcC5kaWdpdGFsb2NlYW4uY29tL21jcCJ9

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://accounts.mcp.digitalocean.com/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add mcp-digitalocean-integration --url 'https://accounts.mcp.digitalocean.com/mcp'

    Run it once, then sign in with codex mcp login mcp-digitalocean-integration if the server asks for an account.

From the project's README

As published by digitalocean-labs/mcp-digitalocean in README.md.

MCP DigitalOcean Integration is an open-source project that provides a comprehensive interface for managing DigitalOcean resources and performing actions using the DigitalOcean API. Built on top of the godo library and the MCP framework, this project exposes a wide range of tools to simplify cloud infrastructure management.

DISCLAIMER: "Use of MCP technology to interact with your DigitalOcean account can come with risks"


Authentication

The hosted (remote) MCP servers support two ways to authenticate:

  • OAuth 2.0 (recommended). Just add the server URL — no Authorization header. Your client opens a browser to sign in to DigitalOcean on first use, so there's no token to create, store, or rotate. Supported clients (e.g. recent Claude and Cursor) handle this automatically, and you can skip Steps 1–2 below.
  • API token. For local installs or clients without OAuth support, use a DigitalOcean personal access token via an Authorization: Bearer header (remote) or the DIGITALOCEAN_API_TOKEN environment variable (local). See Steps 1–2 below.

Security: Never Hardcode Your API Token

WARNING: Do NOT paste your DigitalOcean API token directly into any config file (e.g., claude_desktop_config.json, ~/.cursor/config.json, VS Code settings). If you commit these files to GitHub, your token will be exposed and GitHub will automatically block or revoke it to protect your account.

The safe approach is to store your token in an environment variable on your machine and reference it from your config file. Follow the steps below for your operating system before proceeding with any client installation.


Step 1: Set Up Your API Token as an Environment Variable

macOS / Linux

Option A: Set it in your shell profile (Recommended — persists across reboots)
  1. Open a terminal.

  2. Determine which shell you are using:

    echo $SHELL
    
    • If it outputs /bin/zsh → edit ~/.zshrc
    • If it outputs /bin/bash → edit ~/.bashrc or ~/.bash_profile
  3. Open the file in a text editor:

    # For zsh (default on macOS Monterey and later)
    nano ~/.zshrc
    
    # For bash
    nano ~/.bashrc
    
  4. Add the following line at the bottom of the file:

    export DIGITALOCEAN_API_TOKEN="your_actual_token_here"
    

    Replace your_actual_token_here with your real token from the DigitalOcean API Tokens page.

  5. Save and exit:

    • In nano: press Ctrl + O, then Enter to save, then Ctrl + X to exit.
  6. Reload your shell to apply the change:

    source ~/.zshrc    # or source ~/.bashrc
    
  7. Verify it is set correctly:

    echo $DIGITALOCEAN_API_TOKEN
    

    You should see your token printed in the terminal.

Option B: Use a .env file (for project-level isolation)
  1. In your project root folder, create a .env file:

    touch .env
    
  2. Open it and add:

    DIGITALOCEAN_API_TOKEN=your_actual_token_here
    
  3. Immediately add .env to your .gitignore so it is never committed:

    echo ".env" >> .gitignore
    
  4. To load the .env file into your current terminal session:

    export $(grep -v '^#' .env | xargs)
    
  5. Verify:

    echo $DIGITALOCEAN_API_TOKEN
    

Note: Option B only sets the variable for the current terminal session. You need to run step 4 each time you open a new terminal. For a permanent solution, use Option A.


Windows

Option A: Set it as a System Environment Variable (Recommended — persists across reboots)
  1. Open Start Menu and search for "Environment Variables".
  2. Click "Edit the system environment variables".
  3. In the System Properties dialog, click the "Environment Variables..." button.
  4. Under "User variables", click "New...".
  5. Fill in:
    • Variable name: DIGITALOCEAN_API_TOKEN
    • Variable value: your_actual_token_here
  6. Click OK on all dialogs to save.
  7. Restart your terminal (Command Prompt or PowerShell) for the change to take effect.
  8. Verify in PowerShell:
    echo $env:DIGITALOCEAN_API_TOKEN
    
    Or in Command Prompt:
    echo %DIGITALOCEAN_API_TOKEN%
    
Option B: Set it temporarily in PowerShell (current session only)
$env:DIGITALOCEAN_API_TOKEN = "your_actual_token_here"
Option C: Use a .env file on Windows
  1. In your project folder, create a file named .env (no extension) with this content:

    DIGITALOCEAN_API_TOKEN=your_actual_token_here
    
  2. Add .env to your .gitignore:

    .env
    
  3. To load it in PowerShell:

    Get-Content .env | ForEach-Object {
      if ($_ -match "^\s*([^#][^=]*)=(.*)$") {
        [System.Environment]::SetEnvironmentVariable($matches[1].Trim(), $matches[2].Trim(), "Process")
      }
    }
    
  4. Verify:

    echo $env:DIGITALOCEAN_API_TOKEN
    

Step 2: Get Your DigitalOcean API Token

  1. Log in to your DigitalOcean account.
  2. Navigate to API → Tokens in the left sidebar, or go directly to: https://cloud.digitalocean.com/account/api/tokens
  3. Click "Generate New Token".
  4. Give it a name (e.g., mcp-local-dev), set expiry, and choose the required scopes.
  5. Copy the token immediately — it will only be shown once.
  6. Store it using one of the methods described in Step 1 above.

Installation

Remote MCP (Recommended)

The easiest way to get started is to use DigitalOcean's hosted MCP services. Each service is deployed as a standalone MCP server accessible via HTTPS, allowing you to connect without running any local server. You can connect to multiple endpoints simultaneously by adding multiple entries to your configuration.

These servers support OAuth 2.0 (recommended) and API-token auth — see Authentication. Each client section below shows both options.

Available Services
ServiceRemote MCP URLDescription
appshttps://apps.mcp.digitalocean.com/mcpManage DigitalOcean App Platform applications, including deployments and configurations.
accountshttps://accounts.mcp.digitalocean.com/mcpGet information about your DigitalOcean account, billing, balance, invoices, and SSH keys.
databaseshttps://databases.mcp.digitalocean.com/mcpProvision, manage, and monitor managed database clusters (Postgres, MySQL, Redis, etc.).
dokshttps://doks.mcp.digitalocean.com/mcpManage DigitalOcean Kubernetes clusters and node pools.
dropletshttps://droplets.mcp.digitalocean.com/mcpCreate, manage, resize, snapshot, and monitor droplets (virtual machines) on DigitalOcean.
microvmshttps://microvms.mcp.digitalocean.com/mcpCreate, list, get, pause, resume, checkpoint, and delete DigitalOcean MicroVMs.
docrhttps://docr.mcp.digitalocean.com/mcpManage DigitalOcean Container Registry repositories, tags, manifests, and garbage collection.
genai-batchinferencehttps://genai-batchinference.mcp.digitalocean.com/mcpCreate, manage, and monitor batch inference jobs for asynchronous bulk AI processing.
signalshttps://signals.mcp.digitalocean.com/mcpInvestigate Gradient agent and serverless inference sessions, segments, and consent for DigitalOcean Signals.
harness-runtimehttps://harness-runtime.mcp.digitalocean.com/mcpList and inspect hosted agent configs for DigitalOcean Harness Runtime.
genai-custom-modelshttps://genai-custom-models.mcp.digitalocean.com/mcpImport, list, update, and delete custom (bring-your-own) models on DigitalOcean's GenAI platform.
genai-inferencerouterhttps://genai-inferencerouter.mcp.digitalocean.com/mcpCreate, list, get, and delete GenAI model routers.
dedicated-inferencehttps://dedicated-inference.mcp.digitalocean.com/mcpManage Dedicated Inference instances for GPU-accelerated model serving.
inference-modelcataloghttps://inference-modelcatalog.mcp.digitalocean.com/mcpBrowse the DigitalOcean Inference model catalog, search for models, and get model cards.
insightshttps://insights.mcp.digitalocean.com/mcpMonitors your resources, endpoints and alert you when they're slow, unavailable, or SSL certificates are expiring.
marketplacehttps://marketplace.mcp.digitalocean.com/mcpDiscover and manage DigitalOcean Marketplace applications.
networkinghttps://networking.mcp.digitalocean.com/mcpManage domains, DNS records, certificates, firewalls, load balancers, reserved IPs, BYOIP Prefixes, VPCs, and CDNs.
functionshttps://functions.mcp.digitalocean.com/mcpManage serverless function namespaces, actions, packages, triggers, and activations.
spaceshttps://spaces.mcp.digitalocean.com/mcpDigitalOcean Spaces object storage and Spaces access keys for S3-compatible storage.
docshttps://docs.mcp.digitalocean.com/mcpSearch and retrieve DigitalOcean public documentation. No API token required.
genai-evaluationhttps://genai-evaluation.mcp.digitalocean.com/mcpManage and run evaluation workflows in DigitalOcean's GenAI platform.
nfshttps://nfs.mcp.digitalocean.com/mcpManage DigitalOcean NFS file shares and file share snapshots.
volumeshttps://volumes.mcp.digitalocean.com/mcpManage DigitalOcean block storage volumes and volume snapshots.
vector-databaseshttps://vector-databases.mcp.digitalocean.com/mcpCreate, list, resize, delete, and inspect managed Weaviate vector database clusters.

Claude Code

Remote MCP (Recommended)

Option A — OAuth (recommended). Add the server with no Authorization header; Claude prompts you to sign in on first use:

claude mcp add --transport http digitalocean-apps https://apps.mcp.digitalocean.com/mcp

Option B — API token. Make sure you have completed Step 1 and your DIGITALOCEAN_API_TOKEN environment variable is set. Then run:

claude mcp add --transport http digitalocean-apps https://apps.mcp.digitalocean.com/mcp \
  --header "Authorization: Bearer $DIGITALOCEAN_API_TOKEN"

How this works: The $DIGITALOCEAN_API_TOKEN is expanded by your shell at the time you run the command. The actual token value is stored securely in Claude's config — you never paste the token into the command yourself.

You can add multiple services the same way:

claude mcp add --transport http digitalocean-databases https://databases.mcp.digitalocean.com/mcp \
  --header "Authorization: Bearer $DIGITALOCEAN_API_TOKEN"

claude mcp add --transport http digitalocean-droplets https://droplets.mcp.digitalocean.com/mcp \
  --header "Authorization: Bearer $DIGITALOCEAN_API_TOKEN"

See the Available Services section for the complete list of available endpoints.

Local Installation
claude mcp add digitalocean-mcp \
  -e DIGITALOCEAN_API_TOKEN=$DIGITALOCEAN_API_TOKEN \
  -- npx @digitalocean/mcp --services apps,databases

This will:

  • Add the MCP server under the default (local) scope — meaning it's only available inside the current folder.
  • Register it with the name digitalocean-mcp.
  • Enable the apps and databases services.
  • Pass your DigitalOcean API token securely to the server via environment variable.
  • Store the configuration in your global Claude config at ~/.claude.json, scoped to the current folder.
Verify Installation

To confirm it's been added:

claude mcp list
Inspect Details

To inspect details:

claude mcp get digitalocean-mcp
Remove Server

To remove it:

claude mcp remove digitalocean-mcp
User Scope

Local scope is great when you're testing or only using the server in one project. User scope is better if you want it available everywhere.

If you'd like to make the server available globally (so you don't have to re-add it in each project), you can use the user scope:

claude mcp add -s user digitalocean-mcp-user-scope \
  -e DIGITALOCEAN_API_TOKEN=$DIGITALOCEAN_API_TOKEN \
  -- npx @digitalocean/mcp --services apps,databases

This will:

  • Make the server available in all folders, not just the one you're in
  • Scope it to your user account
  • Store it in your global Claude config at ~/.claude.json

To remove it:

claude mcp remove -s user digitalocean-mcp-user-scope

Claude Desktop

Remote MCP (Recommended)

Before editing the config file, ensure DIGITALOCEAN_API_TOKEN is set in your shell profile (see Step 1 — Option A). Claude Desktop reads environment variables from your shell profile at launch.

The config file is located at:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Option A — OAuth (recommended). Claude Desktop connects to remote servers through the mcp-remote bridge, which opens a browser for you to sign in to DigitalOcean on first use:

{
  "mcpServers": {
    "digitalocean-apps": {
      "command": "npx",
      "args": ["mcp-remote", "https://apps.mcp.digitalocean.com/mcp"]
    }
  }
}

Option B — API token. Add the remote MCP servers to your config file. Reference the env var using ${DIGITALOCEAN_API_TOKEN} — Claude Desktop will substitute it at runtime:

{
  "mcpServers": {
    "digitalocean-apps": {
      "url": "https://apps.mcp.digitalocean.com/mcp",
      "headers": {
        "Authorization": "Bearer ${DIGITALOCEAN_API_TOKEN}"
      }
    },
    "digitalocean-databases": {
      "url": "https://databases.mcp.digitalocean.com/mcp",
      "headers": {
        "Authorization": "Bearer ${DIGITALOCEAN_API_TOKEN}"
      }
    }
  }
}

Important: The ${DIGITALOCEAN_API_TOKEN} syntax tells Claude Desktop to read the value from your system's environment variables. Your actual token is never written into this file. This file is safe to commit to version control.

You can add any of the endpoints listed in the Available Services section.

Local Installation

Add the following to your claude_desktop_config.json file. The env block passes the environment variable directly to the MCP server process — no hardcoded token needed:

{
  "mcpServers": {
    "digitalocean": {
      "command": "npx",
      "args": ["@digitalocean/mcp", "--services", "apps"],
      "env": {
        "DIGITALOCEAN_API_TOKEN": "${DIGITALOCEAN_API_TOKEN}"
      }
    }
  }
}

How this works: The "env" block in Claude Desktop config passes environment variables to the spawned MCP server process. The ${DIGITALOCEAN_API_TOKEN} value is resolved from your system environment at runtime. Your token is never stored in the config file itself.

After saving the file, restart Claude Desktop for the changes to take effect.


Cursor

Remote MCP (Recommended)

Before editing the config file, ensure DIGITALOCEAN_API_TOKEN is set in your shell profile (see Step 1 — Option A).

The Cursor config file is located at:

  • macOS / Linux: ~/.cursor/config.json
  • Windows: %USERPROFILE%\.cursor\config.json

Option A — OAuth (recommended). Add just the URL with no headers block; Cursor prompts you to sign in on first use:

{
  "mcpServers": {
    "digitalocean-apps": {
      "url": "https://apps.mcp.digitalocean.com/mcp"
    }
  }
}

Option B — API token. Add the remote MCP servers to your Cursor settings file:

{
  "mcpServers": {
    "digitalocean-apps": {
      "url": "https://apps.mcp.digitalocean.com/mcp",
      "headers": {
        "Authorization": "Bearer ${DIGITALOCEAN_API_TOKEN}"
      }
    },
    "digitalocean-databases": {
      "url": "https://databases.mcp.digitalocean.com/mcp",
      "headers": {
        "Authorization": "Bearer ${DIGITALOCEAN_API_TOKEN}"
      }
    }
  }
}

You can add any of the endpoints listed in the Available Services section.

Local Installation

Add the following to your Cursor settings file located at ~/.cursor/config.json:

{
  "mcpServers": {
    "digitalocean": {
      "command": "npx",
      "args": ["@digitalocean/mcp", "--services", "apps"],
      "env": {
        "DIGITALOCEAN_API_TOKEN": "${DIGITALOCEAN_API_TOKEN}"
      }
    }
  }
}

How this works: Cursor resolves ${DIGITALOCEAN_API_TOKEN} from your system environment variables when it launches the MCP server. Make sure the variable is set in your shell profile before starting Cursor.

Verify Installation
  1. Open Cursor and open Command Palette (Shift + ⌘ + P on Mac or Ctrl + Shift + P on Windows/Linux)
  2. Search for "MCP" in the command palette search bar
  3. Select "View: Open MCP Settings"
  4. Select "Tools & Integrations" from the left sidebar
  5. You should see "digitalocean" listed under Available MCP Servers
  6. Click on "N tools enabled" (N is the number of tools currently enabled)
Debugging

To check MCP server logs and debug issues:

  1. Open the Command Palette (⌘+Shift+P on Mac or Ctrl+Shift+P on Windows/Linux)
  2. Type "Developer: Toggle Developer Tools" and press Enter
  3. Navigate to the Console tab to view MCP server logs
  4. You'll find MCP related logs as you interact with the MCP server
Testing the Connection

In Cursor's chat, try asking: "List all my DigitalOcean apps" — this should trigger the MCP server to fetch your apps if properly configured. If you are getting a 401 error or authentication related errors, verify that the DIGITALOCEAN_API_TOKEN variable is correctly set by running echo $DIGITALOCEAN_API_TOKEN in your terminal.


VS Code

Remote MCP (Recommended)

Before editing the config file, ensure DIGITALOCEAN_API_TOKEN is set in your shell profile (see Step 1 — Option A).

The VS Code MCP config file is located at .vscode/mcp.json in your workspace root. Create this file if it does not exist.

Option A — OAuth (recommended). Add just the URL with no headers block; VS Code prompts you to sign in on first use:

{
  "servers": {
    "digitalocean-apps": {
      "url": "https://apps.mcp.digitalocean.com/mcp"
    }
  }
}

Option B — API token. Add the remote MCP servers, using VS Code's inputs feature to prompt for the token securely:

{
  "inputs": [
    {
      "id": "digitalocean-token",
      "type": "promptString",
      "description": "DigitalOcean API Token",
      "password": true
    }
  ],
  "servers": {
    "digitalocean-apps": {
      "url": "https://apps.mcp.digitalocean.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:digitalocean-token}"
      }
    },
    "digitalocean-databases": {
      "url": "https://databases.mcp.digitalocean.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:digitalocean-token}"
      }
    }
  }
}

How VS Code inputs work: The inputs block defines a named input (digitalocean-token) that VS Code will prompt you to enter securely the first time you use the server. Your token is stored in VS Code's secret storage — never written to disk in plain text. The "password": true flag ensures it is masked during input. This config file is completely safe to commit to GitHub.

Alternatively, if you prefer to use a system environment variable directly:

{
  "inputs": [],
  "servers": {
    "digitalocean-apps": {
      "url": "https://apps.mcp.digitalocean.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:DIGITALOCEAN_API_TOKEN}"
      }
    }
  }
}

Note: VS Code uses ${env:VARIABLE_NAME} syntax to read from system environment variables.

Local Installation

Add the following to your .vscode/mcp.json file. Use VS Code's inputs feature to avoid hardcoding the token:

{
  "inputs": [
    {
      "id": "digitalocean-token",
      "type": "promptString",
      "description": "DigitalOcean API Token",
      "password": true
    }
  ],
  "servers": {
    "mcpDigitalOcean": {
      "command": "npx",
      "args": ["@digitalocean/mcp", "--services", "apps"],
      "env": {
        "DIGITALOCEAN_API_TOKEN": "${input:digitalocean-token}"
      }
    }
  }
}

Or, to use a system environment variable directly:

{
  "inputs": [],
  "servers": {
    "mcpDigitalOcean": {
      "command": "npx",
      "args": ["@digitalocean/mcp", "--services", "apps"],
      "env": {
        "DIGITALOCEAN_API_TOKEN": "${env:DIGITALOCEAN_API_TOKEN}"
      }
    }
  }
}
Verify Installation
  1. Open VS Code and open Command Palette (Shift + ⌘ + P on Mac or Ctrl + Shift + P on Windows/Linux)
  2. Search for "MCP" in the command palette search bar
  3. Select "MCP: List Servers"
  4. Verify that "mcpDigitalOcean" appears in the list of configured servers
Viewing Available Tools

To see what tools are available from the MCP server:

  1. Open the Command Palette (⌘+Shift+P on Mac or Ctrl+Shift+P on Windows/Linux)
  2. Select "Agent" mode in the chatbox
  3. Click "Configure tools" on the right, and check for DigitalOcean related tools under MCP Server: mcpDigitalocean. You should be able to list available tools like app-create, app-list, app-delete, etc.
Debugging

To troubleshoot MCP connections:

  1. Open the Command Palette (⌘+Shift+P on Mac or Ctrl+Shift+P on Windows/Linux)
  2. Type "Developer: Toggle Developer Tools" and press Enter
  3. Navigate to the Console tab to view MCP server logs
  4. Check for connection status and error messages

Shortened here. Read the whole README on GitHub.

Signals

GitHub stars
137
Forks
91
Last commit
Oct 2026
Advanced
Delivery
DigitalOcean MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
com-digitalocean-mcp-accounts
Source
https://github.com/digitalocean-labs/mcp-digitalocean
Hosted endpoint
https://accounts.mcp.digitalocean.com/mcp