Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to DigitalOcean

Scalekit connector
Open markdown

The DigitalOcean connector lets your AI agent act in each user's DigitalOcean account. Each user signs in to DigitalOcean once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 120 tools.

Tools
120
What they doRead · write · destructive
63 · 36 · 2163 read36 write21 destructive
Users sign in with
OAuth app
Your own DigitalOcean app

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the DigitalOcean connection

    In AgentKit > Connections, create a DigitalOcean connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register an OAuth app

    DigitalOcean connections use your own OAuth app. Register one with DigitalOcean and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the DigitalOcean connection.

  5. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'digitalocean'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize DigitalOcean:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'digitalocean_account_get',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • digitalocean_account_getGet the DigitalOcean account that the connection is authorized for.Read-only

    Get Account

    Get the DigitalOcean account that the connection is authorized for. Returns the account's email, UUID, status, email verification flag, team, and limits such as droplet_limit, floating_ip_limit and volume_limit. Use digitalocean_account_get to check who is connected and what limits apply. Use digitalocean_billing_balance_get for the account balance.

    Inputs

    This tool takes no inputs.

  • digitalocean_action_getGet one action by its ID, such as a Droplet power-off or a volume attach.Read-only

    Get Action

    Get one action by its ID, such as a Droplet power-off or a volume attach. Returns the action's type, status (in-progress, completed, errored), resource_id, resource_type, started_at and completed_at. Use digitalocean_action_get to poll an action returned by another tool until it completes.

    Inputs

    action_idintegerrequired
    Numeric ID of the action, as returned by an action or create tool. Example: 36804636.
  • digitalocean_actions_listList every action taken on the account (power events, resizes, attaches and more), newest first.Read-only

    List Actions

    List every action taken on the account (power events, resizes, attaches and more), newest first. Returns a page of actions with id, type, status, resource_id, resource_type, started_at and completed_at. Use digitalocean_actions_list for an account-wide audit. Use digitalocean_droplet_actions_list for a single Droplet.

    Inputs

    pageinteger
    Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default 1
    per_pageinteger
    Number of results per page, 1 to 200. Defaults to 20. Example: 50.default 20
  • digitalocean_app_deployment_getGet one deployment of an App Platform app.Read-only

    Get App Deployment

    Get one deployment of an App Platform app. Returns the deployment's phase, progress (steps with status and errors), cause, spec, services and timestamps. Use digitalocean_app_deployment_get to see why a deployment failed or how far it has got. Use digitalocean_app_deployment_logs_get for its logs.

    Inputs

    app_idstringrequired
    UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
    deployment_idstringrequired
    UUID of the app deployment. Get it from digitalocean_app_deployments_list or the app's active_deployment.id. Example: 3aa4d20e-5527-4c00-b496-601fbd22520a.
  • digitalocean_app_deployment_logs_getGet links to the logs of one deployment of an App Platform app, for all components.Read-only

    Get App Deployment Logs

    Get links to the logs of one deployment of an App Platform app, for all components. Returns live_url (real-time logs for an in-progress or active deployment) and historic_urls (archived logs). Use digitalocean_app_deployment_logs_get to read build or deploy logs of a specific deployment, such as a failed one. Use digitalocean_app_logs_get for the active deployment.

    Inputs

    app_idstringrequired
    UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
    deployment_idstringrequired
    UUID of the app deployment. Get it from digitalocean_app_deployments_list or the app's active_deployment.id. Example: 3aa4d20e-5527-4c00-b496-601fbd22520a.
    typestringrequired
    Which logs to fetch: BUILD (build output), DEPLOY (deploy output), RUN (runtime logs), RUN_RESTARTED (logs of crashed or restarted instances) or AUTOSCALE_EVENT. Example: RUN.one of BUILDDEPLOYRUNRUN_RESTARTEDAUTOSCALE_EVENT
    pod_connection_timeoutstring
    How long to wait for a component instance if it is not immediately available, as a duration such as 30s or 3m. Defaults to 3m.
  • digitalocean_app_deployments_listList the deployments of an App Platform app, newest first.Read-only

    List App Deployments

    List the deployments of an App Platform app, newest first. Returns a page of deployments with id, cause, phase (PENDING_BUILD, BUILDING, DEPLOYING, ACTIVE, ERROR, CANCELED, SUPERSEDED), progress, created_at and the spec used. Use digitalocean_app_deployments_list to find a deployment ID or a failed deployment. Use digitalocean_app_deployment_get for one deployment.

    Inputs

    app_idstringrequired
    UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
    deployment_typesarray
    Only return deployments of these types: MANUAL, DEPLOY_ON_PUSH, MAINTENANCE, MANUAL_ROLLBACK, AUTO_ROLLBACK, UPDATE_DATABASE_TRUSTED_SOURCES, AUTOSCALED. Example: ["MANUAL", "DEPLOY_ON_PUSH"].
    pageinteger
    Page number of results to return, starting at 1. Use with per_page; the response's links.pages.next URL shows whether more pages exist. Example: 2.default 1
    per_pageinteger
    Number of results per page, 1 to 200. Defaults to 20. Example: 50.default 20
  • digitalocean_app_getGet one App Platform app by ID.Read-only

    Get App

    Get one App Platform app by ID. Returns the app's spec, live_url, default_ingress, active_deployment (with phase and progress), in_progress_deployment, last_deployment_active_at, region and project_id. Use digitalocean_app_get to see an app's configuration and current deployment. Use digitalocean_app_health_get for component health.

    Inputs

    app_idstringrequired
    UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.
  • digitalocean_app_health_getGet the health of an App Platform app's components.Read-only

    Get App Health

    Get the health of an App Platform app's components. Returns each component's state, cpu and memory usage, and replica counts. Use digitalocean_app_health_get to check whether an app is running well. Use digitalocean_app_logs_get to read its logs.

    Inputs

    app_idstringrequired
    UUID of the App Platform app. Get it from digitalocean_apps_list. Example: 4f6c71e2-1e90-4762-9fee-6cc4a0a9f2cf.