Skip to main content
Hermes Agent is Nous Research’s open-source, self-improving agent. It runs in the terminal, on messaging platforms and as a desktop app, and it connects to remote MCP servers such as Danube from one config file.

Prerequisites

Install Hermes Agent (Linux, macOS, WSL2, Termux):
Windows (PowerShell):
Verify the installation:

Setup

1

Add the Danube MCP Server

hermes mcp add registers a remote server, prompts for its credential and probes it for tools:
Answer yes when asked whether the server requires authentication, then paste your Danube API key at the API key / Bearer token prompt. Hermes writes the key to ~/.hermes/.env as MCP_DANUBE_API_KEY and sends it as Authorization: Bearer, which Danube accepts in place of the danube-api-key header.Hermes then connects, lists Danube’s tools and asks which to enable. Choose Enable all unless you want a smaller surface (see Fewer tools per session).
2

Verify Connection

The test connects and prints the tools it found. hermes mcp list shows every configured server and whether it is enabled.
3

Use it

Start a session and ask for something Danube can do:
Hermes registers MCP tools with a server prefix, so Danube’s appear as mcp__danube__search_tools, mcp__danube__execute_tool and so on. You never need to type those names; Hermes picks them during normal reasoning.

Edit the config directly

Hermes reads MCP servers from ~/.hermes/config.yaml (%LOCALAPPDATA%\hermes\config.yaml on Windows) under mcp_servers. This block is equivalent to the CLI setup above, using Danube’s own header instead of a bearer token:
To keep the key out of the config file, reference an environment variable instead. Hermes resolves ${VAR} in headers at connect time from ~/.hermes/.env (falling back to the process environment):
If a Hermes session is already running, type /reload-mcp to reconnect with the new config. Otherwise the next hermes chat picks it up.

OAuth instead of a pasted key

Danube’s MCP server also supports the MCP OAuth 2.1 flow with PKCE and dynamic client registration, which Hermes handles automatically:
On first connect Hermes opens your browser to Danube’s authorization page, where you enter your API key once. Tokens are cached at ~/.hermes/mcp-tokens/danube.json and refreshed automatically. On a headless host, run hermes mcp login danube and follow the printed URL, or paste the redirect URL back at the prompt.

Coming from Claude Code?

hermes import-agent claude-code migrates the mcpServers block from ~/.claude.json (along with skills and instructions) into mcp_servers in Hermes’ config. If Danube is already connected in Claude Code, the import carries it over; credentials are never imported, so re-add the key as shown above.

Fewer tools per session

Danube exposes 31 MCP tools and Hermes registers every enabled one at session start, which costs context. Two ways to trim the list:
  • Ask Danube for a tool group on the connection URL. ?tools=core keeps search, execute, describe, fetch_result, store_credential, report_tool and set_parameter_defaults; a comma list such as ?tools=core,workflows adds a group (skills, workflows, wallet, feedback):
  • Or filter on the Hermes side with tools.include / tools.exclude. hermes mcp configure danube reopens the interactive checklist you saw at install time.

Troubleshooting

The installer links hermes into ~/.local/bin (/usr/local/bin when run as root). Open a new shell, or add it to your PATH:
  • Verify your API key is correct
  • For the header form, ensure the header name is exactly danube-api-key (lowercase)
  • For the hermes mcp add form, check MCP_DANUBE_API_KEY in ~/.hermes/.env holds the bare key (Hermes strips a leading Bearer on save, but a wrapped or truncated paste still fails)
  • Generate a new API key from danubeai.com/dashboard/api-keys
  • Check your internet connection
  • Verify the URL is correct: https://mcp.danubeai.com/mcp
  • Test the health check: curl https://mcp.danubeai.com/health
  • Raise connect_timeout (default 60 s) on the server entry in config.yaml
  • Run hermes mcp test danube to confirm the server connects and lists tools
  • Run hermes mcp list and check the server is not enabled: false (a failed hermes mcp add offers to save the entry disabled)
  • Type /reload-mcp in a running session after editing config.yaml
  • If you filtered tools, check tools.include in config.yaml or re-run hermes mcp configure danube
Both work. hermes mcp add always writes Authorization: Bearer ${MCP_DANUBE_API_KEY}; replace the headers block in config.yaml with danube-api-key: "${MCP_DANUBE_API_KEY}" if you prefer Danube’s native header. The key in ~/.hermes/.env stays the same.