Skip to main content
Glama
truecallerabreham

mcp-server-digitalocean

DigitalOcean MCP Server

PyPI version License: MIT Python 3.10+

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

Related MCP server: PlugLayer MCP Server

Table of Contents


Prerequisites


Installation

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

  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

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

Windsurf

  1. Go to 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

Claude Code

  1. Run in your terminal:

claude mcp add digitalocean -- uvx mcp-server-digitalocean
  1. 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 uvx is in your PATH

Token not working?

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.

  1. Fork this repo

  2. Create a branch (git checkout -b feature/my-feature)

  3. Make your changes

  4. Run tests (uv run pytest)

  5. Open a PR


License

This project is licensed under the MIT License.

Available Tools

12 tools
create_domainB
Idempotent

Create a new domain in your account.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe domain name (e.g., 'example.com')
ip_addressYesThe IP address for the domain's A record

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate write (readOnlyHint=false) and idempotent (idempotentHint=true) behavior. Description adds alignment but no further behavioral details such as error states or propagation time. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with 8 words, efficient and front-loaded. However, it could include more useful details without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 2 parameters and no output schema, the description is minimal but adequate for a simple creation tool. Missing information about success response or validation rules.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds no extra meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'create' and the resource 'domain', with scope 'in your account'. It distinguishes from sibling tools like delete_domain and create_droplet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no prerequisites or context provided. For example, it doesn't mention that the domain must be unique or that DNS records may need configuration.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_dropletB

Create a new Droplet. Specify name, region, size, and image.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable name for the Droplet
sizeYesSize slug (e.g., 's-1vcpu-1gb', 's-2vcpu-4gb')
tagsNoOptional array of tag names
imageYesImage slug or ID (e.g., 'ubuntu-24-04-x64')
regionYesRegion slug (e.g., 'nyc1', 'sfo3', 'lon1')
ssh_keysNoOptional array of SSH key IDs to add

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a mutating operation (readOnlyHint=false), but description adds no behavioral details such as side effects, billing implications, or return value. Without an output schema, more transparency is warranted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no filler, front-loaded with the action 'Create'. Could be more structured but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters and no output schema, the description is too sparse. Does not mention optional parameters (tags, ssh_keys) or any return behavior, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are already documented. The description merely lists the required parameters, adding no extra meaning. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new Droplet and lists the key required parameters (name, region, size, image). This distinguishes it from sibling tools like delete_droplet or list_droplets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like create_domain. Lacks context about prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_domainB
DestructiveIdempotent

Delete a domain from your account.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe domain name to delete

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds no behavioral traits beyond the obvious deletion action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is concise and not verbose, but lacks structure or additional context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one simple parameter and no output schema, the description is minimally adequate but does not discuss consequences (e.g., irreversibility) or error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; the description does not add meaning beyond the schema's description of the 'name' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Delete') and resource ('domain'), and clearly distinguishes from sibling tools like create_domain and delete_droplet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives, nor any prerequisites (e.g., domain must exist). The description is purely declarative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_dropletA
DestructiveIdempotent

Permanently delete a Droplet. This action is irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
droplet_idYesThe Droplet ID to delete

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds 'irreversible' beyond annotations (destructiveHint, idempotentHint). Consistent with annotations; no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with action and consequence. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-param destructive tool with annotations, description is sufficient. No output schema needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 100%; description adds no extra meaning beyond the schema's parameter description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb and resource: 'delete a Droplet' with emphasis on permanence. Distinguishes from siblings like create_droplet, list_droplets, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use or not use. Does not mention alternatives or prerequisites, leaving agent to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_accountA
Read-onlyIdempotent

Get your DigitalOcean account information including email, UUID, and account limits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by specifying the returned data (email, UUID, account limits), which is consistent and enhances transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, directly stating the action and key outputs. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description mentions key return fields. Could specify structure of account limits or error conditions, but sufficient for a simple getter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. Baseline is 4, and the description does not need to add parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves DigitalOcean account information, listing specific data (email, UUID, account limits). It distinguishes itself from siblings, which focus on domains, droplets, databases, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool vs alternatives, but given that no sibling tool provides account info, the context is clear. It implicitly indicates it's the only option for account details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_databaseA
Read-onlyIdempotent

Get detailed information about a specific database cluster.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYesThe database cluster UUID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description does not add behavioral context beyond what annotations provide, but does not contradict them either.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with key action and resource, no extraneous words. Highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one required parameter and no output schema, the description is mostly adequate. However, it could mention the type of information returned (e.g., region, version) to set expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters. The single parameter database_id has a schema description 'The database cluster UUID'. Description adds no extra meaning; baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get detailed information about a specific database cluster', specifying the verb (get), resource (database cluster), and scope (specific). This distinguishes it from siblings like list_databases which would list all clusters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as list_databases for listing or get_droplet for droplets. The description provides no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dropletA
Read-onlyIdempotent

Get detailed information about a specific Droplet by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
droplet_idYesThe Droplet ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds 'detailed information' but no extra behavioral context (e.g., response size, pagination, authentication). With annotations covering safety, a 3 is appropriate – adequate but not enriching.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no unnecessary words. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 param, read-only, no output schema), the description is mostly complete. It explains what the tool does and how to use it. However, it does not mention what the 'detailed information' includes or any prerequisites (e.g., authentication). Still, it is adequate for a safe, simple retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description does not add any extra meaning beyond the schema's 'The Droplet ID'. The schema already fully describes the parameter, so baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Get' and the resource 'detailed information about a specific Droplet by its ID'. It distinguishes well from siblings like list_droplets (list all), create_droplet, and delete_droplet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a specific Droplet ID, but does not explicitly state when to use this tool versus alternatives like list_droplets. No when-not or alternative mentions, leaving it to the agent to infer from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_databasesA
Read-onlyIdempotent

List all database clusters in your account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds no further behavioral context. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, front-loaded with verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and clear annotations, the description is sufficiently complete. No output schema needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters; schema coverage is 100%. Description does not need to add parameter info. Baseline 4 for 0-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'list' and resource 'database clusters' with scope 'in your account'. It distinguishes from sibling tools like create_database or delete_database.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, such as get_database for a specific cluster. No mention of prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_domainsA
Read-onlyIdempotent

List all domains in your account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds no extra behavioral context beyond stating it lists domains, so it does not exceed the baseline. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no waste, front-loaded with the core purpose. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no params, clear annotations, no output schema), the description is nearly complete. However, it does not hint at the return format or data structure, which could be useful for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in the input schema, so schema description coverage is 100%. Baseline for zero parameters is 4. Description adds no parameter information as none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'list' and resource 'domains', clearly stating the tool lists all domains in the account. It distinguishes from sibling tools like create_domain and delete_domain by its listing nature, and from other list tools by specifying 'domains'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. No mention of when not to use or comparison with sibling list tools like list_databases. The description only states what it does without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_dropletsA
Read-onlyIdempotent

List all Droplets in your account. Returns droplet IDs, names, statuses, IPs, regions, and sizes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (default: 1)
per_pageNoItems per page, max 200 (default: 20)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and idempotentHint=true, so description adds value by specifying returned fields. Consistent and enough behavioral context for a read-only list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence concisely states purpose and output, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main purpose and output fields, but lacks mention of default pagination behavior or total count; still adequate for a straightforward list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for page and per_page. Description does not add extra meaning beyond the schema, meeting baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List all Droplets in your account' with specific verb and resource, and enumerates returned fields (IDs, names, statuses, etc.), distinguishing it from sibling tools like list_databases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for listing droplets but does not explicitly state when to use this tool vs. alternatives like get_droplet or other list tools. No exclusions or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_regionsA
Read-onlyIdempotent

List all available DigitalOcean datacenter regions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds 'all available' context but no additional behavioral traits. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with no waste. Perfectly concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool with no output schema, the description is complete enough. It fully explains the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters; schema coverage is 100%. Description doesn't need to add parameter info. Baseline 4 for zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and resource 'regions', and it distinguishes from sibling tools like list_droplets or list_sizes by being specific to datacenter regions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives, but given it has no parameters and is a simple list, it's self-evident. Slight improvement could mention use case for getting region IDs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sizesA
Read-onlyIdempotent

List all available Droplet sizes with pricing and capability info.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false; description adds specific context about output (pricing and capability info), which is consistent and sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with core action, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description is mostly complete but could elaborate on specific fields in the output for better context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters and 100% schema coverage, so the description's lack of parameter details is acceptable; baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'List' and the resource 'available Droplet sizes with pricing and capability info', clearly distinguishing from sibling tools like list_regions or list_domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving Droplet size information but provides no explicit guidance on when to use it vs alternatives or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 12 tool updatesv0.1.0
    • First observedcreate_domain
    • First observedcreate_droplet
    • First observeddelete_domain
    • First observeddelete_droplet
    • First observedget_account
    • First observedget_database
    • First observedget_droplet
    • First observedlist_databases
    • First observedlist_domains
    • First observedlist_droplets
    • First observedlist_regions
    • First observedlist_sizes

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: create, delete, get, list for droplets and domains; get/list for databases; list for regions and sizes; and get_account for account info. No overlap.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., create_droplet, list_domains). No mixing of conventions.

Tool Count5/5

12 tools is well-scoped for a DigitalOcean API server, covering key resources without being excessive or too few.

Completeness3/5

Basic CRUD for droplets and domains is covered, but missing update operations, database creation/deletion, and droplet actions (e.g., power on/off). Notable gaps exist.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/truecallerabreham/mcp-server-digitalocean'

If you have feedback or need assistance with the MCP directory API, please join our Discord server