fix(supervise): provision MCP via claude mcp add #25
Reference in New Issue
Block a user
Delete Branch "supervise-mcp-add-via-cli"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The previous provisioner wrote
~/.claude/settings.jsonwith anmcpServersentry — but claude-code doesn't read its MCP servers from that path. Inside a bottle,/mcpshowed "No MCP servers configured" even though the sidecar was running.Switch to the official
claude mcp addcommand run via docker exec:claude-code owns its config file format (
~/.claude.jsonshape, key names, scope semantics) and has changed it between versions. The official command writes to the right place in the right shape for whatever version is installed.Failure is logged but not fatal — the bottle still works; the warning surfaces the manual
docker execcommand to retry.claude mcp add, not raw settings.jsonThe previous provisioner wrote ~/.claude/settings.json with an mcpServers entry — but claude-code doesn't read its mcpServers from that path. Inside a bottle, /mcp showed "No MCP servers configured" even though the sidecar was running. Switch to the official `claude mcp add` command run via docker exec: docker exec -u node <agent> \ claude mcp add --scope user --transport http supervise <url> claude-code owns its config file format (~/.claude.json shape, key names, scope semantics) and has changed it between versions. The official command writes to the right place in the right shape for whatever version is installed. Failure is logged but not fatal — the bottle still works; you just have to register the server manually with the command surfaced in the warning. Worst case is a bad agent claude-code version, not a bad bottle. To fix an already-running bottle without restarting, the user can run the same `docker exec` command directly. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>d5fa0a145eto0e2fc97aa8supervisehostname likecred-proxyWhen the operator opens a pipelock-block proposal in the detail view (Enter / 'v'), append a green-coloured line: → would allow host: api.github.com so what's actually about to change is obvious at a glance. The full failed URL stays above the new line (the path is operator context — pipelock can't enforce it, just records intent). - _detail_lines now returns (text, attr) tuples; pipelock-block appends the host-extract line tagged with the green color pair. - _detail_view threaded the green_attr through from the main loop (matches the new-proposal highlight pattern from earlier in this PR). - Best-effort URL parsing; unparseable payloads skip the highlight line rather than render a misleading blank host. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>