Expose the other AI CLIs installed on your machine (Gemini, Codex, Claude Code, Mistral, opencode, Ollama…) as MCP tools. Spawns the official CLI; no API keys.
cli-bridge-mcp exposes 14 tools with generally clear naming (verb_noun pattern: ask_*, build, review_diff, etc.) and comprehensive descriptions (100-300 chars typical). All tools have input schemas with typed parameters and descriptions. However, output schemas are not formally documented in the tool definitions, responses are described narratively rather than as structured JSON Schema. Error handling guidance is minimal; most tools lack recovery hints. Security considerations (e.g., file spillover, subprocess execution) are present but not reflected in tool annotations. Composition is strong: tools chain well (e.g., ask_best → build → review_diff). Parameter naming is consistent and human-friendly (task, cwd, timeout_s). Baseline: 194 chars avg description (this server ~220 chars), 4 params avg (this server 2-7 range). Missing: output schema documentation, error classification, tool annotations (readOnlyHint/destructiveHint).
Ask a specific AI CLI lane a question. The lane key is dynamically determined from installed CLIs (e.g., ask_claude, ask_gemini). Returns the delegate's response, optionally spilled to a file if output exceeds inline limits.
Ask all installed free lanes in parallel and optionally synthesize their answers. Returns a council response with individual lane outputs and optional synthesis.
Pick the best lane for a specific task mode (fast, cheap, deep, code, review, security) and ask it. Returns the best lane's response based on cost policy, health, and mode-specific routing.
Ask lanes in deterministic fallback order until one succeeds. Tries free lanes first, then limited, then paid (if allowed). Returns the first successful response.
Delegate a real build to a lane in a throwaway worktree. The lane makes changes to a temporary copy of the repo; the diff is returned without modifying the original repo unless --apply is used.
Show installed CLIs, host detection, cost profile, and lane health. Optionally probes each free lane's authentication status.
Output schemas not formally documented. Tool descriptions state what is returned narratively (e.g., 'Returns the delegate's response') but do not provide JSON Schema for response structure. LLMs cannot plan downstream tool calls or extract fields reliably without structured output documentation.
Error handling lacks recovery guidance. Tools do not document what errors are retryable, user-fixable, or fatal. No guidance on next steps (e.g., 'If lane not found, call doctor to list installed CLIs'). Agents cannot self-correct on failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Manage async build jobs: tail logs, check status, steer ongoing builds, or interrupt them. Returns job status, log tail, or steering confirmation.
Stress-test a plan before building. Spawns multiple lanes to identify potential failure modes and risks in a proposed task.
Multi-model code review of a git diff. Spawns multiple lanes to review changes and returns findings with confidence scores based on reviewer agreement.
OWASP-aware security review of a git diff. Spawns multiple lanes to identify security issues and returns findings with confidence scores.
Record what a lane costs the user (free, limited, or paid). Persists to the config file and overrides environment variables.
Per-lane health statistics including success rates, latency, failure modes, and quality ratings from host feedback.
Derive a test plan from a git diff. Spawns multiple lanes to analyze changes and generate comprehensive test coverage recommendations.
Estimated usage report showing per-lane call counts, costs, and performance metrics. Optionally filtered by time window.
Tool annotations missing. No readOnlyHint, destructiveHint, or idempotentHint declared. 'build' and 'job' (with steer/interrupt actions) are destructive but not marked. 'ask_*' tools are read-only but not annotated. Clients cannot determine safety without reading descriptions.
Parameter 'model' in ask_<lane> and build lacks enum or format constraint. Description says 'Optional model override' but does not specify valid values or format. LLMs may pass invalid model names.
Subprocess execution and file spillover (OVERFLOW_DIR) create security surface. No mention of input sanitization, path traversal guards, or command injection prevention in tool descriptions. 'cwd' parameter accepts arbitrary paths; 'task' parameter passed to subprocess.