Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Other AI CLIs (Gemini, GPT, Claude, opencode, Ollama) as a council — ban-safe, no API keys.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
CLI_BRIDGE_PROFILE, CLI_BRIDGE_TERSE, CLI_BRIDGE_CACHE_TTL_SYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"cli-bridge": {
"command": "uvx",
"args": [
"cli-bridge-mcp"
],
"env": {
"CLI_BRIDGE_PROFILE": "your-value",
"CLI_BRIDGE_TERSE": "your-value",
"CLI_BRIDGE_CACHE_TTL_S": "your-value"
}
}
}
}Run this in your terminal
claude mcp add cli-bridge --env CLI_BRIDGE_PROFILE=your-value --env CLI_BRIDGE_TERSE=your-value --env CLI_BRIDGE_CACHE_TTL_S=your-value -- uvx cli-bridge-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"cli-bridge": {
"command": "uvx",
"args": [
"cli-bridge-mcp"
],
"env": {
"CLI_BRIDGE_PROFILE": "your-value",
"CLI_BRIDGE_TERSE": "your-value",
"CLI_BRIDGE_CACHE_TTL_S": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"cli-bridge": {
"type": "stdio",
"command": "uvx",
"args": [
"cli-bridge-mcp"
],
"env": {
"CLI_BRIDGE_PROFILE": "your-value",
"CLI_BRIDGE_TERSE": "your-value",
"CLI_BRIDGE_CACHE_TTL_S": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
CLI_BRIDGE_PROFILE envCLI_BRIDGE_TERSE envCLI_BRIDGE_CACHE_TTL_S envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account JoaoBerne, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.3.0) reached the registry 2 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Rystic
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Start, seed, clock, inspect and diff Rystic API simulators from your agent.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A Model Context Protocol server that lets the AI assistant you're talking to consult the *other* AI CLIs installed on your machine — Claude Code, Codex, Gemini, Mistral, opencode, Ollama, Apple fm, … Each lane spawns the official CLI as a subprocess: no API keys, no token extraction, read-only by default.
Dependencies: the Python stdlib and mcp (1.x or 2.x). No daemon.
ask_gemini(task="find the bug across ./src", cwd="path/to/repo") # one lane (1M-token context)
ask_apple(task="what's wrong in this UI?", images=["shot.png"]) # vision, on-device, $0 ask_all(task="…") # every free lane in parallel + disagreement score ask_cascade(task="…") # cheapest→strongest, skips cooled-down lanes ask_best(task="…", mode="deep") # router picks; rate_lane teaches it ask_build(lane="opencode", task="add retry with backoff") # build in a throwaway worktree → diff review_diff(base="origin/main", focus="security") # multi-model review, severity-ranked debate(task="which migration strategy?", vote="borda") # N blind answers, peer-ranked workflow(preset="converge", task="is this migration safe?") # author → blind arbiter → cross-family peers git_text(kind="commit") # Conventional Commit from the staged diff
Every ask_ returns a thread id; reuse it (even on another lane) for a multi-model conversation that survives /compact. conversations lists or replays threads.
15 fixed tools + one ask_ per installed CLI:
ask_ , ask_all, ask_cascade, ask_best, conversations, list_modelsask_build (mode=isolated → diff, mode=direct → zone-guarded writes; with mode=direct, async=true → steerable via job)review_diff (focus=code|security), debate (vote=judge|borda), workflow (presets: refine_plan, map_review, research_verify, fanout_compare, converge, premortem, test_plan, challenge), git_text (kind=commit|pr)job (action=status|result|cancel|list|tail|steer), rate_lane, set_lane_cost, doctor, setupCLI_BRIDGE_TOOLS=all adds batch_run (journaled fan-out) and reset_lane_state; CLI_BRIDGE_TOOLS=default,batch_run extends the default; a plain comma list is exactly those. Usage and lane health are MCP resources (cli-bridge://usage-summary, cli-bridge://lane-stats). Full reference: docs/TOOLS.md.
There is also a human CLI, cli-bridge doctor|ask|ask-all|ask-best|build|review-diff|security-review|test-plan|premortem|stats|usage|jobs|set-cost (--json where it makes sense). cli-bridge build " " prints the worktree diff; --apply lands it as unstaged changes.
zone you declare, behind a per-zone lock with a post-turn zone-violation check; undo is zone-scoped. async=true makes it steerable (job action=tail|steer) with an executable Definition-of-Done (dod_cmd).CLI_BRIDGE_VERIFY_PLAN_READONLY=1 flags (never reverts) a read-only delegate that wrote files anyway. Re-entry is depth-capped (CLI_BRIDGE_MAX_DEPTH, default 1). Delegates run in the caller's cwd, else CLI_BRIDGE_DEFAULT_CWD, else the host's MCP workspace root.
Prerequisites: Python 3.12+, uv, and at least one AI CLI installed and logged in.
uvx --from cli-bridge-mcp cli-bridge doctor # what cli-bridge can see (--deep probes each lane)
Wire it into your host:
claude mcp add cli-bridge -- uvx cli-bridge-mcp (or the plugin: claude plugin marketplace add JoaoBerne/cli-bridge-mcp && claude plugin install cli-bridge@cli-bridge-mcp). { "mcpServers": { "cli-bridge": { "command": "uvx", "args": ["cli-bridge-mcp"] } } }
Per-host config paths: docs/HOSTS.md. Full example with env vars: examples/mcp.example.json. GUI hosts launch servers with a minimal PATH; cli-bridge also searches the usual install dirs, or point a lane at its binary with CLI_BRIDGE_ _BIN=/full/path.
Restart the host, then ask it to consult a lane ("ask gemini to read ./src and find the bug"). cli-bridge-mcp is the server entry point; cli-bridge is the human CLI.
Everything is env (set in the MCP server entry) or ~/.config/cli-bridge/config.json (env wins). The knobs that matter:
CLI_BRIDGE_PROFILE=balanced # saver = free-only fan-out · balanced = paid when asked · max = best
CLI_BRIDGE_ _COST=free|limited|paid CLI_BRIDGE_ _ENABLED=false # hide a lane CLI_BRIDGE_ _MODEL= CLI_BRIDGE_ _DAILY_LIMIT= # enforced at spawn CLI_BRIDGE_ _CREDITS_PER_1K= # makes CLI_BRIDGE_DAILY_CREDIT_CAP enforceable CLI_BRIDGE_ _MIN_INTERVAL_S=2 # anti-burst pacing for a rate-limited free tier CLI_BRIDGE_TERSE=off|lite|full|ultra CLI_BRIDGE_GUARD=off|warn|strict # injection guard on delegate output CLI_BRIDGE_CACHE_TTL_S=0 # >0 enables the response cache CLI_BRIDGE_TRACE_FOOTER=off # hide the JSON trace footer in reports CLI_BRIDGE_TOOLS=all # tool surface (see above)
doctor --deep (or doctor(deep=true)) live-checks every free lane, its CLI version and its model list, and reports what changed since the previous deep probe: run it weekly and you learn about a renamed flag or a new model before a delegation fails.
set_lane_cost (or cli-bridge set-cost) records what a lane costs *you*, persisted to the config file. Cost tiers are sourced defaults, never read from your account (docs/COSTS.md); the full spend model is in docs/BUDGET.md.
Built-in: Claude Code, Codex (gpt), Gemini (+ Antigravity agy), Mistral (Vibe), opencode, Ollama (local, $0), Apple Foundation Models (fm, on-device, $0), Qwen Code, Copilot, Cursor, Grok, and Apple PCC (hidden until APPLE_FM_SERVE_URL is set — it talks to a fm serve you start from Terminal yourself; see examples/apple-fm-serve.lane.json).
images=[…] works on the vision lanes (apple, ollama, opencode, gpt, gemini); whether the image is actually read depends on the model behind the lane.
Other CLIs are a few lines of JSON via CLI_BRIDGE_LANES_FILE: examples/local-runtime.lane.json (LM Studio, MLX, llama.cpp; runtime table in examples/local-first-host.md), examples/community-lanes.json (Aider, Goose, Plandex, Amp, Crush, Amazon Q, Droid), and any OpenAI-compatible endpoint via curl or the bundled cli-bridge-openai bridge (examples/openai-compatible.lane.json).
interrupted. batch_run / workflow journal each task and resume via resume_id.CREDITS_PER_1K).qwen, copilot, grok, community, images=): doctor --deep checks each CLI's --help on your machine.uv venv && uv pip install -e . pytest pytest-asyncio ruff
pytest -q # no real CLI or network needed ruff check src/ tests/
Eval harness (deterministic scorer, outside the package): benchmarks/. History: CHANGELOG.md. Layout and rules: AGENTS.md, docs/ARCHITECTURE.md.
Apache 2.0