My tool connects but shows no tools
This is the most common first-run issue. Work through it in order:1
Check the agent has grants
A brand-new agent is default-deny — it sees nothing until you grant it.
Run
holm show agent <name>; if it says none granted, add access
with holm grant <agent> <server>.2
Check the server is running
Run
holm show server <name>. If the status is stopped or the daemon
is down, start it with holm start (or holm status to check). Adding
a server tells a running daemon to start it automatically, so if it isn’t
running, the daemon is probably down.3
Check the server didn't fail to start
If
holm show server <name> reports failed, it prints the error —
usually a bad --command (wrong path, missing npx, etc.). Fix the command:
holm remove server <name> then holm add server <name> --command "...".4
Reconnect the tool
Some tools only fetch the tool list when they first connect. If you granted access
after connecting, reconnect (or restart) the tool so it re-lists tools.
401 Unauthorized
The Bearer token is missing, malformed, or not a valid access key.- Use the full access key (
steer_sk_...), not the truncated prefix shown byholm show agent. The full key is only printed once, byholm add agent/holm rotate agent— if you lost it, rotate to get a new one:holm rotate agent <name>. - If you rotated the key, the old one stops working immediately — update the tool with the new key.
- If you removed and re-created the agent, its old key is dead even if the name is the same.
The daemon isn’t running
holm start, or run it in the foreground for debugging with
holm serve (logs go to stderr).
Port already in use
Ifholm serve reports the port is taken, another Steerholm instance (or some
other process) is on 127.0.0.1:4767. Stop the other one, or bind a different
port with holm serve --port <port> (and point the agent at the new port).
”Server ‘X’ is not currently added” when granting
holm grant warns when the server name isn’t registered yet. Grants are
allowed to reference a not-yet-added server, but usually this means a typo or a
missing holm add server. Check holm list servers.
A tool call returns SERVER_UNAVAILABLE (-31002)
The downstream MCP server crashed or is unreachable. Checkholm show server <name> for a failed state and its error, then fix the
command and re-add it. The daemon also retries failed servers periodically, so a
transient failure may clear on its own. See Error codes
for the full list.