# io.github.shahidh68/audit-ledger-mcp (npm · audit-ledger-mcp)

Record AI decisions to a tamper-evident audit ledger from any MCP-compatible agent.

- Trust score: 67/100 (medium)
- Change this week: +23
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-04

## Components

- npm · `audit-ledger-mcp`: 67/100 (this document), [markdown](https://verifymcp.io/servers/shahidh68-audit-ledger-mcp/audit-ledger-mcp.md), [page](https://verifymcp.io/servers/shahidh68-audit-ledger-mcp/audit-ledger-mcp)

## Channel facts

- Registry: `npm`
- Package: `audit-ledger-mcp`
- Version: `0.3.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-04.

- **Supply Chain Security**: 83/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known medium-severity CVE affects hono 4.12.33, reached via @modelcontextprotocol/sdk > hono. A fixed version is available.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 51 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 768 tokens (~192/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add shahidh68-audit-ledger-mcp -- npx -y audit-ledger-mcp
```

### Codex

```bash
codex mcp add shahidh68-audit-ledger-mcp -- npx -y audit-ledger-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "shahidh68-audit-ledger-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "audit-ledger-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add shahidh68-audit-ledger-mcp --command npx --arg -y --arg audit-ledger-mcp
```

### Hermes

```yaml
mcp_servers:
  shahidh68-audit-ledger-mcp:
    command: "npx"
    args: ["-y", "audit-ledger-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "shahidh68-audit-ledger-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "audit-ledger-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-04 (score 67, −1)

- [security regression] CVE-2026-69207 affects this package: medium
- [security regression] Known CVEs: partial → fail

### 2026-08-03 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 67, +48)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional] Licence: Apache-2.0

### 2026-07-31 (score 19, −25)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 44)

First indexed and scored.

## MCP tools (4)

### `record_decision` (~351 tokens)

Record an AI decision to the audit ledger. Stores model version, hashed inputs, structured output, and human-review flag. The record is immutably sealed in S3 Object Lock for 7 years and queryable for the lifetime of the decision. Use this immediately after any AI decision that may need to be audited later — credit, hiring, fraud, customer routing, content moderation.

Input parameters:

- `ai_decision_output` (object, required): The structured decision the model produced. Stored verbatim. Should NOT contain raw PII — only the decision itself (score, classification, recommendation, reasoning summary).
- `event_id` (string): Optional UUID v4 to identify this decision. Auto-generated if omitted. Useful when the calling system already has its own decision ID.
- `human_in_loop` (boolean, required): Whether a human reviewed or approved this decision before it took effect. Critical for EU AI Act Article 14 (human oversight) compliance.
- `model_version` (string, required): The model and version that produced the decision (e.g. 'claude-sonnet-4.7', 'gpt-4o-2024-08-06'). Required for traceability and model risk audits.
- `raw_system_prompt` (string, required): The system prompt used. Hashed locally before transit — the raw text never leaves this MCP server.
- `raw_user_input` (string, required): The user input the model decided on (CV text, transaction, customer message, etc.). Hashed locally before transit — raw PII never leaves this MCP server.
- `timestamp` (string): Optional ISO 8601 timestamp of when the decision was made. Defaults to the current time. Use this only if recording a backfilled decision.

### `verify_decision` (~100 tokens)

Verify a recorded AI decision has not been altered since it was written. The ledger fetches the queryable copy (DynamoDB) and the immutable copy (S3 Object Lock COMPLIANCE mode) independently and compares them. Returns integrity_verified=true if they match. Use this to satisfy a regulator request or to prove an audit trail to a compliance team.

Input parameters:

- `event_id` (string, required): The UUID v4 event ID of the decision to verify.

### `verify_completeness` (~178 tokens)

Detect whether any audit records have been deleted or omitted for the caller's tenant. Each successfully stored decision receives a per-tenant monotonic sequence number. This tool compares the ledger's counter against the rows actually present in DynamoDB and returns any sequence numbers that are missing. Use this when a regulator or compliance team asks 'can you prove the log is complete?' — verify_decision only proves an existing record was not altered; this proves no record has disappeared.

Input parameters:

- `from` (integer): Inclusive lower bound on sequence_no. Defaults to 1.
- `tenant_id` (string): Required only when calling with the admin read key. Ignored when called with a regular tenant read key — the tenant is inferred from the key.
- `to` (integer): Inclusive upper bound on sequence_no. Defaults to the tenant's current counter value.

### `list_decisions` (~139 tokens)

List recorded AI decisions for the calling tenant within a time window. Returns newest first. The read key scopes the result to the caller's tenant — cross-tenant reads require an admin read key. Use this for compliance review, audit prep, or agent self-inspection of recent activity.

Input parameters:

- `from` (string): ISO 8601 start of the time window (inclusive). Defaults to 7 days before now.
- `limit` (number): Maximum number of records to return (default 100, max 500). Returned newest-first.
- `to` (string): ISO 8601 end of the time window (inclusive). Defaults to now.

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/shahidh68-audit-ledger-mcp/audit-ledger-mcp#diagnostics

## Score history

- 2026-08-04: 67
- 2026-08-03: 68
- 2026-08-02: 67
- 2026-08-01: 19
- 2026-07-31: 19
- 2026-07-30: 44
- 2026-07-28: 44
- 2026-07-27: 44

## Links

- npm package: https://www.npmjs.com/package/audit-ledger-mcp
- Socket report: https://socket.dev/npm/package/audit-ledger-mcp
- Repository: https://github.com/shahidh68/audit-ledger-mcp
- Changelog RSS feed: https://verifymcp.io/servers/shahidh68-audit-ledger-mcp/audit-ledger-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/shahidh68-audit-ledger-mcp/audit-ledger-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/shahidh68-audit-ledger-mcp/audit-ledger-mcp
