Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Tamper-proof audit trail for AI agents. Signed receipts, offline-verifiable, zero backend.
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": {
"actionproof": {
"command": "npx",
"args": [
"-y",
"actionproof"
]
}
}
}Run this in your terminal
claude mcp add actionproof -- npx -y actionproofPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"actionproof": {
"command": "npx",
"args": [
"-y",
"actionproof"
]
}
}
}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": {
"actionproof": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"actionproof"
]
}
}
}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 7, 2026
The registry name was verified with the GitHub account Burakfenerci5, which owns the repo
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 1 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.0.3) reached the registry 4 months 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, 御府和田玉 在售作品查询
Servers in the same category from other makers, sorted by stars.
Reading a card:★ 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.
Live in-stock Hetian jade from Yufu, Shanghai: prices, monthly price guide, book a viewing.
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.
A tamper-proof audit trail for AI agents. Verifiable observability: every action your agent takes gets a cryptographically signed receipt you can verify offline, anywhere — zero backend.
Observability tools (LangSmith, Langfuse, Arize) show you what your agent *reportedly* did — traces recorded inside their platform, on their word. But those logs are self-asserted: an agent, a bug, or an attacker can write anything into them, and you can't prove after the fact that the record wasn't edited.
ActionProof adds the missing layer: verifiable observability. Each action — email sent, form filed, payment made — gets a tamper-evident, Ed25519-signed receipt capturing *what* was done, *by which agent*, *when*, and *on whose authority*. Edit any field and verification fails. It's an audit trail you (or an auditor, a user, or a counterparty) can trust without trusting the agent, the vendor, or us.
Built for the compliance floor that's coming — the EU AI Act (Article 12) and ISO 42001 require traceable, tamper-evident logs for automated decisions. ActionProof produces exactly that, as a portable primitive rather than a walled-garden platform.
npm install actionproof # TypeScript / JavaScript
pip install actionproof # Python
Receipts are cross-compatible: one signed in TypeScript verifies in Python, and vice-versa.
import { attest, verify, generateKeypair } from "actionproof";
const agent = generateKeypair(); // agent's identity = its key (did:key)
const receipt = attest(agent, { type: "email.send", summary: "Sent renewal quote to jane@acme.com", params: { to: "jane@acme.com", amount: 4200 }, // hashed, not stored in clear result: { smtp: 250 }, outcome: "ok", });
verify(receipt); // -> { valid: true, agent: "did:key:z6Mk..." }
from actionproof import attest, verify, generate_keypair
agent = generate_keypair()
receipt = attest( agent, type="email.send", summary="Sent renewal quote to jane@acme.com", params={"to": "jane@acme.com", "amount": 4200}, # hashed, not stored in clear result={"smtp": 250}, outcome="ok", )
verify(receipt) # -> VerifyResult(valid=True, agent="did:key:z6Mk...")
Edit any field of that receipt and verify returns invalid. That's the whole idea.
ActionProof complements your observability stack rather than replacing it. Keep using LangSmith / Langfuse / Arize for rich traces, latency, and cost — then attach an ActionProof receipt to the actions that *matter* (the ones that move money, change state, or touch a user's data) so that part of your trail is tamper-evident and independently verifiable.
| Observability platforms | ActionProof | |
|---|---|---|
| Recording | traces/logs inside the vendor | signed receipts you hold |
| Trust model | trust the platform's stored record | verify cryptographically, trust no one |
| Tamper-evidence | editable by whoever has DB access | any edit breaks the signature |
| Portability | lives in the vendor | offline, cross-language, anywhere |
| Cost at scale | metered per event | ~$0 (local signing, zero backend) |
It's a *proof*, not just a log entry — the difference between "our dashboard says the agent did this" and "here's a signed receipt anyone can verify."
result_hash — an x402 settlement, an AP2 mandate reference, a DKIM-signed SMTP 250 — to make a receipt as strong as its counterparty evidence.did:key (self-describing public key). Who you *trust* is your policy (pinned keys, an allow-list, or the optional log below).See SPEC.md for the wire format.
The fastest way to give an agent receipts: run ActionProof as an MCP server and add it to Claude Desktop / Cursor. Your agent gets three tools — attest_action, verify_receipt, get_identity — and can emit a receipt right after it does something.
Add to your MCP client config (e.g. Claude Desktop claude_desktop_config.json):
{
"mcpServers": { "actionproof": { "command": "npx", "args": ["-y", "actionproof-mcp"] } } }
The server mints a stable Ed25519 identity on first run (stored at ~/.actionproof/agent.key.pem, override with ACTIONPROOF_KEY_PATH). Every receipt it signs is attributable to that one agent did:key.
You don't have to call attest by hand after every action — wrap the tool once and every call emits a receipt.
TypeScript (framework-agnostic; works with LangChain.js, Mastra, Vercel AI SDK):
import { withReceipts, generateKeypair } from "actionproof";
const agent = generateKeypair(); const send = withReceipts(agent, rawSendEmail, { type: "email.send", onReceipt: (r) => store(r), // called with a signed receipt on every call });
Python (@attest_action decorator, or a LangChain/CrewAI callback):
from actionproof import attest_action, ActionProofCallbackHandler
@attest_action(agent, type="email.send", on_receipt=store) def send_email(to, body): ...
handler = ActionProofCallbackHandler(agent, on_receipt=store) agent_executor.invoke(input, config={"callbacks": [handler]})
git clone https://github.com/Burakfenerci5/actionproof
cd actionproof && npm install npm run demo # full sign → verify → tamper loop npm test # TS suite (9 tests) npm run mcp # start the MCP server over stdio
cd python && pip install -e ".[dev]" && pytest # Python suite (7 tests, incl. TS↔Python interop)
MIT.