DigitalOcean MCP
D

digitalocean

Integrates with DigitalOcean's cloud platform API to enable management of cloud resources, deployment of applications, and monitoring of infrastructure through natural language commands.

Content

Tools

DigitalOcean MCP Server

⚠️ ARCHIVE NOTICE
This repository has been archived. Please use @digitalocean-labs/mcp-digitalocean

npm version License: MIT

This MCP server exposes DigitalOcean App Platform functionality through standardized tools that can be used by any MCP client, including Claude Desktop and Cursor. It enables AI assistants to directly manage your DigitalOcean apps without writing code or memorizing API endpoints.

Install MCP Server

📚 Table of Contents


🚀 What Can You Do With It?

You can now do things like:

  • Deploy a new app from a GitHub repo
  • Quickly redeploy an existing app with the latest changes
  • See logs, restart components, or delete old environments
  • Check available regions and create apps based on what’s supported
  • Build and deploy an app from scratch, entirely through your assistant

...and more!


🧰 Prerequisites

To use the DigitalOcean MCP Server, you’ll need:

💡 You do not need to install anything—this server runs via npx, with just a one-line config added to your MCP client.


⚙️ Setting up your DigitalOcean MCP Server

1. Generate Your API Token

Head to DigitalOcean’s API settings and create a new Personal Access Token with App Platform permissions.

2. Add the Server to Your MCP Client

Add this JSON snippet to your client’s MCP config file:

{
  "mcpServers": {
    "digitalocean": {
      "command": "npx",
      "args": ["@digitalocean/mcp"],
      "env": {
        "DIGITALOCEAN_API_TOKEN": "YOUR_DO_TOKEN"
      }
    }
  }
}

Here’s what each part of the snippet does:

    • command: how to launch the server (npx or full path)
    • args: the package name
    • env: insert your DO token here

Then follow the instructions for your specific tool:

Claude Desktop

  1. Go to Settings → Developer → Edit Config
  2. Add the snippet above to claude_desktop_config.json
  3. Replace YOUR_DO_TOKEN with your token
  4. Save and restart Claude Desktop
  5. You'll see “digitalocean” listed as an available server

Claude Desktop MCP Setup Setting up DigitalOcean MCP Server in Claude Desktop

Cursor

  1. Go to Settings → Cursor Settings → MCP → Add a new global MCP server
  2. Cursor will open ~/.cursor/mcp.json
  3. Add the snippet above to this json file
  4. Replace YOUR_DO_TOKEN with your token
  5. Save, and return to MCP Settings.
  6. You should now see “digitalocean” in Cursor’s MCP settings

Cursor MCP Setup Setting up DigitalOcean MCP Server in Cursor

Windsurf Setup

  1. In Windsurf: Settings → Windsurf Settings → Cascade → MCP → Add Server → Add custom server
  2. Windsurf will open ~/.codeium/windsurf/mcp_config.json
  3. Add the snippet above to this json file
  4. Replace YOUR_DO_TOKEN with your token
  5. Save, and return to MCP Settings.
  6. You should now see “digitalocean” in Windsurf's MCP settings

Windsurf MCP Setup

Setting up DigitalOcean MCP Server in Windsurf


💬 Example Prompts

Once it’s configured, try asking your assistant:

“List all active apps on my account”
“Create a new app from https://github.com/do-community/do-one-click-deploy-flask with 1GB RAM in NYC3”
“Show logs for checkout-service”
“Cancel the current deployment for marketing-site”
“Delete the old `staging-env` app”

The assistant will send the request → the MCP server talks to DigitalOcean → you get structured results, ready to act on.


Available Tools

CategoryCommands
Appslist_apps, create_app, get_app, update_app, delete_app, restart_app
Deploymentslist_deployments, create_deployment, get_deployment, cancel_deployment
Logsretrieve_active_deployment_logs, download_logs
Infralist_app_regions, list_instance_sizes
Alertslist_app_alerts, update_app_alert_destinations
Rollbacksvalidate_app_rollback, rollback_app, commit_app_rollback, revert_app_rollback
Metricsget_app_bandwidth_daily_metrics, get_all_app_bandwidth_daily_metrics
Validationvalidate_app_spec

