Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Offline receipt verifier. Ed25519 signature verification without contacting any server.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"veritasacta-verify": {
"command": "npx",
"args": [
"-y",
"@veritasacta/verify"
]
}
}
}Run this in your terminal
claude mcp add veritasacta-verify -- npx -y @veritasacta/verifyPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"veritasacta-verify": {
"command": "npx",
"args": [
"-y",
"@veritasacta/verify"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"veritasacta-verify": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@veritasacta/verify"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 9, 2026
The publisher (tomjwxf) is not the repo owner (VeritasActa); someone else may have listed it
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 0 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.11.1) reached the registry 15 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Hominoport
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
Engineer in Cyprus for AI agents: technical verdicts, infra rescue, on-site checks. Signed offer.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Check signed records yourself, without contacting the issuing service.
An offline CLI and a shared browser receipt engine. Supply a receipt and a public key obtained through a separate trusted channel, then apply your own trust policy. No account, proxy, signing daemon or onboarding step is required to verify a receipt.
Try the browser sample · Receipt specification · Conformance evidence
npm install -g @veritasacta/verify@0.11.1
verify receipt.json --key YOUR_INDEPENDENTLY_OBTAINED_PUBLIC_KEY
The key is 64 hexadecimal characters. Do not treat a key supplied with an unknown receipt as an independent trust pin. This verification path runs offline once the package is installed; installation and explicitly requested URL/JWKS lookups use the network.
An Acta receipt or audit bundle is never checked with a key taken from the file being checked. A receipt whose signed bytes carry a key (public_key, verification_key, verification_jwk) other than the one you supply fails with key_mismatch, and an envelope whose payload names an issuer_id other than its signature's kid fails with issuer_kid_mismatch. An audit bundle's own verification.signing_keys are used only if you pass --trust-bundle-keys, and a valid result then shows only that the receipts match keys in the same file. Gate records, macro track records, governed receipts, proof packs, context packs, repository evidence, standard files and run manifests carry their own key; checked without --key, the result is undecidable (exit 2). --allow-carried-key accepts it (exit 0) and says the signature proves nothing about who signed; --strict refuses it even then. Key windows apply to the issued_at the signature covers, and disclosures are checked against the commitments the signature covers; a disclosure that cannot be applied is not checked (exit 2).
To try the public example, download this receipt and use its demonstration-only key:
verify current-receipt.json --key ebb8cf3efc78717c50e7c438c0ad5498f8fa4e09607fea1e030ac129b5965225
A valid signature is not proof of claim truth, complete action coverage, signer authority or recipient acceptance. A signed timestamp is an issuer assertion, not an independent timestamp.
| Outcome | Meaning | Next step |
|---|---|---|
| Verified / exit 0 | The checks implemented for this profile passed | Apply identity, authority and reliance policies; read warnings and binding scope |
| Failed / exit 1 | A verification check failed | Check the expected key, signature, structure and reported error |
| Not checked / exit 2 | The verifier could not decide | Supply missing material or use a supported format/algorithm |
Exit 1 does not prove tampering. Supplying the wrong expected key can produce the same result. Some legacy JSON error categories use the name tampered for compatibility; it denotes failed verification, not a forensic conclusion. See error codes and the profile-specific output.
Both use src/detect.js, src/engines/ed25519-receipt.js and the same canonicalizer. The browser bundle is published in browser/, with a SHA-256 build manifest.
The browser accepts individual Ed25519 envelopes, v2 structured receipts, v1 flat receipts and historical website receipt_version: "1.0" receipts. That historical profile excluded public_key from signing and is explicitly labelled; it is not silently promoted to draft-03 conformance. All browser profiles require an external key. Unsupported formats are not checked, not reported as bad signatures.
Both entry points reject duplicate JSON members before parsing. The browser limits input to 1 MiB and depth 64; the CLI file parser allows 50 MiB and depth 128. Bundles and specialist profiles, including selective disclosure, VOPRF, Knowledge Units, Gate evidence and governed-run manifests, require the CLI. Profile success only establishes the checks named in that output, not universal completeness.
| Task | Guide |
|---|---|
| Verify bundles, chains, prompts or specialist artifacts | Advanced reference |
| See this CLI's results on TRACE's Acta fixtures | TRACE fixture results |
| Issue receipts or configure a proxy/daemon | Issuance and adapters |
| Understand threats and limitations | Threat model |
| Report a vulnerability | Security policy |
| Inspect exact release changes | Changelog |
| Run the tests or contribute a fixture | Contributing |
| Understand project decisions and stewardship | Governance |
verify --self-check recomputes monitored source hashes against a bundled integrity commitment (the Sigil). It detects drift from that commitment. Someone replacing both the code and commitment can create a new internally consistent package.
It does not independently authenticate the publisher or establish a canonical release. Pin a reference obtained independently and inspect release provenance. --attest is a local, self-signed integrity statement; separately pin its key before relying on it.
Verifier: [0.11.1](https://github.com/VeritasActa/verify/releases/tag/v0.11.1). Status reviewed 2026-10-25.
Internet-Drafts are proposals, not adopted IETF standards or endorsements.
release-manifest.json is the source for version/status blocks in this README, the website, the organisation profile and draft index. node scripts/sync-public-metadata.mjs --check checks sibling repository copies. No draft is revised or resubmitted by this synchronization.
Maintained by Tom Farley / ScopeBlind. Independent verification does not imply independent organizational governance. Contributions should include reproducible fixtures and negative cases. The contribution guide covers a clean checkout, package checks and useful first contributions. See the public project evidence for reproducible interoperability results and their limits.
npm ci
npm test npm run check:browser npm run check:sigil npm run test:conformance
Apache-2.0. See LICENSE and PATENTS.md for the actual terms. The Acta public record is a separate reference application. ScopeBlind's commercial applications are not prerequisites for verification.