3a9ff5e740
855 deleted the HTTP /mcp route and pointed agents at ws://...crdt-sync, but Claude Code's .mcp.json doesn't speak ws:// and the rendezvous WS never had MCP method handlers wired up — so every spawned Claude Code agent (gateway-routed and local) booted with zero huskies tools and died on --permission-prompt-tool=mcp__huskies__prompt_permission. Restore mcp_post_handler / mcp_get_handler / handle_initialize, re-add the /mcp route, and revert all three .mcp.json writers to emit http://localhost:{port}/mcp with explicit "type": "http". Reuses the already-extracted gateway::jsonrpc types and the surviving dispatch_tool_call / list_tools surfaces — net add ~140 lines. Federation work is unaffected: /crdt-sync continues to do CRDT sync, which is what it was actually doing. MCP-over-WebSocket for cross-LAN agents was never wired up by 855 and can be done as a proper follow-up with a regression test that boots a real claude and verifies tool registration. Verified end-to-end: /mcp initialize, tools/list (74 tools incl. prompt_permission), and tools/call all respond correctly from inside the rebuilt container. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>