A side-by-side look at the Graft and Codex Delegate MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Graft for coding agents work as a local process; choose Codex Delegate for coding agents as a local process. You can also run both side by side in one mcpServers block.
GRAFT_ROOT_PATH.safe_read, graft_edit, file_outline.delegate, cancel, doctor.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Coding Agents | Coding Agents |
| Quality signal | 65/100 · Great | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | GRAFT_ROOT_PATH | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 17 | 2 |
| Directory activity | 1 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 34 | 3 |
| Full listing | View Graft | View Codex Delegate |
safe_readPolicy-enforced file read. Returns full content for small files, structural outline with jump table for large files, or refusal with reason code for banned files. Detects re-reads and returns cached outlines or structural diffs.graft_editPerform one governed exact string replacement in a repo file. Requires path, old_string, and new_string. Refuses missing or ambiguous old_string matches and policy-denied paths.file_outlineStructural skeleton of a file — function signatures, class shapes, exports. Includes a jump table mapping each symbol to its line range for targeted read_range follow-ups.read_rangeRead a bounded range of lines from a file. Maximum 250 lines. Use jump table entries from file_outline or safe_read to target specific symbols.changed_sinceCheck if a file changed since it was last read. Returns structural diff (added/removed/changed symbols) or 'unchanged'. Peek mode by default; pass consume: true to update the observation cache.graft_diffStructural diff between two git refs. Shows added, removed, and changed symbols per file — not line hunks. Defaults to working tree vs HEAD.run_captureExecute a shell command and return the last N lines of output (default 60). Responses include an explicit policy boundary. Persisted logs can be disabled and obvious secrets are redacted before writing to .graft/logs/capture.log.state_saveSave session working state (max 8 KB). Use for session bookmarks: current task, files modified, next planned actions.state_loadLoad previously saved session state. Returns null if no state has been saved.doctorRuntime health check. Shows project root, parser status, active thresholds, session depth, message count, and burden summary.activity_viewInspect recent bounded local artifact history for the active workspace, anchored to the current commit when possible.causal_statusInspect the active causal workspace and persisted local-history posture.delegateDelegate a coding task to OpenAI Codex. Never run codex from the shell — use this tool. Check status before trusting result — a run that spawns then fails returns normally. Keep model, reasoningEffort and fast at their defaults unless the user asks. See the delegate skill.cancelCancel active runs. delegationId selects one (announced in progress before spawn — the only handle if a run wedges at startup), threadId all on its thread, neither all. Waits for settlement; if a process tree survives the kill deadline, it still returns and the delegate result warns. Status: cancelled, nothing-active, or not-found (no active run with this ID).doctorDiagnose plugin/CLI/login, recursion, and workspace (default: server cwd). deep adds no-quota help and model-catalog checks.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"flyingrobots-graft": {
"command": "npx",
"args": [
"-y",
"@flyingrobots/graft"
],
"env": {
"GRAFT_ROOT_PATH": "YOUR_GRAFT_ROOT_PATH_HERE"
}
}
}
}
{
"mcpServers": {
"codex-delegate": {
"command": "npx",
"args": [
"-y",
"codex-delegate-mcp"
]
}
}
}