Serveur MCP

trial-balance

io.github.theluckystrike/trial-balance
Finance et investissement Public et accessible MCP 2026-07-28

Ce que fait ce MCP

Builds and validates double-entry accounting ledgers, trial balances, account reports, and month-close snapshots for financial periods.

ledger_build
Build the ledger for a period
Derive the double-entry ledger for one period in ONE currency from the invoice, credit note, deposit, expense, bank and asset stores, and register it. Nothing is written back. Free: 3 periods a month.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'maxLength': 10, 'description': 'Last day of the period, YYYY-MM-DD, inclusive'}, 'from': {'type': 'string', 'maxLength': 10, 'description': 'First day of the period, YYYY-MM-DD'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Needed when the period holds documents in more than one currency. Currencies are never added together'}}, 'additionalProperties': False}
ledger_export_csv
Export the ledger as CSV
Return the period's ledger lines as RFC 4180 CSV, one row per leg, as a download link valid for one hour. Pro, but ledger_lines returns these same fields free and unlimited; this only lays them out as CSV columns.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'maxLength': 10, 'description': 'Last day of the period, YYYY-MM-DD, inclusive'}, 'from': {'type': 'string', 'maxLength': 10, 'description': 'First day of the period, YYYY-MM-DD'}, 'source': {'type': 'string', 'maxLength': 200, 'description': 'Only lines derived from this server'}, 'account': {'type': 'string', 'maxLength': 200, 'description': 'Only this account or category prefix'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Needed when the period holds documents in more than one currency. Currencies are never added together'}}, 'additionalProperties': False}
ledger_lines
List ledger lines
List the ledger lines for a period, filtered by account, source server, source_id or date; each carries its debit, credit and bank_ref, with the totals of the rows returned. Filtered totals do not balance. Free.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'maxLength': 10, 'description': 'Last day of the period, YYYY-MM-DD, inclusive'}, 'from': {'type': 'string', 'maxLength': 10, 'description': 'First day of the period, YYYY-MM-DD'}, 'limit': {'type': 'integer', 'maximum': 5000, 'minimum': 1, 'description': 'Maximum rows, default and ceiling 5000'}, 'since': {'type': 'string', 'maxLength': 10, 'description': 'Only lines dated on or after this date, YYYY-MM-DD'}, 'until': {'type': 'string', 'maxLength': 10, 'description': 'Only lines dated on or before this date, YYYY-MM-DD'}, 'source': {'type': 'string', 'maxLength': 200, 'description': 'Only lines derived from this server: invoice, billing-docs, deposits, expense-tracker or asset-register'}, 'account': {'type': 'string', 'maxLength': 200, 'description': 'Only this account, e.g. cash, receivables, vat_output, or a category prefix such as "expenses"'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Needed when the period holds documents in more than one currency. Currencies are never added together'}, 'source_id': {'type': 'string', 'maxLength': 200, 'description': 'Only lines derived from this document, e.g. INV-2026-0001'}}, 'additionalProperties': False}
ledger_report
Report movement and balance per account
Report a built period account by account: debits, credits, movement and closing balance, plus purchase commitments held as memos and the period's exceptions. Pro; ledger_lines gives the lines free.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'maxLength': 10, 'description': 'Last day of the period, YYYY-MM-DD, inclusive'}, 'from': {'type': 'string', 'maxLength': 10, 'description': 'First day of the period, YYYY-MM-DD'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Needed when the period holds documents in more than one currency. Currencies are never added together'}}, 'additionalProperties': False}
license_activate
Activate license
Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': 'License key from checkout, MCPL1.<payload>.<signature>'}}, 'additionalProperties': False}
license_status
License status
Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
month_close
Close a month
List what a month leaves unposted or unbalanced, with its trial balance and bank reconciliation, then store the close as a snapshot; a later call names any drift against it. dry_run writes nothing. Pro.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['month'], 'properties': {'month': {'type': 'string', 'maxLength': 7, 'description': 'The month to close, YYYY-MM'}, 'dry_run': {'type': 'boolean', 'description': 'Report the exceptions and the trial balance without writing the close. Default false'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Needed when the period holds documents in more than one currency. Currencies are never added together'}}, 'additionalProperties': False}
period_delete
Delete a built period
Delete one built period from the register and give its free-tier slot back. Refused when a closed month's snapshot covers the period, and that month is named. No sibling book is touched.
Destructif
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'maxLength': 10, 'description': 'Last day of the period, YYYY-MM-DD, inclusive'}, 'from': {'type': 'string', 'maxLength': 10, 'description': 'First day of the period, YYYY-MM-DD'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Needed only when the same date range was built in more than one currency'}}, 'additionalProperties': False}
trial_balance
Prove the ledger balances
Total the debits and the credits for a period and prove they are equal to the minor unit. When they are not, name the entries whose own legs do not add up and the source document behind each. Free and unlimited.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'maxLength': 10, 'description': 'Last day of the period, YYYY-MM-DD, inclusive'}, 'from': {'type': 'string', 'maxLength': 10, 'description': 'First day of the period, YYYY-MM-DD'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Needed when the period holds documents in more than one currency. Currencies are never added together'}}, 'additionalProperties': False}
Ajouté
license_activate
24 September 2026 02:40
Ajouté
license_status
24 September 2026 02:40
Ajouté
ledger_report
24 September 2026 02:40
Ajouté
ledger_export_csv
24 September 2026 02:40
Ajouté
month_close
24 September 2026 02:40
Ajouté
ledger_lines
24 September 2026 02:40
Ajouté
trial_balance
24 September 2026 02:40
Ajouté
period_delete
24 September 2026 02:40
Ajouté
ledger_build
24 September 2026 02:40