[1] MCP initialize handshake + serverInfo PASS: handshake ok: serverInfo: {"name": "codegraph", "version": "1.6.0"} [2] tools/list enumerates the default single-tool surface PASS: , includes codegraph_explore (single-tool default per README) [3] tools/call codegraph_explore positive: real call chain from the indexed fixture PASS: explore over MCP returns the route->service->db chain (23 lines) [4] tools/call negative: projectPath with no index returns guidance, not an error dump PASS: unindexed path -> guidance text, exit 0 [5] CODEGRAPH_MCP_TOOLS re-enables the hidden tool surface PASS: env var expands the tool list: [6] Hermes Agent wiring (isolated HERMES_HOME): install --target=hermes PASS: config.yaml gains mcp_servers.codegraph AND platform_toolsets mcp-codegraph entry [7] pre-existing Hermes config is preserved (upsert, not clobber) PASS: model, other MCP server, and codegraph block coexist [8] Hermes uninstall removes exactly the codegraph entries PASS: codegraph entries removed, other config intact [9] --print-config hermes is non-destructive PASS: print-config renders the snippet without writing files [10] version alignment: installed bundle vs npm registry latest PASS: npm latest 1.6.0 == installed 1.6.0 == GitHub tag v1.6.0