Skip to content

MCP clients

graymatter init auto-wires every supported client at once. Existing entries from other MCP servers are merged, never overwritten.

Client Config file Scope
Claude Code .mcp.json project
Cursor .cursor/mcp.json project
Codex (OpenAI) ~/.codex/config.toml home
OpenCode opencode.jsonc project
Antigravity (Google) mcp_config.json opt-in
Windsurf .windsurf/mcp.json project
VS Code Copilot Agent .vscode/mcp.json project

Also works out of the box: Pi (reads .mcp.json natively), Zed, Cline, and any MCP-compatible client — point them at graymatter mcp serve.

Any MCP client that accepts a stdio server works with:

{
"mcpServers": {
"graymatter": {
"command": "graymatter",
"args": ["mcp", "serve"]
}
}
}

For shared setups (multiple agents, one store), run a single server over HTTP:

Terminal window
graymatter mcp serve --http 127.0.0.1:8080

The HTTP transport requires a bearer token; it lives in <data-dir>/graymatter.http-token. Network surfaces bind loopback-only.

GrayMatter persists to bbolt, a single-writer embedded DB — only one process holds the write lock at a time. The CLI and TUI fall back to read-only mode when the lock is held; a second MCP server fails fast instead of blocking.

Most robust setup: one shared graymatter mcp serve --http 127.0.0.1:8080 pointed at by every client. Details and failure modes in the agent guide.