How to add an MCP server to Goose
Goose reads its MCP servers from ~/.config/goose/config.yaml and connects to them over stdio (a local process) and Streamable HTTP.
119,253 of the 123,011 servers we can write a config for work in it.
A local server
A local server runs on your machine, started by Goose from its package. It needs Node.js installed first. For example, Azure MCP Server goes in ~/.config/goose/config.yaml:
extensions:
"azure":
type: stdio
name: "azure"
enabled: true
cmd: "npx"
args: ["-y", "@azure/[email protected]", "server", "start"]
env_keys: []
envs: {}
timeout: 300 A remote server
A remote server runs on its publisher's machines, and Goose connects to its address. Nothing needs installing. For example, Context7 goes in ~/.config/goose/config.yaml:
extensions:
"context7":
type: streamable_http
name: "context7"
enabled: true
uri: "https://mcp.context7.com/mcp"
headers: {}
env_keys: []
envs: {}
timeout: 300 Which servers work in Goose
Goose can send a key in a header, so the 3,250 servers that need one work in it.
| Runs | Servers | In Goose? |
|---|---|---|
| Local (stdio) | 85,194 | Works |
| Remote, Streamable HTTP | 30,856 | Works |
| Remote, Streamable HTTP, key in a header | 3,203 | Works |
| Remote, HTTP+SSE | 3,711 | No |
| Remote, HTTP+SSE, key in a header | 47 | No |
If the server does not show up
- A remote server that does not connect
- The environment variables servers ask for
- Goose's own MCP documentation
Matches the official docs The configs follow Goose's MCP docs, read on 2026-10-31.