One double-entry ledger derived from your invoices, bank, expenses, deposits and assets.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <Pro license key or anonymous token from GET https://mcp.zovo.one/mcp/token>
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Last day of the period, YYYY-MM-DD, inclusive
First day of the period, YYYY-MM-DD
Needed when the period holds documents in more than one currency. Currencies are never added together
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| to* | string | Last day of the period, YYYY-MM-DD, inclusive |
| from* | string | First day of the period, YYYY-MM-DD |
| currency | string | Needed when the period holds documents in more than one currency. Currencies are never added together |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| to* | string | Last day of the period, YYYY-MM-DD, inclusive |
| from* | string | First day of the period, YYYY-MM-DD |
| source | string | Only lines derived from this server |
| account | string | Only this account or category prefix |
| currency | string | Needed when the period holds documents in more than one currency. Currencies are never added together |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| to* | string | Last day of the period, YYYY-MM-DD, inclusive |
| from* | string | First day of the period, YYYY-MM-DD |
| limit | integer | Maximum rows, default and ceiling 5000 |
| since | string | Only lines dated on or after this date, YYYY-MM-DD |
| until | string | Only lines dated on or before this date, YYYY-MM-DD |
| source | string | Only lines derived from this server: invoice, billing-docs, deposits, expense-tracker or asset-register |
| account | string | Only this account, e.g. cash, receivables, vat_output, or a category prefix such as "expenses" |
| currency | string | Needed when the period holds documents in more than one currency. Currencies are never added together |
| source_id | string |
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.
| Argument | Type | Description |
|---|---|---|
| to* | string | Last day of the period, YYYY-MM-DD, inclusive |
| from* | string | First day of the period, YYYY-MM-DD |
| currency | string | Needed when the period holds documents in more than one currency. Currencies are never added together |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| key* | string | License key from checkout, MCPL1.<payload>.<signature> |
{
"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
}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.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| month* | string | The month to close, YYYY-MM |
| dry_run | boolean | Report the exceptions and the trial balance without writing the close. Default false |
| currency | string | Needed when the period holds documents in more than one currency. Currencies are never added together |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| to* | string | Last day of the period, YYYY-MM-DD, inclusive |
| from* | string | First day of the period, YYYY-MM-DD |
| currency | string | Needed only when the same date range was built in more than one currency |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| to* | string | Last day of the period, YYYY-MM-DD, inclusive |
| from* | string | First day of the period, YYYY-MM-DD |
| currency | string | Needed when the period holds documents in more than one currency. Currencies are never added together |
{
"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
}| Only lines derived from this document, e.g. INV-2026-0001 |
{
"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
}