Atlas / MCP servers / izagood / AVCS — Agentic Version Control System

AVCS — Agentic Version Control SystemSAFE

mcp/izagood/avcs

Agentic Version Control System — an AI-native VCS where intent, session, operation, evidence and decision are first-class objects and code is a materialized projection of an operation graph.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
49 37r · 12w · 0d
Transport
stdio
License
Apache-2.0
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

An AI-native version control system for humans and AI agents working concurrently.

[](https://github.com/izagood/avcs/actions/workflows/ci.yml)

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:

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

Read from source at commit 4298657bf27aOBSERVED · 2026-10-12
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add avcs -- npx -y @izagood/[email protected] mcp
03

Exposed tools (49)

37 read · 12 write · 0 destructive.

ToolRiskDescription
avcs.approval.recordreadRecord a reviewer verdict on a checkpoint, signed with the reviewer
avcs.blamereadWho currently owns an entity (file:<path> or symbol:<path>#<name>) and WHY — the accepted head op with actor, intent title, and purpose. Stronger than git blame.
avcs.blame.linesreadPer-line provenance: the op that last wrote each line, with actor, intent and purpose. Why THIS line is here.
avcs.checkpoint.createwriteFreeze a verified (ops + policy + materializer + evidence) state vector for a view.
avcs.conflict.listreadList the conflicts that require a human/owner decision in a view.
avcs.contention.checkreadOther actors
avcs.context.buildreadAssemble working context for a scope under a byte budget: provenance, decisions, risks, history. Deterministic truncation.
avcs.decision.recallreadPrior human decisions for a conflict key plus the policies they taught. Read precedent before re-deciding.
avcs.decision.recordreadRecord a human owner
avcs.diffreadDiff two views/lines. format
avcs.evidence.attachreadAttach machine-checkable evidence (test/typecheck/lint/...) to operations. Behavior changes need a passing test to be accepted.
avcs.governance.statusreadRead-only review state for a view: protection rules, head, your role, and the effective approvals.
avcs.guidereadHow to use AVCS: the canonical loop, agent rules, tool index, error recovery. Call this first.
avcs.historywriteHistory of one entity in causal order. Paged: limit (default 20) + cursor.
avcs.integration.statusreadIdempotent lookup of an integration ticket
avcs.integration.submitwriteSubmit a checkpoint to the integration queue. Verdict is advanced, conflict, needs_evidence or queued — never
avcs.intent.createwriteOpen an intent: the goal + constraints + allowed scopes for a unit of work. Agents must work within an intent.
avcs.intent.listreadList intents in the repo. Bounded: limit (default 50).
avcs.intent.readreadRead an intent (goal, constraints, allowed scopes). An agent should read this BEFORE proposing operations so it works within the constraints.
avcs.key.listreadWhich actors this machine can sign as, and which public keys the repo trusts. Ids only, never key material.
avcs.key.provisionreadMint a local signing key for an actor so its decisions and hub writes can be signed. Idempotent.
avcs.lease.requestwriteRequest a soft write-lease over entity scopes BEFORE editing, to avoid duplicating another agent
avcs.line.createwriteFork a long-lived line (e.g.
avcs.line.listreadList the lineage lines in the repo (besides the implicit
avcs.metricsreadIn-process metrics snapshot for this server (reduce cache hit/miss, reduce.ms timing, materialize.calls).
avcs.object.showreadRead an object by oid. Blobs return decoded content (utf8 text or base64); other types return the structured object.
avcs.onboardreadTeach the AVCS loop, rules and error recovery — the guide, inlined.
avcs.operation.backportreadCherry-pick an operation onto another line: mints a new op carrying the change, with derivedFrom provenance. Source line untouched.
avcs.operation.proposereadPropose a semantic change (MVP: file writes). Declare effects honestly — policy gates on them. baseText/baseBlobOid authors a 3-way-mergeable edit_file.
avcs.propose-changereadDraft a change under an intent, with that intent
avcs.release.cutreadCut a release: a conflict-free checkpoint plus evidence, SBOM and artifact references. Refuses if the view has open conflicts.
avcs.repair.contextreadMinimal repair packet for ops whose validation failed: failing output, related decisions, a fix instruction. Cheaper than re-reading the repo.
avcs.resolve-repairreadRepair operations whose validation failed, with the repair packet inlined.
avcs.review-changereadReview a checkpoint: changed paths, evidence and the view
avcs.session.startwriteBegin a work session for an agent/human against an intent. Returns a session id used on every operation.
avcs.sync.landwriteLand work on a protected head in one call: push, merge-check, checkpoint, integrate. Result is landed or a conflict packet.
avcs.sync.pullwritePull objects from the hub (conflict-free gossip). dryRun reports what would arrive without importing.
avcs.sync.pushwritePush local objects to the hub. Returns how many were accepted and how many the gate rejected.
avcs.validate.runwriteRun validation commands against a view and attach treeHash-bound evidence. Pass dir to reuse an existing build environment.
avcs.view.materializereadReduce a view
avcs.workspace.landreadLand a workspace onto its base line: its isolated ops join the base view and merge there. Idempotent.
avcs.workspace.listreadList this repo
avcs.workspace.projectwriteWrite a view to a directory on disk, so build/test loops outside validate.run need no CLI.
checkpointOidreadthe checkpoint under review
guidereadThe canonical loop, agent rules, tool index and error recovery.
intentOidreadthe intent to work under
opsreadcomma-separated operation oids
pathsreadcomma-separated paths you expect to touch
viewreadview name; default main
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (6 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (14)

MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/hub/hubServer.ts:398
const url = `http://127.0.0.1:${port}`;
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
test/hub-transport-auth.test.ts:168
await client.saveLocalKey("ai:claude", kp.privateKey); // the local ~/.ssh/id_ed25519 analogue
Why it matters. touches a credential store
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
test/conformance/core.test.ts:21
import { Repo } from "../../src/api/repo.ts";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
test/conformance/core.test.ts:22
import { computeOid } from "../../src/core/canonical.ts";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
test/conformance/core.test.ts:23
import type { Actor } from "../../src/objects/types.ts";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
test/conformance/detects-nonconforming.test.ts:12
import { computeOid } from "../../src/core/canonical.ts";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
test/conformance/detects-nonconforming.test.ts:13
import { startHub } from "../../src/hub/hubServer.ts";
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
.github/workflows/ci.yml:146
node --experimental-strip-types $GITHUB_WORKSPACE/src/cli.ts push http://127.0.0.1:8431
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
.github/workflows/ci.yml:148
AVCS_CONFORMANCE_URL=http://127.0.0.1:8431 npm run conformance
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
examples/server.py:234
print(f"avcs core server (python, stdlib) on http://127.0.0.1:{args.port}")
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
test/clone-credential.test.ts:90
return { url: `http://127.0.0.1:${port}`, close: () => new Promise<void>((r) => server.close(() => r())) };
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, @types/node, typescript
Why it matters. 3 dependency range(s) float
Fix. pin exact versions or ship a lockfile
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
README.md:251
captured read credential cannot be replayed as a write. That is the right default, and a
Why it matters. asks the agent to read credentials
INFOSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
README.md:306
curl -fsSL https://raw.githubusercontent.com/izagood/avcs/main/install.sh | bash

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha 4298657bf27afull audit observations/trust-audit/mcp-server/izagood__avcs.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-124298657bf27aSAFEB89first audit
06

Questions

What is the @izagood/avcs MCP server?

Agentic Version Control System — an AI-native VCS where intent, session, operation, evidence and decision are first-class objects and code is a materialized projection of an operation graph.

What tools does @izagood/avcs expose?

49 in total: 37 read-only, 12 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is @izagood/avcs safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does @izagood/avcs need?

It reads AVCS_AUTHOR, AVCS_AUTHOR_EMAIL, AVCS_AUTHOR_NAME, AVCS_CONFORMANCE_KEYID, AVCS_CONFORMANCE_PRIVATE_KEY, AVCS_CONFORMANCE_PRIVATE_KEY_FILE, AVCS_KEY and AVCS_KEYSTORE_ADOPT from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does @izagood/avcs run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @izagood/avcs at 0.51.0.

How current is this page?

The grade is for one exact copy of the source (4298657bf27a), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement