### Example Prompts for DigitalOcean MCP Assistant Source: https://github.com/digitalocean/digitalocean-mcp/blob/main/README.md These are example natural language prompts you can use to interact with the DigitalOcean MCP assistant. The assistant translates these into API calls to DigitalOcean. ```natural language “List all active apps on my account” ``` ```natural language “Create a new app from https://github.com/do-community/do-one-click-deploy-flask with 1GB RAM in NYC3” ``` ```natural language “Show logs for checkout-service” ``` ```natural language “Cancel the current deployment for marketing-site” ``` ```natural language “Delete the old `staging-env` app” ``` -------------------------------- ### Get Database Options Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Lists all supported database engines, versions, regions, and node sizes for creating a cluster. Use this to determine available configurations. ```json Tool: get_database_options Parameters: none // Response JSON (abbreviated): { "options": { "slugs": { "pg": ["db-s-1vcpu-1gb", "db-s-1vcpu-2gb", ...], "mysql": ["db-s-1vcpu-1gb", ...] }, "regions": { "pg": ["nyc1", "sfo3", "fra1", ...] }, "versions": { "pg": ["14", "15", "16"] } } } ``` -------------------------------- ### Create a New App Platform App Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Use this JSON payload to create a new App Platform app. This example deploys a web service from a GitHub repository. Ensure the 'repo' and 'branch' fields are correctly set. ```json // Tool: create_app // Minimum AppSpec body for a GitHub-sourced web service { "body": { "spec": { "name": "my-flask-api", "region": "nyc", "services": [ { "name": "web", "github": { "repo": "my-org/my-flask-app", "branch": "main", "deploy_on_push": true }, "instance_count": 1, "instance_size_slug": "basic-xxs", "http_port": 8080, "run_command": "gunicorn app:app" } ] } } } ``` -------------------------------- ### Get a specific instance size by slug Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Retrieves details for a single instance size using its slug identifier. This is useful for getting specific configuration details like CPU and memory. ```json Tool: get_instance_size_by_slug Parameters: { path: { slug: "basic-xs" } } ``` -------------------------------- ### Test DigitalOcean MCP Server Source: https://github.com/digitalocean/digitalocean-mcp/blob/main/README.md Run this command in your terminal to directly test the DigitalOcean MCP server. Ensure you have Node.js and npm installed. ```bash npx @digitalocean/mcp ``` -------------------------------- ### Get a specific deployment Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Retrieves full details for a single deployment. Ensure you have the correct app_id and deployment_id. ```json Tool: get_deployment Parameters: { path: { app_id: "abc-123", deployment_id: "dep-789" } } ``` -------------------------------- ### Get Database Cluster Details Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Fetches comprehensive information for a specific database cluster, including its connection string, maintenance window, and backup schedule. ```json Tool: get_database_cluster Parameters: { path: { database_cluster_uuid: "db-abc-111" } } // Response: full cluster object JSON ``` -------------------------------- ### Update an Existing App's Spec Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Submit this JSON payload to update an existing App Platform app. This example modifies the instance size and adds an environment variable. The 'id' field must match the app to be updated. ```json // Tool: update_app // Update the instance size and add an environment variable { "path": { "id": "abc-123" }, "body": { "spec": { "name": "my-flask-api", "region": "nyc", "services": [ { "name": "web", "instance_size_slug": "basic-xs", "envs": [ { "key": "APP_ENV", "value": "production", "scope": "RUN_TIME" } ] } ] } } } ``` -------------------------------- ### Get a signed log URL Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Retrieves a signed URL for accessing deployment logs. Specify the log type (BUILD, DEPLOY, RUN, RUN_RESTARTED) and optionally the deployment_id. ```json Tool: get_deployment_logs_url Parameters: { app_id: "abc-123", type: "BUILD", // One of: BUILD | DEPLOY | RUN | RUN_RESTARTED deployment_id: "dep-789" // Optional; omit to get logs for the active deployment } ``` -------------------------------- ### Get Database Cluster CA Certificate Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Downloads the Certificate Authority (CA) certificate for a database cluster. This certificate is necessary for establishing SSL-verified connections. ```json Tool: get_database_cluster_certificate Parameters: { path: { database_cluster_uuid: "db-abc-111" } } // Response: { "ca": { "certificate": "LS0tLS1CRUdJTi..." } } // base64-encoded PEM certificate ``` -------------------------------- ### List available instance sizes Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Lists all available instance size options for service, worker, and job components. Each size includes details like CPU, memory, and pricing. ```json { "name": "Basic XXS", "slug": "basic-xxs", "cpu_type": "SHARED", "cpus": 1, "memory_bytes": 536870912, "usd_per_month": "5.00", "usd_per_second": "0.0000018" } ``` -------------------------------- ### Trigger a new deployment Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Use this tool to create a new deployment for an existing app. You can optionally force a rebuild of the application. ```json // Tool: create_deployment { "path": { "app_id": "abc-123" }, "body": { "force_build": true } } ``` -------------------------------- ### list_instance_sizes Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Lists all instance size options for service, worker, and job components. ```APIDOC ## list_instance_sizes — List available instance sizes ### Description Lists all instance size options for service, worker, and job components. ### Method GET (assumed, based on listing action) ### Endpoint `/instance-sizes` (assumed) ### Parameters None ### Response #### Success Response (200) - **name** (string) - The human-readable name of the instance size. - **slug** (string) - The unique identifier for the instance size. - **cpu_type** (string) - The type of CPU (e.g., SHARED). - **cpus** (integer) - The number of CPU cores. - **memory_bytes** (integer) - The amount of memory in bytes. - **usd_per_month** (string) - The cost per month in USD. - **usd_per_second** (string) - The cost per second in USD. ``` -------------------------------- ### get_database_options Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt List available database engine options, versions, regions, and node sizes. ```APIDOC ## get_database_options ### Description Returns all supported engines (PostgreSQL, MySQL, Redis, MongoDB, Kafka, etc.), versions, regions, and node sizes available for creating a cluster. ### Method GET ### Endpoint /v1/databases/options ### Parameters None ### Response #### Success Response (200) - **options** (object) - Contains available options for database creation. - **slugs** (object) - Mapping of engine slugs to available node sizes. - **regions** (object) - Mapping of engine slugs to available regions. - **versions** (object) - Mapping of engine slugs to available versions. ### Response Example ```json { "options": { "slugs": { "pg": ["db-s-1vcpu-1gb", "db-s-1vcpu-2gb", ...], "mysql": ["db-s-1vcpu-1gb", ...] }, "regions": { "pg": ["nyc1", "sfo3", "fra1", ...] }, "versions": { "pg": ["14", "15", "16"] } } } ``` ``` -------------------------------- ### list_apps Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Lists all apps on the account, returning a summary of each app including its ID, name, region, and current deployment status. ```APIDOC ## list_apps ### Description Returns a summary of every App Platform app including its ID, name, region, and current deployment status. ### Method APICALL ### Endpoint list_apps ### Parameters #### Query Parameters - **page** (number) - Optional - The page number for pagination. - **per_page** (number) - Optional - The number of items to return per page. ### Request Example ```json { "query": { "page": 1, "per_page": 20 } } ``` ### Response #### Success Response (200) - **App ID** (string) - The unique identifier for the app. - **Name** (string) - The name of the app. - **Region** (string) - The DigitalOcean region where the app is deployed. ### Response Example ```json [ { "App ID": "abc-123", "Name": "my-flask-api", "Region": "nyc" }, { "App ID": "def-456", "Name": "marketing-site", "Region": "sfo" } ] ``` ``` -------------------------------- ### create_deployment Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Creates a new deployment for an existing app, optionally forcing a rebuild. ```APIDOC ## create_deployment — Trigger a new deployment ### Description Creates a new deployment for an existing app, optionally forcing a rebuild. ### Method POST (assumed, based on creation action) ### Endpoint `/apps/{app_id}/deployments` (assumed, based on path parameter) ### Parameters #### Path Parameters - **app_id** (string) - Required - The ID of the app to create a deployment for. #### Request Body - **force_build** (boolean) - Optional - If true, forces a rebuild of the deployment. ### Request Example ```json { "force_build": true } ``` ### Response #### Success Response (200 or 201) - **id** (string) - The ID of the newly created deployment. - **phase** (string) - The current phase of the deployment (e.g., PENDING_BUILD). - **created_at** (string) - The timestamp when the deployment was created. ### Response Example ```json { "id": "dep-999", "phase": "PENDING_BUILD", "created_at": "2024-03-20T..." } ``` ``` -------------------------------- ### create_app Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Deploys a new app from an AppSpec object, creating a new App Platform app. ```APIDOC ## create_app ### Description Creates a new App Platform app by submitting a full AppSpec object. ### Method APICALL ### Endpoint create_app ### Parameters #### Request Body - **spec** (object) - Required - The AppSpec object defining the application configuration. - **name** (string) - Required - The name of the application. - **region** (string) - Required - The DigitalOcean region for the app. - **services** (array) - Required - An array of service definitions. - **name** (string) - Required - The name of the service. - **github** (object) - Optional - GitHub repository details for deployment. - **repo** (string) - Required - The GitHub repository path (e.g., "my-org/my-app"). - **branch** (string) - Required - The branch to deploy from. - **deploy_on_push** (boolean) - Required - Whether to deploy automatically on push. - **instance_count** (number) - Optional - The number of instances for the service. - **instance_size_slug** (string) - Optional - The slug for the instance size (e.g., "basic-xxs"). - **http_port** (number) - Optional - The HTTP port the service listens on. - **run_command** (string) - Optional - The command to run the service. ### Request Example ```json { "spec": { "name": "my-flask-api", "region": "nyc", "services": [ { "name": "web", "github": { "repo": "my-org/my-flask-app", "branch": "main", "deploy_on_push": true }, "instance_count": 1, "instance_size_slug": "basic-xxs", "http_port": 8080, "run_command": "gunicorn app:app" } ] } } ``` ### Response #### Success Response (200) - **id** (string) - The unique identifier of the created app. - **spec** (object) - The AppSpec object of the created app. - **active_deployment** (object) - Details of the active deployment. ### Response Example ```json { "id": "abc-123", "spec": { "name": "my-flask-api", "region": "nyc", "services": [ { "name": "web", "github": { "repo": "my-org/my-flask-app", "branch": "main", "deploy_on_push": true }, "instance_count": 1, "instance_size_slug": "basic-xxs", "http_port": 8080, "run_command": "gunicorn app:app" } ] }, "active_deployment": { "id": "dep-123", "phase": "BUILDING" } } ``` ``` -------------------------------- ### Test DigitalOcean MCP Server Directly Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Run this command in your terminal to test the DigitalOcean MCP Server directly. Replace 'dop_v1_your_token' with your actual API token. ```bash DIGITALOCEAN_API_TOKEN=dop_v1_your_token npx @digitalocean/mcp ``` -------------------------------- ### List Deployments for an App Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Use these parameters to list all deployments for a given App Platform app. The 'app_id' field should be replaced with the target app's ID. Pagination can be controlled with 'page' and 'per_page'. ```json Tool: list_deployments Parameters: { path: { app_id: "abc-123" }, query: { page: 1, per_page: 10 } } ``` -------------------------------- ### Download log content from a signed URL Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Fetches and returns the raw text content of logs using a URL obtained from `get_deployment_logs_url`. Ensure the provided URL is valid and has not expired. ```text Tool: download_logs Parameters: { url: "https://nyc3.digitaloceanspaces.com/logs/abc-123/dep-789/BUILD.txt?AWSAccessKeyId=..." } ``` -------------------------------- ### list_deployments Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Lists all deployments for a given app, including their IDs, phases, and timestamps. ```APIDOC ## list_deployments ### Description Returns all deployments for an app with their IDs, phases, and timestamps. ### Method APICALL ### Endpoint list_deployments ### Parameters #### Path Parameters - **app_id** (string) - Required - The unique identifier of the app whose deployments are to be listed. #### Query Parameters - **page** (number) - Optional - The page number for pagination. - **per_page** (number) - Optional - The number of items to return per page. ### Request Example ```json { "path": { "app_id": "abc-123" }, "query": { "page": 1, "per_page": 10 } } ``` ### Response #### Success Response (200) - **Deployment ID** (string) - The unique identifier for the deployment. - **Status** (string) - The current status of the deployment (e.g., "ACTIVE", "SUPERSEDED"). - **Created At** (string) - The timestamp when the deployment was created. - **Updated At** (string) - The timestamp when the deployment was last updated. ### Response Example ```json [ { "Deployment ID": "dep-789", "Status": "ACTIVE", "Created At": "2024-03-15T10:00:00Z", "Updated At": "2024-03-15T10:05:30Z" }, { "Deployment ID": "dep-456", "Status": "SUPERSEDED", "Created At": "2024-03-10T08:00:00Z", "Updated At": "2024-03-10T08:04:00Z" } ] ``` ``` -------------------------------- ### get_deployment Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Retrieves full details for a single deployment. ```APIDOC ## get_deployment — Get a specific deployment ### Description Retrieves full details for a single deployment, including component statuses and progress. ### Method GET (assumed, based on retrieval action) ### Endpoint `/apps/{app_id}/deployments/{deployment_id}` (assumed, based on path parameters) ### Parameters #### Path Parameters - **app_id** (string) - Required - The ID of the app. - **deployment_id** (string) - Required - The ID of the deployment to retrieve. ### Response #### Success Response (200) - **deployment object JSON** - Contains detailed information about the deployment, including component statuses, progress, and causes. ``` -------------------------------- ### Configure DigitalOcean MCP Server Source: https://github.com/digitalocean/digitalocean-mcp/blob/main/README.md Add this JSON snippet to your MCP client's configuration file to integrate the DigitalOcean MCP Server. Ensure you replace 'YOUR_DO_TOKEN' with your actual DigitalOcean Personal Access Token. ```json { "mcpServers": { "digitalocean": { "command": "npx", "args": ["@digitalocean/mcp"], "env": { "DIGITALOCEAN_API_TOKEN": "YOUR_DO_TOKEN" } } } } ``` -------------------------------- ### List Databases in a Cluster Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Fetches all logical databases within a managed database cluster. The database cluster UUID is required. ```bash Tool: list_database_cluster_databases Parameters: { path: { database_cluster_uuid: "db-abc-111" } } ``` -------------------------------- ### download_logs Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Fetches and returns the raw text content of logs given a URL obtained from `get_deployment_logs_url`. ```APIDOC ## download_logs — Download log content from a signed URL ### Description Fetches and returns the raw text content of logs given a URL obtained from `get_deployment_logs_url`. ### Method GET (assumed, based on download action) ### Endpoint `{url}` (The URL is provided as a parameter) ### Parameters #### Query Parameters - **url** (string) - Required - The signed URL obtained from `get_deployment_logs_url`. ### Response #### Success Response (200) - **raw log text** (string) - The content of the logs. ### Response Example ``` [2024-03-15 10:00:01] Step 1/8 : FROM python:3.11 [2024-03-15 10:00:05] Successfully built a1b2c3d4 [2024-03-15 10:00:06] Build succeeded ``` ``` -------------------------------- ### List Kafka Topics Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Retrieves all topics configured in a managed Kafka database cluster. The Kafka cluster UUID is required. ```bash Tool: list_database_topics Parameters: { path: { database_cluster_uuid: "kafka-cluster-uuid" } } ``` -------------------------------- ### get_app Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Retrieves full details for a specific app by its ID, including its current deployment and spec. ```APIDOC ## get_app ### Description Fetches full details for a single app including its current deployment and spec. ### Method APICALL ### Endpoint get_app ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the app to retrieve. ### Request Example ```json { "path": { "id": "abc-123" } } ``` ### Response #### Success Response (200) - **id** (string) - The unique identifier of the app. - **spec** (object) - The AppSpec object of the app. - **active_deployment** (object) - Details of the active deployment. ### Response Example ```json { "id": "abc-123", "spec": { "name": "my-flask-api", "region": "nyc", "services": [ { "name": "web", "instance_size_slug": "basic-xxs", "http_port": 8080, "run_command": "gunicorn app:app" } ] }, "active_deployment": { "id": "dep-789", "phase": "ACTIVE", "created_at": "2024-03-15T10:00:00Z", "updated_at": "2024-03-15T10:05:30Z" } } ``` ``` -------------------------------- ### list_database_topics Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Lists all topics configured in a managed Kafka database cluster. ```APIDOC ## list_database_topics ### Description Returns all topics configured in a managed Kafka database cluster. ### Method Tool ### Endpoint list_database_topics ### Parameters #### Path Parameters - **database_cluster_uuid** (string) - Required - The UUID of the Kafka cluster. ### Response #### Success Response (200) - **topics** (array) - A list of Kafka topics. - **name** (string) - The name of the topic. - **state** (string) - The state of the topic (e.g., "active"). - **replication_factor** (integer) - The replication factor of the topic. - **partition_count** (integer) - The number of partitions for the topic. ### Request Example ```json { "tool": "list_database_topics", "parameters": { "path": { "database_cluster_uuid": "kafka-cluster-uuid" } } } ``` ### Response Example ```json { "topics": [ { "name": "user-events", "state": "active", "replication_factor": 2, "partition_count": 6 }, { "name": "order-processed", "state": "active", "replication_factor": 2, "partition_count": 3 } ] } ``` ``` -------------------------------- ### List Database Connection Pools Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Returns all PgBouncer connection pools configured for a PostgreSQL cluster. Requires the database cluster UUID. ```bash Tool: list_database_connection_pools Parameters: { path: { database_cluster_uuid: "db-abc-111" } } ``` -------------------------------- ### List alerts for an app Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Returns all configured alerts for a given app. This includes trigger conditions and notification destinations like emails and Slack webhooks. ```json Tool: list_app_alerts Parameters: { path: { app_id: "abc-123" } } ``` -------------------------------- ### Roll Back App Deployment Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Initiates a rollback to a previous deployment and pins the app. Use this to revert to a known good state before committing the rollback. ```json Tool: rollback_app Parameters: { path: { app_id: "abc-123" }, body: { deployment_id: "dep-456", skip_pin: false } } // Response: new rollback deployment object // { "deployment": { "id": "dep-rollback-001", "phase": "PENDING_BUILD", ... } } ``` -------------------------------- ### List supported App Platform regions Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Returns all regions where App Platform apps can be deployed. This includes slugs, continent information, and default/disabled status for each region. ```text Tool: list_app_regions Parameters: none ``` -------------------------------- ### Retrieve a Specific App by ID Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Use this parameter object to fetch details for a specific App Platform app using its ID. The 'id' field should be replaced with the actual app ID. ```json Tool: get_app Parameters: { path: { id: "abc-123" } } ``` -------------------------------- ### Create Database Cluster Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Provisions a new managed database cluster. Specify the engine, version, region, size, and optionally tags for organization. ```json // Tool: create_database_cluster { "body": { "name": "staging-postgres", "engine": "pg", "version": "16", "region": "nyc1", "size": "db-s-1vcpu-1gb", "num_nodes": 1, "tags": ["staging", "backend"] } } // Response: full cluster object with connection credentials // { "database": { "id": "db-new-222", "status": "creating", "connection": { "uri": "..." }, ... } } ``` -------------------------------- ### Configure MCP Client for DigitalOcean Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Add this JSON snippet to your MCP client's configuration to connect to the DigitalOcean MCP Server. Ensure the DIGITALOCEAN_API_TOKEN is replaced with your actual token. ```json // Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json // Cursor: ~/.cursor/mcp.json // Windsurf: ~/.codeium/windsurf/mcp_config.json { "mcpServers": { "digitalocean": { "command": "npx", "args": ["@digitalocean/mcp"], "env": { "DIGITALOCEAN_API_TOKEN": "dop_v1_YOUR_TOKEN_HERE" } } } } ``` -------------------------------- ### update_app Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Updates an existing app's configuration by submitting a new AppSpec, triggering a new deployment. ```APIDOC ## update_app ### Description Submits a new AppSpec to update an existing app's configuration, triggering a new deployment. ### Method APICALL ### Endpoint update_app ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the app to update. #### Request Body - **spec** (object) - Required - The updated AppSpec object. - **name** (string) - Optional - The name of the application. - **region** (string) - Optional - The DigitalOcean region for the app. - **services** (array) - Optional - An array of service definitions to update. - **name** (string) - Required - The name of the service to update. - **instance_size_slug** (string) - Optional - The new slug for the instance size. - **envs** (array) - Optional - An array of environment variables. - **key** (string) - Required - The environment variable key. - **value** (string) - Required - The environment variable value. - **scope** (string) - Required - The scope of the environment variable (e.g., "RUN_TIME"). ### Request Example ```json { "path": { "id": "abc-123" }, "body": { "spec": { "name": "my-flask-api", "region": "nyc", "services": [ { "name": "web", "instance_size_slug": "basic-xs", "envs": [ { "key": "APP_ENV", "value": "production", "scope": "RUN_TIME" } ] } ] } } } ``` ### Response #### Success Response (200) - **id** (string) - The unique identifier of the updated app. - **spec** (object) - The updated AppSpec object. - **active_deployment** (object) - Details of the new active deployment. ### Response Example ```json { "id": "abc-123", "spec": { "name": "my-flask-api", "region": "nyc", "services": [ { "name": "web", "instance_size_slug": "basic-xs", "http_port": 8080, "run_command": "gunicorn app:app", "envs": [ { "key": "APP_ENV", "value": "production", "scope": "RUN_TIME" } ] } ] }, "active_deployment": { "id": "dep-999", "phase": "BUILDING" } } ``` ``` -------------------------------- ### List Database Cluster Users Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Retrieves all database users for a specified cluster, including their authentication details. Requires the database cluster UUID. ```bash Tool: list_database_cluster_users Parameters: { path: { database_cluster_uuid: "db-abc-111" } } ``` -------------------------------- ### list_database_firewall_rules Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Returns all inbound trusted-source firewall rules for a database cluster. ```APIDOC ## list_database_firewall_rules ### Description Returns all inbound trusted-source firewall rules for a database cluster. ### Method GET ### Endpoint /v1/databases/{database_cluster_uuid}/firewall ### Parameters #### Path Parameters - **database_cluster_uuid** (string) - Required - The UUID of the database cluster. ### Response #### Success Response (200) - **rules** (array) - A list of firewall rules. - **uuid** (string) - The rule's UUID. - **cluster_uuid** (string) - The UUID of the associated database cluster. - **type** (string) - The type of rule (e.g., ip_addr, k8s, app). - **value** (string) - The value of the rule (e.g., IP address, Kubernetes cluster ID, App ID). ### Response Example ```json { "rules": [ { "uuid": "rule-001", "cluster_uuid": "db-abc-111", "type": "ip_addr", "value": "192.168.1.100" }, { "uuid": "rule-002", "type": "k8s", "value": "k8s-cluster-uuid-here" }, { "uuid": "rule-003", "type": "app", "value": "app-uuid-here" } ] } ``` ``` -------------------------------- ### update_database_firewall_rules Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Replaces all existing firewall rules with the provided list. ```APIDOC ## update_database_firewall_rules ### Description Replaces all existing firewall rules with the provided list. ### Method PUT ### Endpoint /v1/databases/{database_cluster_uuid}/firewall ### Parameters #### Path Parameters - **database_cluster_uuid** (string) - Required - The UUID of the database cluster. #### Request Body - **rules** (array) - Required - The list of firewall rules to apply. - **type** (string) - Required - The type of rule (e.g., ip_addr, k8s, app). - **value** (string) - Required - The value of the rule (e.g., IP address, Kubernetes cluster ID, App ID). ### Response #### Success Response (200) - **rules** (array) - The updated list of firewall rules. ### Response Example ```json // Tool: update_database_firewall_rules { "path": { "database_cluster_uuid": "db-abc-111" }, "body": { "rules": [ { "type": "ip_addr", "value": "10.0.0.0/8" }, { "type": "app", "value": "abc-123" } ] } } // Response: updated rules list ``` ``` -------------------------------- ### get_instance_size_by_slug Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Retrieves details for a single instance size by its slug identifier. ```APIDOC ## get_instance_size_by_slug — Get a specific instance size ### Description Retrieves details for a single instance size by its slug identifier. ### Method GET (assumed, based on retrieval action) ### Endpoint `/instance-sizes/{slug}` (assumed, based on path parameter) ### Parameters #### Path Parameters - **slug** (string) - Required - The slug identifier of the instance size. ### Response #### Success Response (200) - **name** (string) - The human-readable name of the instance size. - **slug** (string) - The unique identifier for the instance size. - **cpus** (integer) - The number of CPU cores. - **memory_bytes** (integer) - The amount of memory in bytes. - **usd_per_month** (string) - The cost per month in USD. ``` -------------------------------- ### List Database Firewall Rules Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Retrieves all inbound trusted-source firewall rules for a database cluster. This helps in understanding network access controls. ```json Tool: list_database_firewall_rules Parameters: { path: { database_cluster_uuid: "db-abc-111" } } // Response JSON: { "rules": [ { "uuid": "rule-001", "cluster_uuid": "db-abc-111", "type": "ip_addr", "value": "192.168.1.100" }, { "uuid": "rule-002", "type": "k8s", "value": "k8s-cluster-uuid-here" }, { "uuid": "rule-003", "type": "app", "value": "app-uuid-here" } ] } ``` -------------------------------- ### Update Database Firewall Rules Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Replaces all existing firewall rules for a database cluster with a new list of trusted sources. Use with caution as it overwrites current rules. ```json // Tool: update_database_firewall_rules { "path": { "database_cluster_uuid": "db-abc-111" }, "body": { "rules": [ { "type": "ip_addr", "value": "10.0.0.0/8" }, { "type": "app", "value": "abc-123" } ] } } // Response: updated rules list ``` -------------------------------- ### rollback_app Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Initiates a rollback deployment and pins the app, preventing new deployments until committed or reverted. ```APIDOC ## rollback_app ### Description Initiates a rollback deployment and pins the app, preventing new deployments until committed or reverted. ### Method POST ### Endpoint /apps/{app_id}/rollback ### Parameters #### Path Parameters - **app_id** (string) - Required - The ID of the app. #### Request Body - **deployment_id** (string) - Required - The ID of the deployment to roll back to. - **skip_pin** (boolean) - Optional - Whether to skip pinning the app after the rollback. ### Response #### Success Response (200) - **deployment** (object) - The new rollback deployment object. - **id** (string) - The ID of the new deployment. - **phase** (string) - The phase of the deployment (e.g., PENDING_BUILD). ### Response Example ```json { "deployment": { "id": "dep-rollback-001", "phase": "PENDING_BUILD", ... } } ``` ``` -------------------------------- ### get_deployment_logs_url Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Retrieves the signed URL pointing to the log storage bucket for a given log type. ```APIDOC ## get_deployment_logs_url — Get a signed log URL ### Description Retrieves the signed URL pointing to the log storage bucket for a given log type. Use this before calling `download_logs`. ### Method GET (assumed, based on retrieval action) ### Endpoint `/apps/{app_id}/deployments/{deployment_id}/logs/url` (assumed, based on parameters) ### Parameters #### Path Parameters - **app_id** (string) - Required - The ID of the app. - **deployment_id** (string) - Optional - The ID of the deployment. Omit to get logs for the active deployment. #### Query Parameters - **type** (string) - Required - The type of logs to retrieve. One of: BUILD, DEPLOY, RUN, RUN_RESTARTED. ### Response #### Success Response (200) - **live_url** (string) - A signed URL for accessing live log content. - **historic_urls** (array of strings) - Signed URLs for accessing historic log content. ### Response Example ```json { "live_url": "https://...", "historic_urls": ["https://storage.do.../logs.txt"] } ``` ``` -------------------------------- ### Validate and preview an AppSpec Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Validates a proposed AppSpec and returns cost estimates. Optionally checks against an existing app when an app ID is provided. ```json // Tool: validate_app_spec { "body": { "spec": { "name": "my-new-app", "region": "nyc", "services": [ { "name": "api", "image": { "registry_type": "DOCKER_HUB", "repository": "nginx", "tag": "latest" }, "instance_size_slug": "basic-xxs" } ] } } } ``` -------------------------------- ### List Database Clusters Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Retrieves a list of all managed database clusters, including their connection details, engine, version, status, and node count. Useful for monitoring existing clusters. ```text Tool: list_databases_cluster Parameters: { query?: { tag_name?: string } } // Response content: Database Cluster ID: db-abc-111 Name: production-pg Engine: pg Version: 16 Region: nyc1 Status: online Created At: 2024-01-10T09:00:00Z Number of Nodes: 2 Connection URI: postgresql://doadmin:secret@production-pg.db.ondigitalocean.com:25060/defaultdb?sslmode=require ``` -------------------------------- ### list_app_alerts Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Returns all configured alerts for an app, including trigger conditions and notification destinations. ```APIDOC ## list_app_alerts — List alerts for an app ### Description Returns all configured alerts for an app, including trigger conditions and notification destinations. ### Method GET (assumed, based on listing action) ### Endpoint `/apps/{app_id}/alerts` (assumed, based on path parameter) ### Parameters #### Path Parameters - **app_id** (string) - Required - The ID of the app. ### Response #### Success Response (200) - **alerts** (array of objects) - A list of configured alerts. - **id** (string) - The unique identifier for the alert. - **spec** (object) - The alert specification. - **rule** (string) - The alert rule (e.g., DEPLOYMENT_FAILED). - **operator** (string) - The operator for the rule (e.g., UNSET). - **emails** (array of strings) - A list of email addresses for notifications. - **slack_webhooks** (array of objects) - A list of Slack webhook configurations. - **url** (string) - The Slack webhook URL. - **channel** (string) - The Slack channel name. ``` -------------------------------- ### create_database_cluster Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Provisions a new database cluster for the specified engine, version, region, and size. ```APIDOC ## create_database_cluster ### Description Provisions a new database cluster for the specified engine, version, region, and size. ### Method POST ### Endpoint /v1/databases ### Parameters #### Request Body - **name** (string) - Required - Name for the new database cluster. - **engine** (string) - Required - The database engine (e.g., pg, mysql). - **version** (string) - Required - The engine version. - **region** (string) - Required - The datacenter region. - **size** (string) - Required - The node size (e.g., db-s-1vcpu-1gb). - **num_nodes** (integer) - Optional - The number of nodes (default: 1). - **tags** (array of strings) - Optional - Tags to apply to the cluster. ### Response #### Success Response (200) - **database** (object) - The full cluster object with connection credentials. - **id** (string) - The ID of the newly created cluster. - **status** (string) - The status of the cluster (e.g., creating). - **connection** (object) - Connection details. - **uri** (string) - The connection URI. ### Response Example ```json { "database": { "id": "db-new-222", "status": "creating", "connection": { "uri": "..." }, ... } } ``` ``` -------------------------------- ### list_app_regions Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Returns all regions where App Platform apps can be deployed, including slugs, continent, and default/disabled status. ```APIDOC ## list_app_regions — List supported App Platform regions ### Description Returns all regions where App Platform apps can be deployed, including slugs, continent, and default/disabled status. ### Method GET (assumed, based on listing action) ### Endpoint `/regions/apps` (assumed) ### Parameters None ### Response #### Success Response (200) - **Region** (string) - The name of the region. - **Slug** (string) - The unique identifier for the region. - **Continent** (string) - The continent the region is located in. - **Default** (string) - Indicates if this is the default region (Yes/No). - **Disabled** (string) - Indicates if the region is disabled for deployments (Yes/No). ``` -------------------------------- ### get_database_cluster_certificate Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Downloads the CA certificate for a database cluster, required for SSL-verified connections. ```APIDOC ## get_database_cluster_certificate ### Description Downloads the CA certificate for a database cluster, required for SSL-verified connections. ### Method GET ### Endpoint /v1/databases/{database_cluster_uuid}/certificate ### Parameters #### Path Parameters - **database_cluster_uuid** (string) - Required - The UUID of the database cluster. ### Response #### Success Response (200) - **ca** (object) - **certificate** (string) - Base64-encoded PEM certificate. ### Response Example ```json { "ca": { "certificate": "LS0tLS1CRUdJTi..." } } // base64-encoded PEM certificate ``` ``` -------------------------------- ### list_database_connection_pools Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Retrieves a list of all PgBouncer connection pools configured for a PostgreSQL cluster. ```APIDOC ## list_database_connection_pools ### Description Returns all PgBouncer connection pools configured for a PostgreSQL cluster. ### Method Tool ### Endpoint list_database_connection_pools ### Parameters #### Path Parameters - **database_cluster_uuid** (string) - Required - The UUID of the database cluster. ### Response #### Success Response (200) - **pools** (array) - A list of connection pools. - **name** (string) - The name of the connection pool. - **mode** (string) - The PgBouncer mode (e.g., "transaction"). - **size** (integer) - The size of the connection pool. - **db** (string) - The database associated with the pool. - **user** (string) - The user associated with the pool. - **connection** (object) - Connection details. - **uri** (string) - The connection URI. ### Request Example ```json { "tool": "list_database_connection_pools", "parameters": { "path": { "database_cluster_uuid": "db-abc-111" } } } ``` ### Response Example ```json { "pools": [ { "name": "backend-pool", "mode": "transaction", "size": 10, "db": "app_production", "user": "app_user", "connection": { "uri": "postgresql://app_user:secret@...?sslmode=require" } } ] } ``` ``` -------------------------------- ### list_databases_cluster Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt List all managed database clusters with their connection details, engine, version, status, and node count. ```APIDOC ## list_databases_cluster ### Description Returns all managed database clusters with their connection details, engine, version, status, and node count. ### Method GET ### Endpoint /v1/databases ### Parameters #### Query Parameters - **tag_name** (string) - Optional - Filter clusters by tag. ### Response #### Success Response (200) - **id** (string) - Database Cluster ID. - **name** (string) - Name of the database cluster. - **engine** (string) - Database engine (e.g., pg, mysql). - **version** (string) - Engine version. - **region** (string) - Datacenter region. - **status** (string) - Current status of the cluster. - **created_at** (string) - Timestamp of creation. - **number_of_nodes** (integer) - Number of nodes in the cluster. - **connection_uri** (string) - Connection string for the database. ### Response Example ``` Database Cluster ID: db-abc-111 Name: production-pg Engine: pg Version: 16 Region: nyc1 Status: online Created At: 2024-01-10T09:00:00Z Number of Nodes: 2 Connection URI: postgresql://doadmin:secret@production-pg.db.ondigitalocean.com:25060/defaultdb?sslmode=require ``` ``` -------------------------------- ### Commit App Rollback Source: https://context7.com/digitalocean/digitalocean-mcp/llms.txt Permanently applies a rollback, unpinning the app and resuming normal deployment operations. This action is irreversible. ```json Tool: commit_app_rollback Parameters: { path: { app_id: "abc-123" } } // Response: "App rollback committed successfully." ```