dunning
Write payment chasers at three levels from the invoices that are actually overdue.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin statements_report
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"dunning": {
"command": "uvx",
"args": [
"https://github.com/theluckystrike/mcp-servers/releases/download/v0.21.0/statement-of-account.mcpb"
]
}
}
}Ausführbare Pakete
0.21.0stdio0.22.0stdioRemote-Endpunkte
https://mcp.zovo.one/mcp/dunningstreamable-httpWas es kann
Tool-Inventar
Tools (8)
⚪statement_build(client, from, to, currency)
Build one client's statement for a period: opening, invoices, payments with deposits applied broken out, credit notes and closing, formatted and in minor units. Free: 5 a month; a rebuild is free.
Eingabe-Schema
{
"type": "object",
"properties": {
"client": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Client id from the invoice server, an exact client name, or a name containing this text"
},
"from": {
"type": "string",
"maxLength": 10,
"description": "First day of the period, YYYY-MM-DD. Everything dated before it becomes the opening balance"
},
"to": {
"type": "string",
"maxLength": 10,
"description": "Last day of the period, YYYY-MM-DD, inclusive"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Only needed when the client has documents in more than one currency. Currencies are never added together"
}
},
"required": [
"client",
"from",
"to"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪statement_aging(client, currency, as_of, limit)
Age open invoices into 0-30, 31-60, 61-90 and over 90 days past DUE date at a date, per client and currency, with the invoices themselves. Free. statements_report rolls up the whole book instead.
Eingabe-Schema
{
"type": "object",
"properties": {
"client": {
"type": "string",
"maxLength": 200,
"description": "One client id or name. Omit to age every client in the books"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Only this currency. Omit for every currency, each aged separately"
},
"as_of": {
"type": "string",
"maxLength": 10,
"description": "Age the invoices as at this date, YYYY-MM-DD. Defaults to today"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 2000,
"description": "Maximum invoice rows returned, default and ceiling 2000"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢statement_text(client, from, to, currency, as_of, ...)
Turn one client's statement into a plain-text letter for an email: movements in date order, opening and closing balances, deposit held, a sign-off. It is also a .txt download link valid one hour and counts toward the 5 a month; statement_pdf writes the A4 page.
Eingabe-Schema
{
"type": "object",
"properties": {
"client": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Client id from the invoice server, an exact client name, or a name containing this text"
},
"from": {
"type": "string",
"maxLength": 10,
"description": "First day of the period, YYYY-MM-DD"
},
"to": {
"type": "string",
"maxLength": 10,
"description": "Last day of the period, YYYY-MM-DD, inclusive"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Only needed when the client has documents in more than one currency. Currencies are never added together"
},
"as_of": {
"type": "string",
"maxLength": 10,
"description": "Date printed on the statement, YYYY-MM-DD. Defaults to today"
},
"greeting": {
"type": "string",
"maxLength": 4000,
"description": "Opening line, default \"Hello\" and the client name"
},
"sign_off": {
"type": "string",
"maxLength": 4000,
"description": "Closing line, default your business name from the shared profile"
}
},
"required": [
"client",
"from",
"to"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢statement_pdf(client, from, to, currency, as_of, ...)
Call this tool to render one client's A4 statement of account and return a download link valid for one hour. Titled STATEMENT OF ACCOUNT, movements in date order, BALANCE OUTSTANDING at the foot. Pro.
Eingabe-Schema
{
"type": "object",
"properties": {
"client": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Client id from the invoice server, an exact client name, or a name containing this text"
},
"from": {
"type": "string",
"maxLength": 10,
"description": "First day of the period, YYYY-MM-DD"
},
"to": {
"type": "string",
"maxLength": 10,
"description": "Last day of the period, YYYY-MM-DD, inclusive"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Only needed when the client has documents in more than one currency. Currencies are never added together"
},
"as_of": {
"type": "string",
"maxLength": 10,
"description": "Date printed on the statement, YYYY-MM-DD. Defaults to today"
},
"out_path": {
"type": "string",
"description": "Name for the downloaded file, e.g. acme-statement. Defaults to the client, currency and period; the statement comes back as a download link valid for one hour"
}
},
"required": [
"client",
"from",
"to"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢dunning_text(client, level, currency, as_of, greeting, ...)
Write a payment chaser at level 1 friendly, 2 firm or 3 final demand: every OVERDUE invoice with its age, the total and your bank details. Refused if nothing is overdue. No interest is stated. The letter is also a .txt download link valid one hour. Level 3 is Pro.
Eingabe-Schema
{
"type": "object",
"properties": {
"client": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Client id from the invoice server, an exact client name, or a name containing this text"
},
"level": {
"type": "integer",
"minimum": 1,
"maximum": 3,
"description": "1 friendly reminder, 2 firm reminder, 3 final demand. Level 3 is Pro"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Only needed when the client has documents in more than one currency. Currencies are never added together"
},
"as_of": {
"type": "string",
"maxLength": 10,
"description": "Age the invoices as at this date, YYYY-MM-DD. Defaults to today"
},
"greeting": {
"type": "string",
"maxLength": 4000,
"description": "Opening line, default \"Hello\" and the client name"
},
"sign_off": {
"type": "string",
"maxLength": 4000,
"description": "Closing line, default your business name from the shared profile"
}
},
"required": [
"client",
"level"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢statements_report(as_of, limit)
Receivables across every client at a date: totals and aging per currency, clients ranked by how much is OVERDUE, and the oldest overdue invoice. Pro. statement_aging is the free per-client view.
Eingabe-Schema
{
"type": "object",
"properties": {
"as_of": {
"type": "string",
"maxLength": 10,
"description": "Age the invoices as at this date, YYYY-MM-DD. Defaults to today"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"description": "How many clients to list, worst first. Default 20"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢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.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪license_activate(key)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "License key from checkout, MCPL1.<payload>.<signature>"
}
},
"required": [
"key"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Nachweis