Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Where the work is, packed before the agent reads: brief, symbol tables, findings, token bill.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"bundlebox": {
"command": "npx",
"args": [
"-y",
"bundlebox",
"mcp"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add bundlebox -- npx -y bundlebox mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"bundlebox": {
"command": "npx",
"args": [
"-y",
"bundlebox",
"mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"bundlebox": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"bundlebox",
"mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 blackswanalpha 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.8.0)은 44일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, FOGA node
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ 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.
A Finch OG Agent cell as an MCP server: read the world, dry-run and take ERC-8414 tenders by policy.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
bundlebox The zero-token software factory for AI coding agents.
Scan, pack, route and run work across Claude Code, Codex, Gemini CLI, Cursor, Copilot, OpenCode, Aider and any custom agent, and measure every token a session used and was spared.
An AI coding agent is billed for what it reads, and most of what it reads is orientation, not judgement: where a symbol lives, whether two tables agree, which command proves a change, what changed since last week. bundlebox answers every question a parse, a count, a path check or a set difference can answer *before* the agent opens, packs the answers into a brief sized to the agent's window, opens the agent under a measured-minimal flag stack, and measures afterwards what the session used and what it was spared. It never calls a model itself.
bb genesis -> a world a doc becomes surfaces, rules and capabilities 0 tokens
bb scan -> findings what is wrong, with evidence 0 tokens bb fix -> patches local actuators close what they can 0 tokens bb cookbook -> a board what the RUNNING system does, run by the kernel 0 tokens bb simulate -> limits what it does at a hundred callers 0 tokens bb compile -> units what to do about the rest, packed to one window bb pinpoint -> a brief where the work is, quoted and budgeted, before a model opens bb arc -> an index every declaration in one file, read in microseconds 0 tokens bb route -> lanes who does it, where, in what wave bb run -> sessions the only verb that spends bb finish -> a ledger what proves this done, declared first and run after 0 tokens bb git -> PRs commit, push, draft PR, review, gated merge 0 tokens bb runbook -> the system is it up, is it ANSWERING, what broke since 0 tokens bb recom -> an answer what was already driven, and whether it holds 0 tokens bb recom gate-> a decision and therefore whether to drive at all 0 tokens bb dotty -> a screen what it showed, as rows a session can diff 0 tokens bb sieve -> a window a tool result shrunk before it is billed twice 0 tokens bb uptake -> a verdict of everything wired in, what sessions reached for 0 tokens bb monitor -> the window what the 5-hour block has left, and the guard 0 tokens bb session -> the bill what a session used and saved, measured 0 tokens bb lathe -> automation what this box did by hand more than twice, as scripts 0 tokens bb env -> a checklist what a complete .bundlebox holds, and whether this has 0 tokens
Measured on the reference workspace (regenerate with bb session, bb tokens profile --probe, bb buckmaster episodes):
| before | after | |
|---|---|---|
| opening window per spawned session, before any work | 44.3k tokens | 29.2k tokens (−34%) |
| the same findings, planned | 5 sessions, 1.3M projected | 2 sessions, 351k (−74%) |
one pipeline tick (bb pipeline run intake) | 226 agent turns | 133 s, 0 model tokens |
npm i -g bundlebox
curl -fsSL https://raw.githubusercontent.com/blackswanalpha/bundlebox/main/scripts/install.sh | sh
Needs Node ≥ 20 and git. Linux, macOS and Windows are supported: CI runs the full suite on all three against Node 20, 22 and 24. Two known gaps remain on Windows — a piped acceptance gate reports the last command's exit code rather than the first failure, because cmd.exe has no set -o pipefail (unpiped gates are exact), and bb session may not find transcripts, because the name Claude Code gives its projects directory there has not been verified. Three optional Rust and Python components make it faster and smarter, and everything degrades cleanly without them:
bbk): tree walks, fingerprints, token estimates, duplicate windows, symbol indexes, acceptance gates with real timeouts, worktrees. bb kernel install fetches a release binary; bb kernel build compiles it with cargo. Without it the JS implementations run, and a selftest pins both to identical answers.arc): compiles the derived symbol tables into one binary index the read and search guards answer from, 13x faster than scanning the tables in a cold hook process. bb arc build, recompiled by bb snapgen build when the tables move. Every reader falls back to scanning the tables when the index is absent, truncated or not an index, because "there is no index" and "nothing is declared" are different answers.bundlebox_expert, stdlib only): the rule engine with explainable derivations, confidence shrinkage, transcript signals, the process model and memory. bb buckmaster needs python3 ≥ 3.9; nothing in the zero-token path does.There are no npm dependencies. A cron worker at 03:00 runs what is on disk or it does not run.
cd your-repo
bb init # detect languages, agents and gates; write .bundlebox/config.json bb doctor # what this box can run, which runtime serves each op bb wire --apply # hooks, skills, instruction blocks and MCP entries for every agent bb env up --apply # build everything a session reads, so nothing is derived by searching bb scan # the detectors. Seconds, 0 tokens bb findings # what the store holds; bb explain for one bb pinpoint gaps # every open finding as a located, quoted, budgeted brief bb pinpoint next # make one of them the ACTIVE brief the guards answer from bb compile # findings -> units, each packed to one window (dry run) bb route # units -> lanes (dry run) bb run # writes the exact prompt and command per lane, spawns nothing bb run --apply # spawns the sessions bb finish check # run the acceptance ledger; unproven never reads as green bb session # what the last session used and saved
From a document instead of from the code:
bb genesis docs/PRD.md --base http://127.0.0.1:4400 # surfaces, rules, capabilities, a seeded corpus
bb genesis plan # what nothing covers, ranked and tiered bb genesis pack # one small brief per surface bb genesis send calendar --run --spend # the only step that costs anything bb cookbook check && bb cookbook run # the kernel executes what came back bb mainboard gaps # the first stage that does not hold, and its fix bb console # one page: the pipeline, the window, every session
Every verb is a dry run until --apply. Only run and bridge send can spend.
bb wire --apply installs four things per agent detected on the box: an instruction block between markers, hooks where the agent supports them, skills where it loads them, and an MCP server entry. bb unwire removes only its own blocks, entries, hook rows and skills.
| agent | instructions | hooks | skills | MCP |
|---|---|---|---|---|
| Claude Code | CLAUDE.md | UserPromptSubmit (builds the brief), PreToolUse Read/Grep/Bash (serves it), SessionStart (table index), PostToolUse (the sieve, off until sieve.enabled), PreCompact, SessionEnd (the bill) | .claude/skills | .mcp.json |
| Codex CLI | AGENTS.md | — | .codex/skills | .codex/config.toml |
| Gemini CLI | GEMINI.md | — | — | .gemini/settings.json |
| Cursor | .cursor/rules/bundlebox.mdc | — | — | .cursor/mcp.json |
| GitHub Copilot | .github/copilot-instructions.md | — | — | .vscode/mcp.json |
| OpenCode | AGENTS.md | — | — | opencode.json |
| Cline / Roo | .clinerules/bundlebox.md | — | — | — |
| Windsurf | .windsurf/rules/bundlebox.md | — | — | — |
| Aider | .aider.conf.yml reads AGENTS.md | — | — | — |
| any command | lanes.custom_command with {prompt_file} {cwd} {model} | — | — | — |
Two skills ship and cost nothing until they trigger, which is the property an instruction block does not have: it arrives in every system prompt and is billed whether the session was about it or not. bb-finish is completion discipline backed by runnable gates; antislop is the prose ruleset with what each rule costs and what to write instead.
bb mcp serves bb_pinpoint, bb_context, bb_snapgen, bb_findings, bb_scan, bb_oversight_brief, bb_explain, bb_tokens_estimate and bb_session over stdio as JSON-RPC 2.0, with no dependency.
bb wire --apply writes the entry for every agent in the table above. For an agent it does not manage:
{ "mcpServers": { "bundlebox": { "command": "npx", "args": ["-y", "bundlebox", "mcp"] } } }
Claude Code takes it as one line, or as a plugin, which carries the two skills and the hooks with it:
claude mcp add bundlebox -- npx -y bundlebox mcp
/plugin marketplace add blackswanalpha/bundlebox /plugin install bundlebox@bundlebox
Full guide, including the agents not in this table, how to wire one bundlebox does not know about, and how to drive agents as lanes: [docs/agents.md](docs/agents.md). bb uptake then reports which of the installed surfaces the sessions reached for.
bb uptake measured the gap. Over 15 sessions on this workspace the MCP tools fired in 0, pinpoint in 3 of the 13 sessions that opened five or more distinct files, and the reference tables in 5 of the 15 that ran a search. Those 13 sessions opened between 30 and 598 files each. Everything wired in front of the agent was a recommendation, and a recommendation loses to the model's own habit about three times in four.
So the wiring changed kind.
Run it, do not recommend it. UserPromptSubmit builds the brief itself on a task-shaped prompt — 0.47s against a 15s budget, because every input pinpoint reads is a stored artefact and it computes none of them. What enters the window is the map, about 300 tokens.
Serve what it found. PreToolUse denies a read whose region the brief already quotes and hands the quote back in the denial reason; denies an exact duplicate read; denies a declaration search the symbol tables already answer and hands back the rows; and asks before opening a file that was cut for budget. A file in scope is never fully blocked — Claude Code needs one successful read before it will edit, so the denial names the range and that read is allowed. Grep is the declared tool and Bash is where the measured transcripts search, so both are guarded.
Rank on specificity and path. Enforcing a brief raises the cost of a bad locate. Inverse document frequency over the candidate set stops an exact match on a name the tree uses everywhere from outscoring a loose match on a rare one, and a directory named wire now counts as evidence about what a file is for. An explicitly named file is pinned first rather than scored.
| verb | answers | cost |
|---|---|---|
scan, findings, explain, fix | sixteen generic detectors with evidence and expected-value triage; local actuators that write a patch before a file | 0 |
compile, route, context, gates | units packed to a window with quoted regions and hoisted evidence; lanes with conflicts as affinity and waves; does this scope fit | 0 |
| run | lanes on t
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요