Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
AI-native version control where intent, operation, evidence and decision are first-class objects.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
AVCS_REPO必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"avcs": {
"command": "npx",
"args": [
"-y",
"@izagood/avcs",
"mcp"
],
"env": {
"AVCS_REPO": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add avcs --env AVCS_REPO=your-value -- npx -y @izagood/avcs mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"avcs": {
"command": "npx",
"args": [
"-y",
"@izagood/avcs",
"mcp"
],
"env": {
"AVCS_REPO": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"avcs": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@izagood/avcs",
"mcp"
],
"env": {
"AVCS_REPO": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
AVCS_REPO envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント izagood で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.42.0)がレジストリに届いたのは2 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, FlyDocs
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況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.
Spec-driven development workflow: your agent works issues, sessions and the status lifecycle.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
*An AI-native version control system for humans and AI agents working concurrently.*
An agent should not spend its context on version control. That is the whole design goal, and it is measured rather than asserted — here is what the same work costs an agent:
| What an agent pays for | git / the full surface | AVCS |
|---|---|---|
| Landing a change after someone else's PR merged first (30 KB module) | 18,922 tokens | 279 tokens — *99% less* |
| Round trips to finish that recovery | 7 | 4 |
| Tool schema, paid on every session | ≈8.8k tokens (39 tools) | ≈3.5k tokens (13, --profile core) |
| What a same-line collision hands the model | the whole file, with conflict markers | one object naming the two contending operations |
git's recovery cost tracks the size of the file — a conflict is bytes inside it, so the agent reads the whole module and writes the whole module back to change one line. AVCS's tracks the size of the change: a conflict is an object naming the two contending operations, so it stays flat as the file grows. There is also no branch to rewrite and nothing to force-push, which is why the round trips differ — and that is *one* cycle, repeated for every PR that merges ahead of yours. Across the file sizes measured the saving is 37–99%.
None of this is a compression trick bolted on afterwards. It falls out of storing the operation graph instead of snapshots: there is no rebase to perform, so there is nothing to re-read. Method, caveats and the harness that produced the rebase numbers: avcs-demo → what it costs an agent in tokens. The schema figures are the advertised MCP surface itself — 35 KB of JSON against 14 KB, at the usual ≈4 bytes per token.
Git records when the code changed.
AVCS records who changed it, with what intent, on what evidence, and through which conflict decisions the code reached its current state.
AVCS is a new, deliberately Git-incompatible version control system built for a world where humans and many AI agents edit the same codebase concurrently. It drops the commit / branch / merge / conflict-marker model and instead stores intent, session, operation, evidence, and decision as first-class objects. The code tree is not the source of truth — it is a projection computed by deterministically *reducing* the operation graph:
state = reduce(base, operationDAG, decisions, policy, materializer)
The same objects + the same policy + the same materializer produce the same tree on any replica. Merging is not text selection; it is a pure, deterministic reduction.
Status: research prototype. The implementation is real and test-covered, but every phase is built to a *working-MVP depth* (language-neutral text 3-way merge, ed25519 signing). Structure-aware merge, semantic-break detection, multi-signature trust, and hardened distributed sync are tracked on the roadmap.
Jump in: install · your first five minutes · work against a server · connect an agent over MCP · agent quickstart walkthrough
See it run first: izagood/avcs-demo — a runnable demo of the question this design answers: *what happens when two agents edit the same file at the same time?* One ./demo.sh walks a stale-head land that is absorbed instead of rejected, a same-file auto-merge with no rebase, and a same-line collision that becomes a signed decision rather than conflict markers.
Every "AI + git" tool eventually stores the agent's context *beside* the history — commit trailers, PR comments, sidecar JSON. AVCS exists because these objects have to be load-bearing — consumed by the merge machinery itself — and bolted onto git they can't be:
git merge resolves a conflict by emitting bytes; the choice and its rationale evaporate. An AVCS decision is a signed object — recallable later, and prior decisions bias future auto-resolution.<<<<<<< in the tree plus a human holding the pieces.intent (goal + constraints + allowed scope) is what sessions open against, what leases and contention checks are scoped by, and what avcs.context.build hands the next agent.git stores snapshots and leaves the merge to text selection; AVCS stores the operation graph and makes the merge a computation over intent, evidence, and decisions. That is why it is deliberately git-incompatible — these objects are the engine, not metadata. (git interop still exists, as a bridge: docs/14, docs/20.)
| # | Principle | Contrast with Git |
|---|---|---|
| 1 | Operations are history, not commits | A commit is merely a checkpoint over many operations |
| 2 | Identity is the entity ID, not the file path | Rename + edit can auto-merge |
| 3 | Merge is a deterministic reduction, not text selection | No conflict markers |
| 4 | A conflict is a first-class `decision` object, not a broken file | The rationale stays in history |
| 5 | AI output is a proposed operation with attached evidence, not trusted code | A behavior change with no test cannot be accepted |
| 6 | Code never defaults to last-write-wins | Precedence is decided by policy |
Every meaningful thing is a content-addressed, append-only object. Code is a *projection* over the operation DAG, never stored as commits.
| Object | Role |
|---|---|
intent | Why a change is being made (goal + constraints + allowed scope) |
session | An agent/human work episode against an intent |
operation | A single semantic change unit — the real history |
evidence | Machine-checkable proof (test / typecheck / lint / scan) attached to operations |
decision | A recorded resolution of a conflict or design choice |
checkpoint | A verified (ops + policy + materializer) state vector — replaces a commit |
view | A declarative query over the operation graph — replaces a branch |
release | A signed, provenance-bearing checkpoint — replaces a tag |
policy | The deterministic merge rules the reducer is parameterized by |
…plus blob for raw content and the governance objects (lease, membership, protection, promotion, redaction, override, approval, line, integration) used by the multi-machine and security phases.
AVCS never falls back to last-write-wins for code. Contending operations are graded and resolved with a recorded rationale:
autoDecisionsEvidence trust matters: an operation's own author cannot vouch for it. Evidence-gating and the passing-test bonus only count evidence produced by a *non-authoring, trusted* actor (CI bot / human).
The reducer and policy engine are the foundation; the higher phases build distributed collaboration, security, and observability on top.
Foundation (Phases 1–6)
.avcs/objects)src/merge/merge3.ts), so edits to disjoint regions of one file auto-merge regardless of language; overlapping edits become a policy-resolved conflict region. No language parsing in the coreWorkLease, RepairContextrecallDecisions) and distilled "learned policies" that bias future auto-resolutionCollaboration, scale & security (Phases 7–12)
pull (object gossip; two replicas converge to the same treeHash), protection + finalize CAS (non-fast-forward rejected, so a stale push can't overwrite fresh history)portOp (backport = cherry-pick)materializeAt (time travel), chunked large-blob storage with dedupblame (who/why), logP, deterministic bisect, diffpromote + untrusted-CI gateredact (byte-eviction of leaked secrets, oid preserved), break-glass override, forward-only rollbackavcs undo [--last | …] [--purge] [--no-git]: drop local ops from the view, and with --purge evict the bytes they uniquely reference. Refuses once the ops have been pushed, because that case belongs to admin-gated redact. In a git-bridged repo --purge clears the git copy too — but only where it can prove the rewrite is safe and local (nothing on a remote, the commits at the tip, no other work in them, a clean tree); anywhere else it still does the AVCS side and names precisely what is left and the one command that fits, up to and including "rotate the credential, it is already published"checkout records what it projected (.avcs/projection.json, path → blob oid) and, on the next projection, removes the files the target view no longer contains. Files it never wrote — build output, ignored files, anything you just created — are untouched, and a projected file you have since edited is kept and named in a notice rather than silently overwritten. Switching views therefore yields *that view*, not the union of every view pro冒頭だけを表示しています。続きはリポジトリで読めます