Authorization: Bearer <token>. Scripts, MCP, and CI use a SEAOTTER access key (so_…). The signed-in dashboard uses a Clerk session JWT. Hermes runtime credentials on each agent are a separate secret — do not put api_server_key in MCP config.
Every authenticated control-plane request uses:
SEAOTTER access keys (so_…)
Use for: scripts, CI, SDKs, MCP (SEAOTTER_API_KEY), and the interactive playground on this docs site.
Use with MCP
The@ryanseaotter/mcp-server package reads the key from the MCP server environment:
.cursor/mcp.json in a shared repo — use a local or user-level config.
Clerk session JWT
Use for: the SEAOTTER web app at seaotter.dev only.
Clerk cookies and short-lived session tokens are not for scripts or the docs playground. Generate an API key instead.
What not to mix up
Errors
Missing or invalid bearer →401 with {"detail":"…"}. See Errors.
