A side-by-side look at the PatchWarden and Bernstein MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose PatchWarden for coding agents work as a local process; choose Bernstein for coding agents as a local process. You can also run both side by side in one mcpServers block.
CONTROL_PLANE_API_KEY, PATCHWARDEN_OWNER_TOKEN.save_plan, get_plan, health_check.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Coding Agents | Coding Agents |
| Quality signal | 64/100 · Good | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | No auth required |
| Pricing | Not declared | Free |
| Required env vars | CONTROL_PLANE_API_KEYPATCHWARDEN_OWNER_TOKEN | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 6 | 1,299 |
| Directory activity | 1 views 0 installs 0 upvotes | 4 views 0 installs 0 upvotes |
| Tools | 30 | Not listed |
| Full listing | View PatchWarden | View Bernstein |
save_planSave an execution plan — ChatGPT writes the plan, PatchWarden stores it for local agent execution. Supports plan_ref to load a plan file already placed inside .patchwarden/plans.get_planRead a saved plan by its plan_id.health_checkCheck MCP catalog consistency, watcher freshness/supervisor state, workspace readiness, and configured agents. Use detail=self_diagnostic for expanded read-only evidence.list_agentsList configured local agents and check whether each executable currently exists. This does not start an agent or contact its model provider.create_taskCreate a repo-scoped task from exactly one source. For ChatGPT, prefer the guarded inspect_only, feature_small, or fix_tests template when it fits. A stale watcher preserves the task but returns execution_blocked and directs the client to health_check; otherwise call wait_for_task until terminal. Use execution_mode=assess_only to pre-assess risk and get an assessment_id without creating a task; then invoke the returned next_tool_call using only execution_mode=execute and the full assessment_id.get_task_statusCheck task status, execution phase, watcher health, pending reason, current command, timeout, and change evidence.get_resultRead result.md, or return structured availability and watcher evidence while the task is not terminal.get_result_jsonRead the structured result.json for deterministic task acceptance.get_diffRead task diff evidence, or return structured availability and watcher evidence while it is not ready.get_test_logRead test.log, or return structured availability and watcher evidence while it is not ready.list_workspaceList files and directories within the workspace (sensitive files excluded).read_workspace_fileRead a file within the workspace. Sensitive files (secrets, keys, tokens) are blocked. In Direct mode (with session_id), reads are scoped to the session's repo_path and return sha256.No tool names declared yet. Check the project README from the listing page.
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": {
"jiezeng2004-design-patchwarden": {
"command": "npx",
"args": [
"-y",
"patchwarden@0.6.1"
],
"env": {
"CONTROL_PLANE_API_KEY": "YOUR_CONTROL_PLANE_API_KEY_HERE",
"PATCHWARDEN_OWNER_TOKEN": "YOUR_PATCHWARDEN_OWNER_TOKEN_HERE"
}
}
}
}
{
"mcpServers": {
"sipyourdrink-ltd-bernstein": {
"command": "uvx",
"args": [
"bernstein"
]
}
}
}