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.
Manual wiring
Section titled “Manual wiring”Any MCP client that accepts a stdio server works with:
{ "mcpServers": { "graymatter": { "command": "graymatter", "args": ["mcp", "serve"] } }}HTTP transport
Section titled “HTTP transport”For shared setups (multiple agents, one store), run a single server over HTTP:
graymatter mcp serve --http 127.0.0.1:8080The HTTP transport requires a bearer token; it lives in
<data-dir>/graymatter.http-token. Network surfaces bind loopback-only.
One store, many processes
Section titled “One store, many processes”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.