Add MCP bridge to claude-agent so Hermes can delegate to the real Claude Code CLI
New POST /mcp endpoint (Streamable HTTP transport, stateless — fresh McpServer+transport per request) exposing one tool, ask_claude_code: runs the real `claude` binary against a prompt, billed against the Pro/Max subscription rather than API credits. This works specifically because it's the actual claude CLI making the request server-side — the same reason Hermes itself can't authenticate with the subscription directly (proven earlier: Anthropic rejects the OAuth token from any client that isn't the real CLI's exact request fingerprint). Read-only: no Edit/Write/git-push/ git-commit tools, since this is a quick-answer bridge, not a repo editor. Tested end-to-end locally (built + ran the image, curled the full MCP handshake: initialize -> tools/list -> tools/call) before pushing — got a real 'pong' back from the actual claude CLI through the MCP protocol. To register it with Hermes (lives in its own data volume, not git — see .env.example comment): docker exec hermes hermes config set mcp_servers.claude-code.url http://claude-agent:3001/mcp docker exec hermes hermes config set 'mcp_servers.claude-code.headers.Authorization' 'Bearer <MCP_BRIDGE_KEY>'
This commit is contained in:
@@ -21,6 +21,12 @@ GITEA_REGISTRY_IMAGE=gitea.apps.williamturner.eu/<your-gitea-username>/<repo-nam
|
||||
# Run `claude setup-token` interactively (needs a browser + Claude Pro/Max subscription)
|
||||
# to generate this — it's a long-lived OAuth token, not an API key.
|
||||
CLAUDE_CODE_OAUTH_TOKEN=
|
||||
# Any random string — shared secret for claude-agent's /mcp bridge endpoint (see
|
||||
# agent/src/mcpBridge.js), which lets Hermes delegate a question to the real `claude`
|
||||
# CLI (billed against the subscription above) via MCP. Register it in Hermes with:
|
||||
# docker exec hermes hermes config set mcp_servers.claude-code.url http://claude-agent:3001/mcp
|
||||
# docker exec hermes hermes config set 'mcp_servers.claude-code.headers.Authorization' 'Bearer <this value>'
|
||||
MCP_BRIDGE_KEY=
|
||||
|
||||
# --- litellm (local LLM gateway — used by Hermes, see litellm-config.yaml) ---
|
||||
OPENROUTER_API_KEY=
|
||||
|
||||
Reference in New Issue
Block a user