Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.eternal-roman/ledger

NPM · @ETERNAL-ROMAN/LEDGER-MCP · SCANNED AUG 18

Exact-decimal double-entry for agents. Call MCP tools; do not do money math in tokens.

69 Trust /100
Trust breakdown (6 categories)

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. How we score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 30 of 98 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 3 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability84
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 2047 tokens (~89/item across 23 items; 20 tools + 3 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage81
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 44% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @eternal-roman/ledger-mcp

# add to Claude Code
claude mcp add eternal-roman-ledger -- npx -y @eternal-roman/ledger-mcp
# add to Codex CLI
codex mcp add eternal-roman-ledger -- npx -y @eternal-roman/ledger-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "eternal-roman-ledger": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@eternal-roman/ledger-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add eternal-roman-ledger --command npx --arg -y --arg @eternal-roman/ledger-mcp
# ~/.hermes/config.yaml
mcp_servers:
  eternal-roman-ledger:
    command: "npx"
    args: ["-y", "@eternal-roman/ledger-mcp"]
// mcp.json
{
  "mcpServers": {
    "eternal-roman-ledger": {
      "command": "npx",
      "args": [
        "-y",
        "@eternal-roman/ledger-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 14 Aug 26 69

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 18 Aug 2026 · Analysed npm/@eternal-roman/ledger-mcp@0.19.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm
Dependencies 98 packages
Packages resolved 98
Stale 30
Tree resolution Complete
MCP tools · 20 exposed · ~1,985 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
artifact_make ~314

Assemble a Canonical Financial Artifact (scope, assumptions, citations, kernel plan, proof, reproducibility, auditHash) — the structured proof bundle a financial answer should carry. Every field is required and auditHash is verified, not just format-checked: it must be a digest a kernel call (ledger_post / ledger_audit_hash / ledger_verify_determinism / trace_run) actually returned in this session, or one this tool can recompute from the serialized `ledger` you pass alongside it. A fabricated value — even a well-formed one — is rejected. Validates that the kernel plan references core primitives; errors otherwise.

NameTypeReqDescription
assumptionsarrayyes
auditHashstringyesThe exact auditHash string returned by a prior ledger_post / ledger_audit_hash / ledger_verify_determinism / trace_run call in this session — proves the claim instead of asserting it.
citationsarrayyesReal canon/kernel references (e.g. GAAP/IFRS cites from cite_lookup, or "core:double-entry"). Never defaulted.
kernelPlanstringyesThe actual primitives used, e.g. "Money.from + createEntry + Ledger.apply + validateEntry"
ledgerobjectOptional: the serialized ledger the auditHash belongs to. If provided, the hash is recomputed from it and compared — useful when the hash was produced outside this server process.
proofstringyes
reproducibilitystringyes
scopestringyes

No output schema declared.

No examples provided.

cashflow_statement ~141

Derive an exact direct-method cash flow statement from a serialized ledger: operating / investing / financing flows per currency, with opening and closing cash. Cash accounts are detected by convention (Asset codes starting CASH or names containing "cash") unless cashAccountCodes is supplied. Self-checks that opening + netChange === closing. Kernel verified.

NameTypeReqDescription
cashAccountCodesarrayExplicit cash account codes
endstringInclusive period end YYYY-MM-DD
ledgerobjectSerialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation.
startstringInclusive period start YYYY-MM-DD

No output schema declared.

No examples provided.

cite_lookup ~80

Retrieve matching IFRS/GAAP facts and citations from the kernel knowledge graph for a query (e.g. "revenue recognition", "lease", "cost basis"). Use to ground claims in canon rather than asserting from memory.

NameTypeReqDescription
asOfstring
leversobjectOptional dimension filters
querystringyes

No output schema declared.

No examples provided.

closing_generate_entries ~89

Given a (serialized) ledger snapshot and close date, returns balanced JournalEntry[] that close Income/Expense to RE using the kernel. All entries are pre-validated. Kernel verified.

NameTypeReqDescription
closeDatestringyes
ledgerobjectSerialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation.
retainedEarningsobject

No output schema declared.

No examples provided.

depreciation_build_schedule ~98

Exact straight-line (allocate) or declining balance schedule. Input cost/salvage/life/method. Returns periods with exact Money amounts as strings. Kernel-allocate based.

NameTypeReqDescription
commencementDatestringyes
costobjectyes
decliningRatestring
idstringyes
methodstringyes
salvageobjectyes
usefulLifePeriodsintegeryes

No output schema declared.

No examples provided.

entry_validate ~67

Run the kernel invariant check on a proposed journal entry: balanced debits=credits per currency, >=2 lines, positive amounts, no sub-scale precision, valid ISO date, no silent currency mix. Returns { ok, violations[] }. Always validate before posting.

NameTypeReqDescription
entryobjectyes

No output schema declared.

No examples provided.

fx_compute_translation ~91

Translate ledger balances at asOf using provided rates into reportingCurrency. Returns holdings, translated totals, and the exact CTA plug amount. Always kernel-verified for balance.

NameTypeReqDescription
asOfstringyes
ledgerobjectSerialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation.
ratesobjectyes
reportingCurrencystringyes

No output schema declared.

No examples provided.

ledger_audit_hash ~68

Compute the tamper-evident SHA-256 audit-hash chain for a serialized ledger. Any change to any field or line ordering yields a different hash.

NameTypeReqDescription
ledgerobjectSerialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation.

No output schema declared.

No examples provided.

ledger_balance ~103

Net balance for an account in a serialized ledger, per its normal balance side. Pass "currency" for multi-currency accounts (otherwise fails closed). Returns all currencies via balancesByCurrency too.

NameTypeReqDescription
accountCodestringyes
asOfstringOptional as-of date YYYY-MM-DD
currencystring
ledgerobjectSerialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation.

No output schema declared.

No examples provided.

ledger_post ~94

Validate and apply a journal entry to a (serialized) ledger, returning the new ledger JSON plus its audit hash. The kernel refuses unbalanced state: an invalid entry is NOT posted and its violations are returned instead. Omit "ledger" to start from empty.

NameTypeReqDescription
entryobjectyes
ledgerobjectSerialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation.

No output schema declared.

No examples provided.

ledger_trial_balance ~52

Every account in a serialized ledger with its current net balance (one row per currency).

NameTypeReqDescription
ledgerobjectSerialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation.

No output schema declared.

No examples provided.

ledger_verify_determinism ~71

Rebuild a serialized ledger twice and confirm the two runs are byte-for-byte identical via their audit hashes AND that the fundamental equation holds. Returns { ok, hash }.

NameTypeReqDescription
ledgerobjectSerialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation.

No output schema declared.

No examples provided.

ledger_verify_equation ~62

Verify Assets + Expenses = Liabilities + Equity + Income (per currency) holds for a serialized ledger. Returns { balanced }.

NameTypeReqDescription
ledgerobjectSerialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation.

No output schema declared.

No examples provided.

money_compute ~151

Perform EXACT decimal money arithmetic with the kernel (decimal.js, never floats). Use this for every monetary calculation instead of computing in your own tokens. Ops: add, sub (same currency), mul, div (money x scalar), allocate (split by ratios, remainder to last), convert (via FX rate), compare.

NameTypeReqDescription
aobjectyes
bSecond operand for add/sub/compare
opstringyes
rateobjectFX rate for convert
ratiosarrayRatios for allocate
roundingModestringRounding for mul/div/convert
scalarstringScalar for mul/div, as a decimal string

No output schema declared.

No examples provided.

periods_create_lock ~37

Create an immutable PeriodLock fact for use with guarded posting. effectiveDate <= lockDate will be rejected.

NameTypeReqDescription
lockobjectyes

No output schema declared.

No examples provided.

periods_guarded_post ~79

Like ledger_post but rejects entries whose effectiveDate falls on or before any provided period lock. Returns the same shape. Always kernel-verified.

NameTypeReqDescription
entryobjectyes
ledgerobjectSerialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation.
periodLocksarray

No output schema declared.

No examples provided.

portfolio_relief ~120

Reconstruct open lots and realized disposals for an asset from the ledger using FIFO / LIFO / HIFO, with exact cost basis. Each disposal is broken down per consumed lot and classified short vs long term by holding days (default threshold 365). Fails closed on oversell. Kernel verified.

NameTypeReqDescription
assetstringyes
ledgerobjectSerialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation.
longTermThresholdDaysinteger
methodstring

No output schema declared.

No examples provided.

reconcile_positions ~111

Compare ledger-derived balances against an external snapshot (exchange/custodian/bank), matched by account code AND currency. Returns per-account status (matched / mismatch / missing_in_ledger / missing_in_external) with exact diffs and an overall reconciled flag. Kernel verified.

NameTypeReqDescription
asOfstringOptional as-of date YYYY-MM-DD
externalarrayyes
ledgerobjectSerialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation.

No output schema declared.

No examples provided.

settlement_build_entries ~93

Split a fill into trade-date entries (asset moves; cash booked as a settlement receivable on a sell / payable on a buy) and settlement-date entries (the receivable/payable is swapped for cash). All entries are kernel-validated and balanced. Returns both entry sets as JSON. Kernel verified.

NameTypeReqDescription
fillobjectyes
lotMethodstring
settlementDatestringyes

No output schema declared.

No examples provided.

trace_run ~64

Replay a sequence of journal entries on a fresh ledger, capturing balances, the fundamental equation, and an audit-hash prefix at every step. This is the agent-facing audit trail. Fails closed with the offending step if any entry is invalid.

NameTypeReqDescription
entriesarrayyes

No output schema declared.

No examples provided.