This page is a working reference for theDocumentation Index
Fetch the complete documentation index at: https://docs.getgaal.com/llms.txt
Use this file to discover all available pages before exploring further.
mcps: block. For the conceptual model, see Concepts → MCP servers.
Every recipe below uses the registry-resolved form: list the target agents and the scope, and let gaal find the right JSON file. The legacy target: field is deprecated — see the migration recipe at the bottom.
Filesystem server (inline stdio)
~/.claude.json):
Server with environment variables
${GITHUB_TOKEN} is not expanded by gaal — the literal string ${GITHUB_TOKEN} is written into the JSON. The agent process resolves environment variables when it launches the server. See Environment & secrets.
Install one server in many agents
List the agents in a single entry. gaal fans the entry out to each one’s MCP config file.Native HTTP server
For agents that accept remote MCP entries, write the endpoint directly:HTTP server with headers
env: for secrets; gaal writes the environment variable name for target formats that support env-backed headers.
SSE (HTTP+SSE) server
For servers still on the older HTTP+SSE transport:mcp-remote under command and args.
Pull config from a remote URL
When the upstream maintainer publishes the canonical JSON, point at it instead of duplicating the spec.mcpServers object. gaal downloads it and merges the matching entry into each target.
source: and inline: are mutually exclusive.
VS Code (Copilot, Cline, Roo)
VS Code-family agents share~/.vscode/settings.json as their MCP config. Just list them like any other agent — gaal resolves all three to the same file and writes once.
mcpServers key while leaving every other VS Code setting in place.
Common targets
The destination file is resolved from the agent registry. For reference:| Agent | Resolved target (global: true) |
|---|---|
| Claude Code | ~/.claude.json |
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Cursor | ~/.cursor/mcp.json |
| Codex | ~/.codex/config.toml |
| Windsurf | ~/.codeium/windsurf/mcp_settings.json |
| Continue | ~/.continue/config.json |
| VS Code (Copilot, Cline, Roo) | ~/.vscode/settings.json |
| Goose | ~/.config/goose/config.yaml |
| Gemini CLI | ~/.gemini/settings.json |
| Warp | ~/.warp/launch_configurations/mcp.json |
Removing an entry
Removing anmcps[] entry from gaal.yaml does not remove it from the target file unless you pass --prune. Without --prune, gaal stops managing it but leaves the JSON intact.
Migrating from target:
Earlier versions required an explicit target: path on every entry. That field still works but logs a deprecation warning. Replace each entry with agents: + global::