Troubleshooting

The server doesn’t appear in your client?

  • Make sure your JSON config is saved and valid
  • Restart your MCP client (Claude, Cursor, Windsurf)

Token not working?

  • Check that it has App Platform access
  • Try generating a fresh one

JSON errors?

  • No trailing commas
  • No comments allowed in JSON

You can also test the server directly by running:

npx @digitalocean/mcp

Contributing

We’d love your help improving this! Bug reports, new features, and docs improvements are all welcome.

  1. Fork this repo
  2. Create a branch (git checkout -b feature/awesome-tool)
  3. Open a PR

License

This project is licensed under the MIT License.

get_app

Get an app by ID

list_apps

List all apps on your account. Information about the current active deployment as well as any in progress ones will also be included for each app.

create_app

Create a new app by submitting an app specification. For documentation on app specifications ("AppSpec" objects), please refer to [the product documentation](https://docs.digitalocean.com/products/app-platform/reference/app-spec/).

delete_app

Delete an app by ID

update_app

Update an existing app by submitting a new app specification. For documentation on app specifications ("AppSpec" objects), please refer to [the product documentation](https://docs.digitalocean.com/products/app-platform/reference/app-spec/).

rollback_app

Rollback an app to a previous deployment. A new deployment will be created to perform the rollback. The app will be pinned to the rollback deployment preventing any new deployments from being created, either manually or through Auto Deploy on Push webhooks. To resume deployments, the rollback must beeither committed or reverted. It is recommended to use the Validate App Rollback endpoint to double check if the rollback is valid and if there are any warnings.

download_logs

Give the URL of the logs, download the logs and return them as a string.

get_deployment

Get a deployment by ID

list_app_alerts

List alerts associated to the app and any components. This includes configuration information about the alerts including emails, slack webhooks, and triggering events or conditions.

list_app_regions

List all regions supported by App Platform.

list_deployments

List all deployments for an app

cancel_deployment

Cancel a deployment by ID

create_deployment

Create a new deployment for an app

validate_app_spec

Propose and validate a spec for a new or existing app. The request returns some information about the proposed app, including app cost and upgrade cost. If an existing app ID is specified, the app spec is treated as a proposed update to the existing app.

commit_app_rollback

Commit an app rollback. This action permanently applies the rollback and unpins the app to resume new deployments.

list_instance_sizes

List all instance sizes for `service`, `worker`, and `job` components supported by App Platform.

revert_app_rollback

Revert an app rollback. This action reverts the active rollback by creating a new deployment from the latest app spec prior to the rollback and unpins the app to resume new deployments.

get_database_cluster

Get information about a specific database cluster.

get_database_options

Get a list of all database options available for creating a database cluster. This includes available regions, versions, and sizes for each database engine.

list_database_topics

List all topics for a specific database kafka cluster.

validate_app_rollback

Check whether an app can be rolled back to a specific deployment. This endpoint can also be used to check if there are any warnings or validation conditions that will cause the rollback to proceed under un-ideal circumstances. For example, if a component must be rebuilt as part of the rollback causing it to take longer than usual.

list_databases_cluster

List all database clusters in your account. This includes information about each cluster's configuration, status, and connection details.

create_database_cluster

Create a new database cluster.

get_deployment_logs_url

Gets the URL of the logs for a deployment. Before fetching the logs, you need to get the URL of the logs.

get_instance_size_by_slug

Retrieve information about a specific instance size slug for `service`,`worker`, and `job` components.

list_database_cluster_users

List all users for a specific database cluster.

list_database_firewall_rules

List all firewall (trusted sources) rules for a specific database cluster.

update_app_alert_destinations

Update alert destinations for an app

list_database_connection_pools

List all connection pools for a specific database cluster.

update_database_firewall_rules

Update the firewall (trusted sources) rules for a specific database cluster.

list_database_cluster_databases

List all databases for a specific database cluster.

get_database_cluster_certificate

Get the certificate for a specific database cluster.

MCP Server

Connect to MCP Server

DigitalOcean MCP | ToolSDK.ai: 5000+ MCP Servers & AI Tools, 1 Line of Code