fix(doctor): read Amp and Goose MCP registrations instead of calling them unreadable

Merged
FM
4d ago
+94-0

What

egc doctor reported the Amp and Goose MCP registrations as unreadable even when egc init had registered the servers. The MCP section only had readers for json, claude-cli, toml, zed-context-servers, opencode-mcp and crush-mcp, so the amp-settings and goose-yaml target formats fell through to "no reader for the format".

Change

  • Add a reader for amp-settings (JSON under the amp.mcpServers key the registrar writes).
  • Add a reader for goose-yaml (the YAML extensions list, each with a stdio transport).
  • Add a test for both readers, plus a guard that fails if any registration target format lacks a doctor reader, so a new target cannot reintroduce this gap.

Test

node --test tests/lib/doctor-mcp-readers.test.js passes all four cases: the two readers, an empty-key case, and the every-format-has-a-reader guard.


Summary by cubic

egc doctor now reads Amp and Goose MCP registrations instead of reporting them as unreadable when egc init had registered the servers.

  • Adds a JSON reader for the amp-settings format, reading servers from the amp.mcpServers key.
  • Adds a YAML reader for the goose-yaml format, reading servers from the extensions list.
  • Adds tests for both readers and a guard that fails if any registration target format lacks a doctor reader.