Hermes
Wire Caura into Nous Research's Hermes Agent CLI over MCP.
Hermes Agent speaks MCP. Three commands.
Install
hermes config set CAURA_API_KEY mc_xxx
hermes config set mcp_servers.caura.url https://caura.ai/mcp
hermes config set mcp_servers.caura.headers.X-API-Key '${env:CAURA_API_KEY}'
The first command writes the key to ~/.hermes/.env; the other two register the
server in ~/.hermes/config.yaml. Keeping the key behind ${env:…} means the
config file itself carries no secret.
Now start a new session — Hermes fixes its tool inventory at session start, so a session that was already running won't pick Caura up.
Verify the wiring:
hermes mcp test caura
✓ Connected
✓ Tools discovered: 12hermes mcp list and hermes mcp test may print Config ref '${env:CAURA_API_KEY}': CAURA_API_KEY is not set before the result. If the
test then reports Connected, the reference did resolve — the notice is
emitted by an earlier config pass that hasn't read .env yet.
Give the agent an identity
This is the one step people miss. A tenant-scoped mc_ key carries no agent
identity, so every Caura call must name the agent:
MISSING_AGENT_ID — This call reached the gateway with a tenant-scoped
credential, which carries no agent identity, so agent_id must be supplied
explicitly.Two ways to satisfy it:
- Tell the agent its name, so it passes
agent_idon every call. Put it in your Hermes rules or the prompt: "You arehermes-prod-1. Pass that asagent_idon every caura call." - Provision an agent-scoped key (recommended for anything beyond one
laptop). Identity is bound at mint time and the gateway injects it for you, so
no
agent_idargument is needed and you get trust gating, fleet membership, and per-agent keystones. See Per-agent keys, then swap that key into theCAURA_API_KEYcommand above.
Using it
Just talk to the model:
Remember that this repo uses pnpm, not npm.
What did we decide about the auth flow?
The tool calls happen automatically. See the full tool surface in the agent skill at /docs/agents.
Tips
- Hermes won't let the agent install this for you. Writes to
~/.hermes/config.yamlare refused as security-sensitive configuration (Agent cannot modify security-sensitive configuration). Run the three commands yourself, or ask the agent to run thehermes configCLI rather than edit the file. - Caura is additive. Hermes keeps its built-in
MEMORY.md/USER.mdmemory enabled alongside thecaura_*tools. If Caura should be the record of truth, say so in your rules — otherwise the agent may quietly write to its local files instead. - Use a per-fleet API key so memories from different projects stay separate.
Capture work automatically — the Interviewer
The steps above let Hermes call Caura. A Hermes adapter for the
Interviewer — Caura's reflective write path, which reads an
agent's own work trail on a schedule and synthesizes typed memories with no
caura_write calls — is planned. See
Interviewer → Setup for the harnesses supported today.