How to connect DigitalOcean to Hermes Agent
Connect DigitalOcean to Hermes with ClawLink in one click — 48 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.


Manage droplets, databases, storage, and cloud infrastructure. Once connected, Hermes Agent can read and act on DigitalOcean from chat — pairing, token refresh, and tool wiring handled for you.
Most guides for giving Hermes Agent DigitalOcean access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical DigitalOcean setup: pair once in the browser and your always-on Hermes agent can act on DigitalOcean for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.
Copy this prompt into Hermes to install the plugin and pair your account.
Set up ClawLink for Hermes and tell me when it's ready.
1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin
3. I'll approve it in my browser, then reply "approved".
4. When I say approved, finish setup:
hermes clawlink finish
5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.Setup
It takes three steps to connect Hermes to DigitalOcean.
1Install and pair
Install the ClawLink plugin, then pair Hermes with a one-time browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable- 2
Connect DigitalOcean
One-click OAuth in the dashboard.
- 3
Use it from chat
Ask Hermes Agent: "What can you do with DigitalOcean?"
Install by command
The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin # prints an approval link — open it and approve
hermes clawlink finish # after approving in the browser
hermes clawlink testThen connect DigitalOcean in the ClawLink dashboard — a one-click OAuth approval, no API keys.
Verify the connection by asking Hermes:
List my droplets with digital_ocean_list_all_droplets and my domains with digital_ocean_list_all_domains, and give me a one-line summary of each with its id and status. Do not change anything yet.
Using a different agent?
The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:
npx -y @useclawlink/cli loginlogin opens the same browser approval and stores a credential locally. Once DigitalOcean is connected in the dashboard, that agent calls the same 48 DigitalOcean tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
DigitalOcean MCP for Hermes
Looking for a DigitalOcean MCP server for Hermes Agent? ClawLink connects DigitalOcean to Hermes Agent and exposes 48 DigitalOcean tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw DigitalOcean integration works the same way.
This page is about connecting your DigitalOcean account to Hermes so the agent can manage your infrastructure: droplets, domains, databases, and the rest, from chat. The other meaning of "connect digitalocean to hermes" is hosting Hermes itself on a Droplet, spinning up a server, running an install script, and pointing it at an LLM key, which is a different task entirely and not what this page does. On the account-connect meaning, the route the answer engines teach is to generate a Personal Access Token with Write scope and paste it into configs, or register your own OAuth app, and every one of their error answers assumes you own a token. Here you pair the Hermes plugin once in the browser, approve DigitalOcean's consent screen, and the 48 tools below manage your account from chat: no PAT, no app registration, and the credential lives server-side where revoking it means one dashboard click.
Connecting the account versus hosting Hermes on DigitalOcean
The head query for this page is read two ways, and the first sentence of this page picks a side. Here is the full map so the distinction is not discovered by accident:
- Connecting the account (this page). The DigitalOcean account you already have is linked to Hermes through hosted OAuth, and the 48 tools manage your infrastructure from chat. The credential is a server-side grant, not a token on your machine, and it is revoked from the dashboard.
- Hosting Hermes on a Droplet. The interpretation the search engines default to: create a Droplet, run the install script, configure the agent, and add your LLM API key. That is a different task, and it is what the AI Overview teaches for "how to connect digitalocean to hermes", which is why this page's intro states the distinction rather than letting the #16 position convert the wrong intent.
- The two compose. Nothing stops you from hosting Hermes on a Droplet and connecting the account through this page on the same team. The confusion is only when one is sold as the other.
Either meaning is legitimate; the failure mode is answering one with the other. This page owns the account-connect meaning, and the distinction is stated here so the answer engines can quote it instead of guessing.
What the Hermes Agent DigitalOcean integration can do
48 DigitalOcean tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 48.
30 of 48 DigitalOcean tools for Hermes
| Tool | What it does |
|---|---|
Digital ocean list all databases digital_ocean_list_all_databases | List all managed database clusters on your account |
Digital ocean list all domains digital_ocean_list_all_domains | Lists all DNS domains configured in your DigitalOcean account |
Digital ocean list all droplets digital_ocean_list_all_droplets | Lists all Droplets (virtual machines) in your DigitalOcean account with pagination support |
Digital ocean list all firewalls digital_ocean_list_all_firewalls | List all cloud firewalls configured in your DigitalOcean account |
Digital ocean list all images digital_ocean_list_all_images | List all images available on your account |
Digital ocean list all kubernetes clusters digital_ocean_list_all_kubernetes_clusters | List all Kubernetes clusters on your account |
Digital ocean list all load balancers digital_ocean_list_all_load_balancers | List all load balancers in your DigitalOcean account with pagination support |
Digital ocean list all snapshots digital_ocean_list_all_snapshots | List all snapshots available on your DigitalOcean account |
Digital ocean list all ssh keys digital_ocean_list_all_ssh_keys | Lists all SSH keys associated with your DigitalOcean account |
Digital ocean list all tags digital_ocean_list_all_tags | List all tags in your account |
Digital ocean list all volumes digital_ocean_list_all_volumes | List all block storage volumes available on your account |
Digital ocean list all vpcs digital_ocean_list_all_vpcs | List all VPCs on your account |
Digital ocean list apps digital_ocean_list_apps | List all App Platform apps in your DigitalOcean account |
Digital ocean list database options digital_ocean_list_database_options | Lists all available configuration options for DigitalOcean managed database clusters, including |
Digital ocean list domain records digital_ocean_list_domain_records | List all DNS records for a domain |
Digital ocean retrieve domain digital_ocean_retrieve_domain | Retrieves complete details about a specific domain including its TTL and DNS zone file |
Digital ocean retrieve domain record digital_ocean_retrieve_domain_record | Retrieve a specific DNS record for a domain by its record ID |
Digital ocean retrieve existing droplet digital_ocean_retrieve_existing_droplet | Retrieve detailed information about a specific DigitalOcean Droplet by its unique numeric ID |
Digital ocean retrieve existing image digital_ocean_retrieve_existing_image | Retrieve information about an image by ID or slug |
Digital ocean retrieve tag digital_ocean_retrieve_tag | Retrieve an individual tag by name |
Digital ocean retrieve vpc digital_ocean_retrieve_vpc | Retrieve details about a specific VPC by its ID |
Digital ocean create custom image digital_ocean_create_custom_image | Creates a custom image in DigitalOcean by importing a Linux VM disk image from a publicly |
Digital ocean create database cluster digital_ocean_create_database_cluster | Creates a new managed database cluster on DigitalOcean |
Digital ocean create new block storage volume digital_ocean_create_new_block_storage_volume | Create a new block storage volume |
Digital ocean create new domain digital_ocean_create_new_domain | Creates a new domain in DigitalOcean's DNS management system |
Digital ocean create new domain record digital_ocean_create_new_domain_record | Create a new DNS record for a domain |
Digital ocean create new droplet digital_ocean_create_new_droplet | Create a new Droplet |
Digital ocean create new firewall digital_ocean_create_new_firewall | Creates a new cloud firewall with custom inbound and outbound rules |
Digital ocean create new kubernetes cluster digital_ocean_create_new_kubernetes_cluster | Creates a new DigitalOcean Kubernetes (DOKS) cluster with managed control plane |
Digital ocean create new load balancer digital_ocean_create_new_load_balancer | Create a new load balancer |
Try it: find the DigitalOcean tool you need
Browse the 30 DigitalOcean tools
Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.
Example prompts
List my droplets with digital_ocean_list_all_droplets and my domains with digital_ocean_list_all_domains, and give me a one-line summary of each with its id and status. Do not change anything yet.
Get the details of droplet <id> with digital_ocean_retrieve_existing_droplet and tell me its spec, region, and current status, and whether it looks oversized for what it runs.
Create an A record with digital_ocean_create_new_domain_record for domain <domain>, name "status", value <ip>, TTL 60. Show me the arguments before sending, since this changes live DNS.
List the records for domain <domain> with digital_ocean_list_domain_records and tell me which ones are dangling or point at old infrastructure.
How the DigitalOcean tools behave
Details that decide whether a DigitalOcean prompt audits the right droplet or provisions something that costs money.
- The list tools are the entry point.
digital_ocean_list_all_droplets,digital_ocean_list_all_domains, and the rest of the list-all family are where real ids come from, and every object is addressed by id, never by name. An id from documentation fails like a typo. - Creation and deletion are real money.
digital_ocean_create_new_dropletbills by the hour anddigital_ocean_create_new_firewallchanges network rules; deletion is not recoverable from chat, so a confirmation step before either is the habit that keeps an audit cheap. - DNS records are live.
digital_ocean_create_new_domain_recordanddigital_ocean_list_domain_recordscover the DNS surface, and a record change is visible to the internet immediately. - SSH keys and images are readable. The key and image tools answer provisioning questions before a droplet is created, which is the difference between a clean create and a droplet nobody can log into.
- Firewalls are account-level objects. They attach to droplets by id, so creating one without naming the droplets it should protect is a valid call that does nothing visible, a classic silent trap for an agent.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want DigitalOcean working from chat.
| Manual | ClawLink | |
|---|---|---|
| Connection flow | Register a DigitalOcean app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect DigitalOcean through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for DigitalOcean. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right DigitalOcean actions to the runtime in a format your agent can reliably use. | 48 tools for DigitalOcean are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes DigitalOcean to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect DigitalOcean in the browser, and the 48 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.
Troubleshooting
Hermes paired but still can't use DigitalOcean
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.
Connection succeeds but no tools appear
Reconnect DigitalOcean from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.
"Tool schema not loaded yet" error when calling DigitalOcean tools
DigitalOcean tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every DigitalOcean call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.
DigitalOcean returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.
DigitalOcean returns 401 "invalid token" although the account shows as connected
The causes the search results teach for this error are the manual route's: the Authorization header must carry Bearer dop_v1_... with the actual token value rather than the token's display name, environment variables pointing at the wrong thing, and "generate a new PAT" as the blunt fix. On a hosted connection the header is handled, so the remaining causes are two. First, the connection's OAuth grant was revoked or expired, which happens when the DigitalOcean account's security settings change, and reconnecting from the dashboard re-runs the consent flow. Second, only some calls fail, which is a permissions shape rather than a token shape. What is not the cause is anything in ~/.hermes or the plugin pairing: the plugin token and the DigitalOcean grant are different credentials, and search answers that conflate them will send you down the wrong path.
Ask the agent to diagnose it:
Call digital_ocean_list_all_droplets to check which account the connection acts as, then quote the exact error from the failed call. If it is an invalid-token error I will reconnect DigitalOcean from the dashboard; do not retry before then.DigitalOcean returns 403 or "insufficient permissions" on one action while others work
The causes the search results teach for this error are token-level: a PAT lacking the required scopes, or a team account on a billing hold. In a hosted connection the token-scope cause does not exist, and the real checks are account-level. The connected account must hold the team role the operation needs, and a team with a billing hold gets permission errors across the API even when reads work. Second, the agent may have sent a placeholder or guessed id (like "YOUR_ID" or a droplet id from documentation) instead of a real one: ask it to run digital_ocean_list_all_droplets or digital_ocean_list_all_domains first and retry with a real id from those results. Most 403s at this stage are one of these two, not a ClawLink bug.
Ask the agent to diagnose it:
Run digital_ocean_list_all_droplets and show me the real ids, then quote the exact 403 text from the failed call. Retry with a real id from that list, and if the error mentions billing, tell me before reconnecting.DigitalOcean starts returning 429 or the agent stalls partway through an audit
DigitalOcean rate-limits its API, and an agent walking a large account, every droplet, then every domain, firewall, and database, one call at a time, is exactly the traffic shape that meets the limit. The response is not to retry immediately, which lands in the same window, but to change the shape of the work: use the list tools to page through results instead of fetching one object per call, and have the agent tell you what it intends to enumerate before it starts. If a full audit is genuinely needed, running it in stages across turns is more reliable than one sweep.
Ask the agent to diagnose it:
Tell me how many DigitalOcean calls you have made in the last minute and what you were enumerating. Quote any rate-limit text from the last response. Do not call DigitalOcean again until I reply.DigitalOcean tools are missing, or one tool name is not found
Two different failures. If Hermes shows no DigitalOcean tools at all, the connection or pairing is incomplete: confirm the plugin was installed with --enable, that both hermes clawlink begin and hermes clawlink finish ran, that DigitalOcean shows as connected in the dashboard, and start a fresh chat. If most tools work and a single name fails, that name is wrong rather than missing: the error lists the closest real tools, and the real catalog is one clawlink_list_tools --integration digitalocean away. There is also a first-call timing case unique to this setup: schemas load on demand, so the opening DigitalOcean call in a fresh session can arrive before the catalog and needs one retry. What does not apply is the advice for this symptom that assumes a local MCP init failure, clearing an npx cache and fixing an mcp.json, which is what the search results teach.
Ask the agent to diagnose it:
List the DigitalOcean tools you actually have access to. If there are none, run clawlink_list_integrations and confirm the plugin pair, then tell me what you see. If there are, tell me which one lists droplets and use that exact name.OAuth finished in the browser but the account is still missing
Try reconnecting DigitalOcean and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.
FAQ
Is there a Hermes Agent DigitalOcean integration?
Yes. ClawLink is the fastest way to connect Hermes to DigitalOcean: link your DigitalOcean account once in the browser and Hermes Agent can call the DigitalOcean API through 48 ready-made tools — no custom code or token handling.
How do I connect DigitalOcean to Hermes with ClawLink?
Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect DigitalOcean in the dashboard and Hermes can use it from the next message — no config files or API keys to manage.
How long does it take to connect DigitalOcean to Hermes Agent?
About two minutes. Sign in, click Connect next to DigitalOcean in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.
Why use ClawLink instead of wiring DigitalOcean up myself?
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want DigitalOcean working from chat.
Do I need a DigitalOcean personal access token?
No. The manual flow teaches generating a Personal Access Token with Write scope, or registering an OAuth app and managing client secrets; the AI Overview answers the 401 query with "generate a new PAT". Here the authorization happens on DigitalOcean's consent screen in the browser and the connection is stored server-side. The engines' insistence that "a credential is always required" is true and is exactly the point: the hosted connection is that credential, so you never generate, paste, or accidentally leak a token, and disconnecting from the dashboard revokes the agent's access immediately.
Is this page for hosting Hermes on a Droplet?
No. Hosting Hermes means creating a server, running the install script, and managing it yourself, which is the interpretation the search engines assume for "connect digitalocean to hermes". This page is the other meaning: connecting the DigitalOcean account you already have to Hermes so the agent can manage your droplets, domains, and other resources from chat. The two are complementary: you could host Hermes on a Droplet and connect this way on the same account, but the setup on this page is about account access, not server provisioning.
What can the agent do in DigitalOcean?
The 48 tools cover the infrastructure surface: droplets and their snapshots, domains and DNS records, firewalls, databases, Kubernetes clusters, load balancers, volumes, SSH keys, and images. The writes to be deliberate about are creating and destroying droplets, firewalls, and domain records, because those are real infrastructure with real cost and availability consequences. Reads, starting with digital_ocean_list_all_droplets and digital_ocean_list_all_domains, are the safe first steps, and the list tools are built for exactly the audit shape an agent should run before touching anything.
Is it safe to connect DigitalOcean to an always-on Hermes agent?
The AI Overview answers this query with the usual yes-if-scoped framing, and the hosted setup is the scoped shape: the connection is a single OAuth grant, there is no token to over-scope or leak, and revocation is one dashboard click. The behavioral half is yours and matters more here than on most providers, because the account controls billable infrastructure. Start with reads, require a confirmation step before creating or destroying anything, and treat any fetched content as untrusted input. A droplet deletion is not recoverable from chat.
Hermes paired but still can't use DigitalOcean
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.
Related
Hermes GitHub integration
Manage repositories, issues, pull requests, and workflows
PagerDuty
Manage incidents, on-call schedules, and services
SafetyCulture
SafetyCulture (formerly iAuditor) is a workplace operations platform that enables teams to conduct digital inspections, manage audits, track issues, schedule tasks, and maintain compliance through mobile and web applications.