Atlas / MCP servers / volter-ai / ztrack

ztrackBLOCK

mcp/volter-ai/ztrack

ztrack: evidence-gated task tracking for AI agents

Verdict
BLOCK
Grade
D
Trust score
61 /100
Exposed tools
7 4r · 3w · 0d
Transport
—
License
Apache-2.0
Stars
0
01

Overview

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

ztrack

Done is earned, not declared. A verification gate for AI coding agents — every “done” backed by a real commit and proof, or it doesn’t pass.

Setup · Usage · Guide · Support · Startup Pilot

green; fake SHA -> exit 1" width="680">

AI coding agents close tickets on prose. "All tests pass, feature complete" — and the commit it cited never existed. Your tracker stored the claim with perfect fidelity and verified nothing.

ztrack is a typechecker for your issue tracker. A checked acceptance criterion must cite a commit SHA that exists in git, plus the eviden

Read from source at commit 16fe03c74cdeOBSERVED · 2026-10-12
Advertisement
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
claude mcp add ztrack-visualizer --env GH_TOKEN=${GH_TOKEN} --env GITHUB_TOKEN=${GITHUB_TOKEN} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "ztrack-visualizer": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "GH_TOKEN": "${GH_TOKEN}",
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}
03

Exposed tools (7)

4 read · 3 write · 0 destructive.

ToolRiskDescription
tracker_checkreadValidate the tracker through the single pipeline (parse → strict schema → pure rules: state gates, evidence/SHA anchoring). Returns { ok, summary, findings }; ok=false means findings must be resolved with evidence.
tracker_fmtwriteCanonicalize an issue body (whitespace, checkbox markers, section order). write=false previews.
tracker_initreadInitialize ztrack in the current project (writes .volter/tracker-config.json with the selected validation preset, day-one check defaults, and a managed .gitignore). Call this first in a fresh repo — the server starts without a config so an MCP-only agent can bootstrap. Idempotent.
tracker_issue_createwriteCreate an issue.
tracker_issue_listreadList tracker issues (state filter optional).
tracker_issue_viewreadView one issue including its body.
tracker_patchwriteEdit an issue by overlaying a typed fragment onto the issue (or one acceptance criterion, by acId) and re-serializing through the active preset.
04

Trust audit

BLOCKgrade D · trust 61/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

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

What the source does

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

Findings (18)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/sync/hermes/board.ts:70
const list = JSON.parse(await exec(['list', '--json'])) as Json[];
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/sync/hermes/board.ts:106
const run = (args: string[]) => exec(args).then(() => undefined);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/sync/hermes/board.ts:118
const out = JSON.parse(await exec(args)) as Json;
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
demos/visualizer-mod.sh:151
if bun -e "try { process.exit((await fetch('http://127.0.0.1:$port/')).status === 200 ? 0 : 1); } catch { process.exit(1); }" >/dev/null 2>&1; then up=1; break; fi
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
demos/visualizer-mod/dom-check.mjs:34
const base = `http://127.0.0.1:${port}`;
LOWInventory / provenance · inv.hidden_file · CWE-1104
.termfleet-virtual-tmux-oasd-layout.json
.termfleet-virtual-tmux-oasd-layout.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.termfleet-virtual-tmux-p10-layout.json
.termfleet-virtual-tmux-p10-layout.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.termfleet-virtual-tmux-proof1-layout.json
.termfleet-virtual-tmux-proof1-layout.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.termfleet-virtual-tmux-termfleet-virtual-layout.json
.termfleet-virtual-tmux-termfleet-virtual-layout.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
boilerplates/presets/simple-gh-sdlc.test.ts:7
import { assertAcSubLineFidelity, assertNotePositionFidelity, assertRoundTripFidelity, assertSdlcGrammarConformance, assertVisualizerSpecConformance } from '../../src/testkit/presetConformance.ts';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
boilerplates/presets/simple-sdlc.test.ts:7
import { assertAcSubLineFidelity, assertNotePositionFidelity, assertRoundTripFidelity, assertSdlcGrammarConformance, assertVisualizerSpecConformance } from '../../src/testkit/presetConformance.ts';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
boilerplates/presets/spec.test.ts:3
import { assertRoundTripFidelity, assertVisualizerSpecConformance } from '../../src/testkit/presetConformance.ts';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
boilerplates/presets/speckit.test.ts:4
import { assertReadOnlyRoundTripExemption, assertVisualizerSpecConformance } from '../../src/testkit/presetConformance.ts';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
boilerplates/presets/visualizerVocabulary.test.ts:11
import type { CoreRoot, Preset } from '../../src/core/engine.ts';
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@types/bun, @types/node, @types/react, @types/react-dom, @volter/twin-github, @volter/twin-jira, @volter/world-core, happy-dom
Why it matters. 9 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
visualizer/package.json
react, react-dom, @types/react, @types/react-dom
Why it matters. 4 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
docs/AGENT-PLAYBOOK.md:115
claude -p 'Adopt ztrack in this repository. Start by reading https://github.com/volter-ai/ztrack/blob/main/README.md, https://github.com/volter-ai/ztrack/blob/main/docs/GUIDE.md, https://github.com/vo
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOPrompt injection · prompt.fetch_and_trust · CWE-94, CWE-1427
docs/GUIDE.md:515
A read-only web view (requires [Bun](https://bun.sh); first run installs its client deps once). It
Why it matters. remote text is to be obeyed as instructions

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha 16fe03c74cdefull audit observations/trust-audit/mcp-server/volter-ai__ztrack.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-1216fe03c74cdeBLOCKD61first audit
06

Questions

What is the ztrack MCP server?

ztrack: evidence-gated task tracking for AI agents

What tools does ztrack expose?

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

Is ztrack safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (61/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does ztrack need?

It reads GH_TOKEN and GITHUB_TOKEN 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 current is this page?

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

Advertisement