Goose is Block's open-source autonomous AI coding agent that runs in the terminal and can take multi-step actions. Its MCP support is unique among popular AI apps: it uses YAML format instead of JSON, and has its own field naming conventions. The root key is extensions (not mcpServers), command becomes cmd, and env becomes envs. Timeout values are in seconds rather than milliseconds. Remote servers use uri instead of url. Each extension also gets an enabled flag and a name display field. Despite these differences, getmcp handles all the transformations automatically — you describe the server in canonical format and the Goose generator produces correct YAML.
Quick Install with getmcp
The fastest way to install MCP servers in Goose is with the getmcp CLI:
▸Config file not found: Goose creates ~/.config/goose/config.yaml on first run. Launch goose at least once before adding servers.
▸YAML parse error after manual edit: YAML is whitespace-sensitive. Use a YAML validator or let getmcp write the config — it uses the yaml library to ensure correct formatting.
▸Extension not loading: Run goose with verbose output (GOOSE_LOG_LEVEL=debug goose) to see extension loading errors in the output.
▸cmd field vs command: Goose uses cmd, not command. If you manually copy a config from another app, rename the field. The getmcp CLI handles this automatically.
▸Timeout unit mismatch: Goose expects timeout in seconds, not milliseconds. The getmcp generator converts automatically (dividing by 1000 and rounding up), but manual edits need to use the correct unit.