DigitalOcean MCP Server
A Model Context Protocol server for DigitalOcean cloud infrastructure. Manage Droplets, databases, domains, and more — all through your AI assistant.
What Can You Do With It?
- Manage Droplets — list, create, get details, and delete Droplets
- Query Databases — list and inspect managed database clusters
- Handle Domains — list, create, and delete domain records
- Explore Infrastructure — browse available regions and Droplet sizes with pricing
- Check Account — view account info and usage limits
Table of Contents
- Prerequisites
- Installation
- Setup
- Available Tools
- Example Prompts
- Development
- Troubleshooting
- Contributing
- License
Prerequisites
- Python >= 3.10
- A DigitalOcean Personal Access Token
- A supported MCP client:
Installation
Using uv (recommended)
uv tool install mcp-server-digitalocean
Using pip
pip install mcp-server-digitalocean
Setup
1. Generate Your API Token
Go to DigitalOcean API Tokens and create a new Personal Access Token.
2. Add the Server to Your MCP Client
Add this JSON snippet to your client's MCP config file:
{
"mcpServers": {
"digitalocean": {
"command": "uvx",
"args": ["mcp-server-digitalocean"],
"env": {
"DIGITALOCEAN_TOKEN": "YOUR_DO_TOKEN"
}
}
}
}
Then follow the instructions for your specific client:
Claude Desktop
- Go to Settings > Developer > Edit Config
- Add the snippet above to
claude_desktop_config.json - Replace
YOUR_DO_TOKENwith your token - Save and restart Claude Desktop
- You'll see "digitalocean" listed as an available server
Cursor
- 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_TOKENwith your token - Save and return to MCP Settings
Windsurf
- Go to 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_TOKENwith your token - Save and return to MCP Settings
Claude Code
- Run in your terminal:
claude mcp add digitalocean -- uvx mcp-server-digitalocean
- Set the environment variable:
export DIGITALOCEAN_TOKEN="your-token-here"
Available Tools
| Category | Tools |
|---|---|
| Account | get_account_info |
| Droplets | list_droplets, get_droplet, create_droplet, delete_droplet |
| Databases | list_database_clusters, get_database_cluster |
| Domains | list_domains, create_domain, delete_domain |
| Infrastructure | list_regions, list_sizes |
Example Prompts
Once configured, try asking your assistant:
"List all my Droplets"
"Create a new 1GB Droplet in NYC1 running Ubuntu 24.04"
"Show me all available regions"
"List my database clusters"
"Delete droplet 42"
"What Droplet sizes are available and how much do they cost?"
Development
# Clone the repo
git clone https://github.com/truecallerabreham/mcp-server-digitalocean.git
cd mcp-server-digitalocean
# Install dependencies
uv sync
# Run tests
uv run pytest
# Run linter
uv run ruff check src/ tests/
# Type check
uv run pyright
Troubleshooting
The server doesn't appear in your client?
- Make sure your JSON config is saved and valid (no trailing commas)
- Restart your MCP client (Claude, Cursor, Windsurf)
- Check that
uvxis in your PATH
Token not working?
- Verify the token has the correct scopes
- Try generating a fresh one at DigitalOcean API Tokens
Still having issues?
Test the server directly:
DIGITALOCEAN_TOKEN="your-token" uvx mcp-server-digitalocean
Contributing
Contributions are welcome! Bug reports, new features, and docs improvements are all appreciated.
- Fork this repo
- Create a branch (
git checkout -b feature/my-feature) - Make your changes
- Run tests (
uv run pytest) - Open a PR
License
This project is licensed under the MIT License.