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.
Available components
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.
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
claude mcp add eternal-roman-ledger -- npx -y @eternal-roman/ledger-mcp
codex mcp add eternal-roman-ledger -- npx -y @eternal-roman/ledger-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"eternal-roman-ledger": {
"type": "local",
"command": [
"npx",
"-y",
"@eternal-roman/ledger-mcp"
],
"enabled": true
}
}
} openclaw mcp add eternal-roman-ledger --command npx --arg -y --arg @eternal-roman/ledger-mcp
mcp_servers:
eternal-roman-ledger:
command: "npx"
args: ["-y", "@eternal-roman/ledger-mcp"] {
"mcpServers": {
"eternal-roman-ledger": {
"command": "npx",
"args": [
"-y",
"@eternal-roman/ledger-mcp"
]
}
}
} 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.
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 |
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.
artifact_make Build a canonical financial artifact ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | array | yes | – |
| auditHash | string | yes | The 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. |
| citations | array | yes | Real canon/kernel references (e.g. GAAP/IFRS cites from cite_lookup, or "core:double-entry"). Never defaulted. |
| kernelPlan | string | yes | The actual primitives used, e.g. "Money.from + createEntry + Ledger.apply + validateEntry" |
| ledger | object | – | Optional: 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. |
| proof | string | yes | – |
| reproducibility | string | yes | – |
| scope | string | yes | – |
No output schema declared.
No examples provided.
cashflow_statement Direct-method cash flow 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cashAccountCodes | array | – | Explicit cash account codes |
| end | string | – | Inclusive period end YYYY-MM-DD |
| ledger | object | – | Serialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation. |
| start | string | – | Inclusive period start YYYY-MM-DD |
No output schema declared.
No examples provided.
cite_lookup Look up accounting citations ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| asOf | string | – | – |
| levers | object | – | Optional dimension filters |
| query | string | yes | – |
No output schema declared.
No examples provided.
closing_generate_entries Generate closing entries to Retained Earnings ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| closeDate | string | yes | – |
| ledger | object | – | Serialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation. |
| retainedEarnings | object | – | – |
No output schema declared.
No examples provided.
depreciation_build_schedule Build depreciation / amortization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| commencementDate | string | yes | – |
| cost | object | yes | – |
| decliningRate | string | – | – |
| id | string | yes | – |
| method | string | yes | – |
| salvage | object | yes | – |
| usefulLifePeriods | integer | yes | – |
No output schema declared.
No examples provided.
entry_validate Validate a journal entry ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| entry | object | yes | – |
No output schema declared.
No examples provided.
fx_compute_translation FX translation + CTA ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| asOf | string | yes | – |
| ledger | object | – | Serialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation. |
| rates | object | yes | – |
| reportingCurrency | string | yes | – |
No output schema declared.
No examples provided.
ledger_audit_hash 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.
| Name | Type | Req | Description |
|---|---|---|---|
| ledger | object | – | Serialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation. |
No output schema declared.
No examples provided.
ledger_balance Account 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.
| Name | Type | Req | Description |
|---|---|---|---|
| accountCode | string | yes | – |
| asOf | string | – | Optional as-of date YYYY-MM-DD |
| currency | string | – | – |
| ledger | object | – | Serialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation. |
No output schema declared.
No examples provided.
ledger_post Post an entry to a ledger ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| entry | object | yes | – |
| ledger | object | – | Serialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation. |
No output schema declared.
No examples provided.
ledger_trial_balance Trial balance ~52
Every account in a serialized ledger with its current net balance (one row per currency).
| Name | Type | Req | Description |
|---|---|---|---|
| ledger | object | – | Serialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation. |
No output schema declared.
No examples provided.
ledger_verify_determinism 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 }.
| Name | Type | Req | Description |
|---|---|---|---|
| ledger | object | – | Serialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation. |
No output schema declared.
No examples provided.
ledger_verify_equation Verify accounting equation ~62
Verify Assets + Expenses = Liabilities + Equity + Income (per currency) holds for a serialized ledger. Returns { balanced }.
| Name | Type | Req | Description |
|---|---|---|---|
| ledger | object | – | Serialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation. |
No output schema declared.
No examples provided.
money_compute Exact money arithmetic ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| a | object | yes | – |
| b | – | – | Second operand for add/sub/compare |
| op | string | yes | – |
| rate | object | – | FX rate for convert |
| ratios | array | – | Ratios for allocate |
| roundingMode | string | – | Rounding for mul/div/convert |
| scalar | string | – | Scalar for mul/div, as a decimal string |
No output schema declared.
No examples provided.
periods_create_lock Create a period lock (hard close) ~37
Create an immutable PeriodLock fact for use with guarded posting. effectiveDate <= lockDate will be rejected.
| Name | Type | Req | Description |
|---|---|---|---|
| lock | object | yes | – |
No output schema declared.
No examples provided.
periods_guarded_post Guarded ledger post (respects period locks) ~79
Like ledger_post but rejects entries whose effectiveDate falls on or before any provided period lock. Returns the same shape. Always kernel-verified.
| Name | Type | Req | Description |
|---|---|---|---|
| entry | object | yes | – |
| ledger | object | – | Serialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation. |
| periodLocks | array | – | – |
No output schema declared.
No examples provided.
portfolio_relief Lot relief with holding-period classification ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | – |
| ledger | object | – | Serialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation. |
| longTermThresholdDays | integer | – | – |
| method | string | – | – |
No output schema declared.
No examples provided.
reconcile_positions Reconcile positions against an external source ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| asOf | string | – | Optional as-of date YYYY-MM-DD |
| external | array | yes | – |
| ledger | object | – | Serialized ledger (Ledger.toJSON shape). Strict shape for MCP; kernel fromJSON does final validation. |
No output schema declared.
No examples provided.
settlement_build_entries Settlement-date (T+N) entries for a fill ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| fill | object | yes | – |
| lotMethod | string | – | – |
| settlementDate | string | yes | – |
No output schema declared.
No examples provided.
trace_run Trace a sequence of entries ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| entries | array | yes | – |
No output schema declared.
No examples provided.