
Audit Ledger Mcp
io.github.shahidh68Published by GitHub account shahidh68v0.3.1Updated Oct 24, 2026
Record AI decisions to a tamper-evident audit ledger from any MCP-compatible agent.
The publisher's own server: audit.domains - Domain Valuation
Overview
A local MCP server that lets an assistant record AI decisions to a tamper-evident audit ledger, verify records, and check log completeness.
- What you can do
- Record decisions: log an AI decision with model version, hashed prompts and inputs, output and human-in-the-loop flag, returning an event ID and timestamp. Verify records: cross-check a stored decision against its immutable copy and report whether integrity is verified. Check completeness: compare the tenant counter against stored rows and list missing sequence numbers. List decisions: query recent decisions for the tenant, optionally within a time window and with a limit.
- When to use it
- For teams that need a durable, tamper-evident record of what an AI agent decided, for example EU AI Act Article 12 logging, model risk evidence, or GDPR data minimisation. Useful when agents such as Claude Desktop, Cursor or LangGraph should write audit entries automatically after each step.
- Requirements
- Runs locally over stdio via npx or a global npm install (Node 20+). With no configuration it uses a shared public sandbox tenant. Production use needs AUDIT_API_URL plus tenant keys AUDIT_WRITE_KEY and AUDIT_READ_KEY, and preferably AUDIT_HMAC_KEY; optional AUDIT_TIMEOUT_MS and AUDIT_RETRY_ATTEMPTS. Network access to the ledger API is required.
Installation
In SourceWeft
- Open Audit Ledger Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
audit-ledger-mcp
Connect Claude, Cursor, LangGraph, or your own agent to the AI Audit Ledger. This MCP server gives an agent the tools to record, check, and list decisions in a tamper-evident log with one line of config.
It is built for teams that need a clear record of AI decisions: EU AI Act Article 12 logging, FCA SS1/23 model risk evidence, and GDPR data minimisation. Raw personal data is hashed locally before anything is sent, so the ledger only sees fingerprints.
[npm] [License: Apache 2.0] [MCP]
The AI Audit Ledger family. This MCP server writes decisions to the ledger, which proves what happened and whether the record was changed. The AI Decision Evidence Hub sits above the ledger, read-only. It turns each lightweight decision record into an audit case file by showing what evidence is present, what is still missing, who owns each gap, and the current readiness score. Family: audit-ledger · audit-ledger-mcp · evidence-hub.
Try the live dashboard → · 30 synthetic decisions written via this MCP server, queryable and verifiable.
A LangGraph workflow calls
record_decisionafter each agent step. Three audit events written to the live ledger; every one independently verifiable.
What it does
Exposes four tools to any MCP-compatible agent:
Each call ends up as a regulator-grade audit record in your deployed ledger — DynamoDB for query, S3 Object Lock COMPLIANCE mode for the immutable copy, 7-year retention by default.
Quick start — zero configuration
That's it. With no environment variables, the server boots into sandbox mode and writes records to a shared public tenant on a hosted ledger. You can try every tool — record_decision, verify_decision, verify_completeness, list_decisions — without provisioning anything.
When sandbox mode is active, you'll see a banner on stderr:
Sandbox properties
Wire it into Claude Desktop with zero config
Restart Claude Desktop. The four tools appear in the MCP menu immediately. Try asking Claude to "record this decision: should X be approved?" and watch a record land in the sandbox dashboard.
Production install
For real workloads, deploy your own audit ledger and point the MCP server at it:
Configure with the API URL plus your tenant keys (any of them being set switches off sandbox mode). AUDIT_HMAC_KEY is technically optional for backwards compatibility but strongly recommended — see the note above the value below:
The full template lives in .env.example.
Wire it into an agent
Claude Desktop
Edit your claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json):
AUDIT_HMAC_KEY is the tenant secret used to keyed-hash PII locally before any payload leaves the MCP server process. Generate it once with node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" and store the result in the env block above. The MCP never transmits this value, only reads it.
Restart Claude Desktop. You'll see "audit-ledger" in the MCP tools menu. Ask Claude something like "Record this decision: I declined the application because…" and watch it call record_decision automatically.
Cursor
In Cursor settings → MCP → add server:
LangGraph (Python)
Using langchain-mcp-adapters:
Custom client (raw MCP)
The server speaks MCP over stdio. Send initialize, tools/list, and tools/call requests per the MCP specification.
How a record_decision call flows
Storage on the AWS side happens asynchronously through SQS → Processor Lambda → DynamoDB + S3 Object Lock. See the main repo's ARCHITECTURE.md for the full path.
Tool reference
record_decision
Record an AI decision to the ledger.
verify_decision
Tamper-check a stored record.
Returns the DynamoDB record, the S3 record, and integrity_verified: true/false.
verify_completeness
Detect missing records. Sister tool to verify_decision: that one proves a record that exists has not been altered; this one proves no records have been deleted.
Returns the requested range, the expected vs found count, the list of missing sequence numbers, and a human-readable note.
list_decisions
List recent decisions for the calling tenant.
Security
- PII hashing happens in this process, not in the ledger. HMAC-SHA256 over UTF-8, keyed off the
AUDIT_HMAC_KEYyou set in your environment. The key never leaves your process; only the 64-char hex digest is sent. Plain SHA-256 of low-entropy values (names, emails) is brute-forceable in seconds and under ICO/EDPB guidance still counts as personal data, which is why the keyed version is the default for new installs. For backwards compatibility, ifAUDIT_HMAC_KEYis unset the MCP falls back to plain SHA-256 and logs a one-time deprecation warning on stderr; existing setups keep working unchanged. - API keys are never logged. They come from environment variables, are passed in the
x-api-keyheader, and are never echoed back to the agent or written to disk. - Two key namespaces. Write keys cannot read; read keys cannot write. A leaked write key cannot exfiltrate data; a leaked read key cannot plant fake records.
- Errors are propagated with HTTP status passthrough. Rate limit, invalid key, and validation errors surface to the agent so it can react appropriately rather than retry blindly.
What this is not
- Not legal advice. This is infrastructure that produces audit evidence. Whether that evidence satisfies any specific regulatory obligation is a question for your legal team.
- Not a substitute for a model risk audit. It records what the AI did, not whether it was right.
- Not a bias or fairness testing tool. It is the audit layer underneath whatever testing you already do.
Companion: AI Decision Evidence Hub
This MCP server writes decisions to the ledger — the immutable record of what happened. The AI Decision Evidence Hub is the read-only workbench above the ledger. It answers the next question an auditor asks: the decision is recorded, but is the evidence complete enough to review?
For every recorded decision it produces:
- an audit-readiness score (0–100) across nine evidence categories (model, data, policy, human review, monitoring, prompt, integrity, retention, decision);
- exactly what evidence is present vs missing, and who owns each expected gap;
- a per-decision audit pack that can be printed, saved as PDF, or downloaded as JSON;
- a dashboard (cross-linked with the ledger's), plus a manifest-based resolver that auto-fills static evidence.
Open gaps are normal. The ledger keeps the decision record small and tamper-evident; Evidence Hub shows the follow-up evidence needed to make that decision audit-ready. It reads the ledger over its API and never modifies a record. Serverless on AWS (Lambda + DynamoDB). See its Customer Guide and Admin Runbook.
The family: audit-ledger (what happened) · audit-ledger-mcp (this server — how agents write decisions) · evidence-hub (audit-readiness).
Development
The server is TypeScript on Node 20+, ESM, stdio transport, using @modelcontextprotocol/sdk.
Related
- shahidh68/audit-ledger — the AWS infrastructure this server talks to. CDK stack, Python and Node SDKs, compliance dashboard, full architecture documentation.
- shahidh68/evidence-hub — the audit workbench above the ledger. It scores each decision's evidence, treats open gaps as expected follow-up work, and generates printable/downloadable audit packs. (Customer Guide · Admin Runbook)
License
Apache License 2.0 — see LICENSE.
The patent grant is intentional. Compliance infrastructure sits adjacent to enterprise legal review and the explicit grant matters there.
Author
Built by Shahid. Available for Principal AI Engineering and Head of AI Engineering roles, and fractional advisory engagements, in UK regulated fintech.
Source: README.md at commit 7cfa51e
Tools
0Version history
1- v0.3.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Audit integrations
audit.domains - Domain Valuation
domains.auditOfficial publisher
Deterministic domain-name valuation: fair-value intervals, comparable recorded sales, availability checks, and a verified for-sale listing market.
Revenue Agent — OpenAPI Audit & Change Detection
news.prhOfficial publisher
A remote MCP endpoint that audits OpenAPI specifications and detects API changes, charging $0.10 USDC per analysis via x402 on Base.

SEO Audit & Broken Link Checker
Published by GitHub account prometheus-maker
An Apify-hosted MCP server that audits a website's pages for SEO metadata and finds broken links and images, returning per-page scores.

FinePrint AI Legal Risk & Contract Audit MCP Server
Published by GitHub account RitualDev-Lab
Local in-memory scanner that grades legal contracts, NDAs and leases for risk and drafts redline amendments for coding agents.

Mcp Supply Audit
Published by GitHub account kimmawla
Audits MCP servers as supply-chain artifacts — registry entries, PyPI/npm packages, client configs and tool definitions — using read-only static checks.