Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
AI-native version control where intent, operation, evidence and decision are first-class objects.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
AVCS_REPONecesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"avcs": {
"command": "npx",
"args": [
"-y",
"@izagood/avcs",
"mcp"
],
"env": {
"AVCS_REPO": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add avcs --env AVCS_REPO=your-value -- npx -y @izagood/avcs mcpCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"avcs": {
"command": "npx",
"args": [
"-y",
"@izagood/avcs",
"mcp"
],
"env": {
"AVCS_REPO": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"avcs": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@izagood/avcs",
"mcp"
],
"env": {
"AVCS_REPO": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
AVCS_REPO envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub izagood, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.42.0) llegó al registro hace 2 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, FlyDocs
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
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.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
*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 proSolo se muestra el principio; lee el resto en el repo