Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Other AI CLIs (Gemini, GPT, Claude, opencode, Ollama) as a council — ban-safe, no API keys.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
CLI_BRIDGE_PROFILE, CLI_BRIDGE_TERSE, CLI_BRIDGE_CACHE_TTL_S필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 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"
}
}
}
}터미널에서 이 명령어를 실행하세요
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-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.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"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"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"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
CLI_BRIDGE_PROFILE envCLI_BRIDGE_TERSE envCLI_BRIDGE_CACHE_TTL_S env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 JoaoBerne 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.3.0)은 2개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Recta
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
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.
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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