# IDE & Client Integration Matrix This page tracks where major coding clients connect MCP servers, and how `m1nd` fits into each one. The high-level rule is simple: - use `m1nd-mcp` for universal compatibility - use the native hot daemon + thin proxy/client where the host supports a faster local lane ## Integration matrix | Client | Integration surface | Config location / entrypoint | What to point at | |---|---|---|---| | Claude Code | MCP config file | `.claude/mcp.json` or `claude_mcp.json` | `m1nd-mcp` | | Codex | MCP config in TOML | `~/.codex/config.toml` | `m1nd-mcp` | | Cursor | MCP config file | `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` | `m1nd-mcp` or a thin native proxy | | Windsurf | MCP config file | Windsurf MCP settings / config JSON | `m1nd-mcp` or a thin native proxy | | GitHub Copilot coding agent | Repository MCP config UI | repository settings UI for MCP servers | `m1nd-mcp` or an editor-facing native proxy command | | Zed | Assistant MCP config | Zed assistant MCP configuration | `m1nd-mcp` | | Continue | MCP / config layer | Continue MCP configuration | `m1nd-mcp` | | Cline / Roo Code / OpenCode | MCP-compatible command config | client-specific MCP server config | `m1nd-mcp` | | Antigravity | `mcp_config.json` | workspace-local `mcp_config.json` | native proxy recommended | ## Why some hosts should use a proxy Most hosts are perfectly fine with: ```json { "mcpServers": { "m1nd": { "command": "/path/to/m1nd-mcp", "env": { "M1ND_GRAPH_SOURCE": "/tmp/m1nd-graph.json", "M1ND_PLASTICITY_STATE": "/tmp/m1nd-plasticity.json", "M1ND_WORKSPACE_ROOT": "/path/to/your/project" } } } } ``` On Windows the command should point at `m1nd-mcp.exe`, for example: ```json { "mcpServers": { "m1nd": { "command": "C:\\Users\\you\\.m1nd\\bin\\m1nd-mcp.exe", "args": ["--stdio", "--no-gui"] } } } ``` Codex uses the same idea, but in TOML: ```toml [mcp_servers.m1nd] command = "/path/to/m1nd-mcp" args = ["--stdio", "--no-gui"] [mcp_servers.m1nd.env] M1ND_GRAPH_SOURCE = "/tmp/m1nd-graph.json" M1ND_PLASTICITY_STATE = "/tmp/m1nd-plasticity.json" M1ND_WORKSPACE_ROOT = "/path/to/your/project" ``` But some editor hosts still pay too much overhead if they cold-start a stdio MCP server for every interaction. For those, the better shape is: ```text host -> thin proxy/client -> hot native daemon -> SessionState ``` That preserves host compatibility while avoiding cold process startup and graph reload cost on every request. ## Native fast path strategy ### Universal lane - `m1nd-mcp` - stdio or HTTP/UI - best for broad compatibility ### Native lane - `m1nd-openclaw` - persistent Unix socket bridge - best for local runtimes that can benefit from a hot graph - Unix/macOS/Linux lane today; use plain `m1nd-mcp` on Windows ### Thin adapters Adapters should be very small: - translate the host's command/stdio shape - forward to the hot native daemon - preserve host expectations Examples: - OpenClaw → native shell/bridge adapter - Antigravity → `m1nd-antigravity-proxy.py` - Cursor / Windsurf → project-local MCP config pointing at a native proxy if desired ## Practical recommendations ### Set the workspace root when possible Use `M1ND_WORKSPACE_ROOT` as the portable contract for Codex, Claude Code, Antigravity, Gemini, Cursor, Windsurf, VS Code, and generic MCP clients. Point it at the real repository or workspace, not at a host-managed runtime folder. Host-specific hints such as `CLAUDE_PROJECT_DIR` or `ANTIGRAVITY_WORKSPACE_ROOT` are recognized as compatibility aliases, but `M1ND_WORKSPACE_ROOT` is the clearest cross-host signal. Prefer it over ambient shell state so the host does not bind through `OLDPWD` or another wrong repo hint. If a tool call fails with `Transport closed`, the MCP pipe died before m1nd could run. Restart/rebind the host MCP client or open a fresh session, then call `trust_selftest` or `session_handshake` before retrieval. If the host is launching an old native runtime, use the external self-update surface: ```bash m1nd update check --channel beta m1nd update status --channel beta m1nd update plan --channel beta m1nd update apply --channel beta --yes m1nd hosts status --host all --project /path/to/project --json m1nd hosts plan --host all --project /path/to/project --json m1nd hosts apply --host all --project /path/to/project --yes --json ``` For live multi-agent sessions, add `--no-kill` to update the managed binary without stopping current host processes, then restart/rebind only the target host. `m1nd restart --source /path/to/m1nd --yes` remains the lower-level source-checkout repair helper for development builds. Use `m1nd hosts status` as the read-only host readiness cockpit before editing host configs. It checks the packaged host surfaces for agent-pack files, likely MCP config presence, runtime/PATH alignment, workspace hints, and the required rebind caveat. It does not prove that an already-open host has refreshed its cached MCP tool list. Use `m1nd hosts plan` when you need the exact per-host follow-through. It emits the install command, candidate config paths, MCP snippet, required `M1ND_WORKSPACE_ROOT`, rebind step, and verification step without editing any host files. Use `m1nd hosts apply` only when you want the mutating follow-through. Without `--yes` it remains a dry-run preview. With `--yes`, it can install or refresh agent-pack files and write canonical MCP config snippets for known hosts, but you still need a host restart/rebind plus `trust_selftest` or `session_handshake` afterward. Generic hosts remain manual for config because `apply` cannot know every host-specific config path. ### Use plain MCP when: - the host already keeps the MCP server alive - the repo is small - setup simplicity matters more than absolute latency ### Use the native daemon lane when: - the host repeatedly cold-starts the server - the graph is large - you want graph-first navigation to feel immediate ## Current m1nd-native components - `m1nd-openclaw` — hot daemon - `m1nd-openclaw-client` — CLI client - `scripts/macos/m1nd-openclaw-bridge.sh` — daemon wrapper - `scripts/macos/m1nd-openclaw-call.sh` — call wrapper - `scripts/macos/m1nd-antigravity-proxy.py` — editor-facing stdio proxy ## Notes - Antigravity integration is grounded from the local product schema that recognizes `mcp_config.json`. - Codex, Cursor, Windsurf, Claude Code, GitHub Copilot coding agent, Zed, and Continue all fit the same conceptual model: host config chooses the command, env, and working directory.