The Model Context Protocol (MCP) is an open standard that lets agents talk to external tools and data sources — APIs, databases, browsers, and services like GitHub or Linear. Connect an MCP server and its tools become callable by Geoff Code, subject to the same approval prompts as built-in tools.

Where servers are configured

Geoff Code reads MCP servers from mcp.json files at three scopes. On a name collision, later scopes override earlier ones: All three files use the same wrapper:
Project-root and project-local stdio servers spawn commands at session start. Only enable them in repositories you trust.
The fastest way to add or edit a server is the /mcp-config slash command inside the TUI — it asks which scope you want, shows you the current contents, and writes the entry for you. You can also edit the files directly.

stdio servers (local processes)

A stdio server is a local command Geoff Code launches and talks to over stdin/stdout. The minimal entry needs only command; transport is inferred, so you can omit it.
For project-root .mcp.json, stdio commands run from the project root by default, and relative cwd values resolve against the directory containing .mcp.json.

HTTP servers (remote)

A remote server needs a url. For servers that authenticate with a static bearer token, reference it indirectly through an environment variable rather than inlining the secret:
Servers that authenticate with OAuth take no token field — see Authentication below.

Optional fields

Both transports accept these common fields: The schema of record is McpServerStdioConfigSchema / McpServerHttpConfigSchema in the Geoff Code source.

Authentication

For MCP servers that require OAuth, run /mcp-config login <server> (or just /mcp-config and follow the prompt). Geoff Code prints the authorization URL and completes the callback for you. Surface the URL exactly as printed — it contains state and PKCE parameters that break if edited.

Reloading

MCP servers load at session start. After editing mcp.json, start a new session with /new or restart geoff for the change to take effect.

Security

  • MCP tool calls go through the same approval mechanism as every other tool — you confirm each one (except in yolo / auto modes).
  • Tool outputs are marked to mitigate prompt-injection attacks; still, only connect trusted servers and review high-risk operations before approving.
  • Never commit secrets as literals in mcp.json. Use bearerTokenEnvVar for HTTP servers; if a stdio entry must inline one in env, treat that file as sensitive.

Plugins

Bundle MCP servers and executable tools as installable packages.

Config Files

The rest of Geoff Code’s configuration.