⚠️ ARCHIVE NOTICE
This repository has been archived. Please use @digitalocean-labs/mcp-digitalocean
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.
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!
To use the DigitalOcean MCP Server, you’ll need:
- Node.js (≥ 12) & npm
- A DigitalOcean Personal Access Token with App Platform scopes
- A supported MCP client:
- Claude Desktop (v1.9+)
- Claude Code
- Cursor
- Windsurf
- (Optional but helpful): GitHub CLI (gh) - useful for cloning repos, creating projects, and working with GitHub-based apps.
💡 You do not need to install anything—this server runs via npx, with just a one-line config added to your MCP client.
Head to DigitalOcean’s API settings and create a new Personal Access Token with App Platform permissions.
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)
- command: how to launch the server (
-
- args: the package name
-
- env: insert your DO token here
Then follow the instructions for your specific tool:
- Go to Settings → Developer → Edit Config
- Add the snippet above to
claude_desktop_config.json
- Replace
YOUR_DO_TOKEN
with your token - Save and restart Claude Desktop
- You'll see “digitalocean” listed as an available server
Setting up DigitalOcean MCP Server in Claude Desktop
- Go to Settings → Cursor Settings → MCP → Add a new global MCP server
- Cursor will open
~/.cursor/mcp.json
- Add the snippet above to this json file
- Replace
YOUR_DO_TOKEN
with your token - Save, and return to MCP Settings.
- You should now see “digitalocean” in Cursor’s MCP settings
Setting up DigitalOcean MCP Server in Cursor
- In Windsurf: Settings → Windsurf Settings → Cascade → MCP → Add Server → Add custom server
- Windsurf will open
~/.codeium/windsurf/mcp_config.json
- Add the snippet above to this json file
- Replace
YOUR_DO_TOKEN
with your token - Save, and return to MCP Settings.
- You should now see “digitalocean” in Windsurf's MCP settings
Setting up DigitalOcean MCP Server in Windsurf
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.
Category | Commands |
---|---|
Apps | list_apps , create_app , get_app , update_app , delete_app , restart_app |
Deployments | list_deployments , create_deployment , get_deployment , cancel_deployment |
Logs | retrieve_active_deployment_logs , download_logs |
Infra | list_app_regions , list_instance_sizes |
Alerts | list_app_alerts , update_app_alert_destinations |
Rollbacks | validate_app_rollback , rollback_app , commit_app_rollback , revert_app_rollback |
Metrics | get_app_bandwidth_daily_metrics , get_all_app_bandwidth_daily_metrics |
Validation | validate_app_spec |
- Make sure your JSON config is saved and valid
- Restart your MCP client (Claude, Cursor, Windsurf)
- Check that it has App Platform access
- Try generating a fresh one
- No trailing commas
- No comments allowed in JSON
You can also test the server directly by running:
npx @digitalocean/mcp
We’d love your help improving this! Bug reports, new features, and docs improvements are all welcome.
- Fork this repo
- Create a branch (
git checkout -b feature/awesome-tool
) - Open a PR
This project is licensed under the MIT License.