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

Every step for this server in Goose

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

Every step for this server in Goose

Which servers work in Goose

Goose can send a key in a header, so the 3,250 servers that need one work in it.

RunsServersIn Goose?
Local (stdio)85,194Works
Remote, Streamable HTTP30,856Works
Remote, Streamable HTTP, key in a header3,203Works
Remote, HTTP+SSE3,711No
Remote, HTTP+SSE, key in a header47No

If the server does not show up

Matches the official docs The configs follow Goose's MCP docs, read on 2026-10-31.

Goose on plug.directory · Best MCP servers for Goose