MCP server providing unified access to Claude Code, Codex, Gemini, Grok, and Mistral Vibe CLIs with session management, retry logic, async job orchestration, durable job results, and cross-LLM validation.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
tools
-
approval
Approval decision record when approvalStrategy="mcp_managed"
-
ask_model
ask one provider through the simplified surface.
-
consensus_check
check whether providers agree with a claim.
-
ignoreRules
/ ignoreUserConfig (boolean, optional): Codex --ignore-rules / --ignore-user-config
-
job_status
and job_result: poll and collect validation job outputs.
-
list_available_models
list the models each provider CLI exposes through the simplified surface.
-
policyFiles
/ adminPolicyFiles (string[], optional): Policy / admin-policy file paths (one --policy/--admin-policy per file; paths must exist)
-
red_team_review
challenge a plan, answer, or document for risks and failure modes.
-
second_opinion
ask one provider to review an answer.
-
settingSources
/ settings / tools (optional): Setting sources to load, settings JSON path/literal, built-in tool restriction
-
synthesize_validation
run an explicit judge model after provider results have been collected.
-
systemPrompt
/ appendSystemPrompt (string, optional): Replace or extend the system prompt
-
validate_with_models
ask two or more providers to independently validate a question.
filesystem 22
- fs package/dist/acp/process-manager.js :2
import { mkdirSync } from "node:fs"; - fs package/dist/approval-manager.js :2
import { appendFileSync, existsSync, mkdirSync, readFileSync } from "fs"; - fs package/dist/claude-mcp-config.js :1
import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync, renameSync, openSync, fsyncSync, closeSync, chmodSync, } from "fs"; - fs package/dist/config.js :1
import { existsSync, readFileSync } from "fs"; - fs package/dist/doctor.js :1
import { existsSync, readFileSync } from "node:fs"; - fs package/dist/entrypoint-url.js :1
import { realpathSync } from "fs"; - fs package/dist/executor.js :4
import { readdirSync, existsSync } from "fs"; - fs package/dist/flight-recorder.js :1
import { chmodSync } from "fs"; - fs package/dist/index.js :6
import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, unlinkSync, writeFileSync, chmodSync, } from "fs"; - fs package/dist/job-store.js :1
import { chmodSync } from "fs"; - fs package/dist/migrate-sessions.js :2
import { readFileSync } from "fs"; - fs package/dist/migrate.js :2
import { readFileSync, readdirSync } from "fs"; - fs package/dist/mistral-meta-json-parser.js :1
import { existsSync, readdirSync, readFileSync, realpathSync, statSync } from "fs"; - fs package/dist/model-registry.js :1
import { existsSync, readFileSync, readdirSync, statSync } from "fs"; - fs package/dist/process-monitor.js :1
import { readFileSync } from "fs"; - fs package/dist/provider-status.js :1
import { existsSync } from "node:fs"; - fs package/dist/provider-tool-capabilities.js :1
import { existsSync, readdirSync, readFileSync, statSync } from "fs"; - fs package/dist/request-helpers.js :1
import { existsSync, unlinkSync, writeFileSync } from "fs"; - fs package/dist/session-manager.js :4
import { existsSync, mkdirSync, readFileSync, writeFileSync, renameSync, openSync, fsyncSync, closeSync, chmodSync, } from "fs"; - fs package/dist/sqlite-driver.js :1
import { existsSync, mkdirSync } from "fs"; - fs package/dist/workspace-registry.js :2
import { chmodSync, existsSync, mkdirSync, mkdtempSync, openSync, closeSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, writeFileSync, } from "node:fs"; - fs package/dist/worktree-manager.js :3
import { existsSync } from "fs";
shell / exec 9
- shell package/dist/acp/process-manager.js :1
import { spawn as nodeSpawn } from "node:child_process"; - shell package/dist/cli-updater.js :1
import { spawnSync } from "node:child_process"; - shell package/dist/endpoint-exposure.js :1
import { spawnSync } from "node:child_process"; - shell package/dist/executor.js :1
import { spawn, spawnSync } from "child_process"; - shell package/dist/provider-status.js :4
import { spawnSync } from "node:child_process"; - shell package/dist/sqlite-driver.js :102
exec(sql) { - shell package/dist/upstream-contracts.js :1
import { spawnSync } from "node:child_process"; - shell package/dist/workspace-registry.js :3
import { spawnSync } from "node:child_process"; - shell package/dist/worktree-manager.js :1
import { spawn } from "child_process";
network 3
- net package/dist/endpoint-exposure.js :194
const { request: http } = require("node:http"); - net package/dist/http-transport.js :1
import { createServer } from "node:http"; - net package/dist/xai-api-provider.js :1
import { request as httpRequest } from "node:http";
secrets 1
- secrets package/dist/claude-mcp-config.js :110
if (server === "exa" && process.env.EXA_API_KEY) {
tool registrations 46
- workspace_list package/dist/index.js :530
- workspace_get package/dist/index.js :560
- workspace_create package/dist/index.js :582
- workspace_register_existing_repo package/dist/index.js :620
- grok_api_request package/dist/index.js :3163
- claude_request package/dist/index.js :3237
- codex_request package/dist/index.js :3591
- codex_fork_session package/dist/index.js :3860
- gemini_request package/dist/index.js :3966
- grok_request package/dist/index.js :4076
- mistral_request package/dist/index.js :4204
- claude_request_async package/dist/index.js :4322
- codex_request_async package/dist/index.js :4595
- gemini_request_async package/dist/index.js :4728
- grok_request_async package/dist/index.js :4836
- mistral_request_async package/dist/index.js :5074
- llm_job_status package/dist/index.js :5189
- llm_job_result package/dist/index.js :5227
- llm_job_cancel package/dist/index.js :5293
- llm_request_result package/dist/index.js :5348
- llm_process_health package/dist/index.js :5401
- approval_list package/dist/index.js :5453
- list_models package/dist/index.js :5486
- provider_tool_capabilities package/dist/index.js :5501
- cli_versions package/dist/index.js :5539
- upstream_contracts package/dist/index.js :5553
- provider_subcommands_list package/dist/index.js :5571
- provider_subcommand_contract package/dist/index.js :5623
- provider_subcommand_drift package/dist/index.js :5645
- cli_upgrade package/dist/index.js :5698
- session_create package/dist/index.js :5753
- session_list package/dist/index.js :5792
- session_set_active package/dist/index.js :5839
- session_delete package/dist/index.js :5901
- session_get package/dist/index.js :5949
- session_clear_all package/dist/index.js :6019
- validate_with_models package/dist/validation-tools.js :50
- second_opinion package/dist/validation-tools.js :78
- compare_answers package/dist/validation-tools.js :99
- red_team_review package/dist/validation-tools.js :120
- consensus_check package/dist/validation-tools.js :144
- ask_model package/dist/validation-tools.js :163
- synthesize_validation package/dist/validation-tools.js :182
- list_available_models package/dist/validation-tools.js :205
- job_status package/dist/validation-tools.js :212
- job_result package/dist/validation-tools.js :227
declared dependencies 21
- @modelcontextprotocol/sdk@^1.29.0
- content-type@1.0.5
- smol-toml@^1.6.1
- type-is@2.0.1
- zod@^4.4.3
- @eslint/js@^10.0.1
- @types/better-sqlite3@^7.6.0
- better-sqlite3@^12.10.0
- @types/node@^25.9.1
- @types/pg@^8.11.10
- @typescript-eslint/eslint-plugin@^8.59.4
- @typescript-eslint/parser@^8.59.4
- @vitest/coverage-v8@^4.1.2
- eslint@^10.4.1
- eslint-config-prettier@^10.1.8
- eslint-plugin-security@^4.0.0
- fast-check@^4.8.0
- pg@^8.12.0
- prettier@^3.0.0
- typescript@^6.0.3
- vitest@^4.0.18