dunning
Write payment chasers at three levels from the invoices that are actually overdue.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen statements_report
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"dunning": {
"command": "uvx",
"args": [
"https://github.com/theluckystrike/mcp-servers/releases/download/v0.21.0/statement-of-account.mcpb"
]
}
}
}Paquetes ejecutables
0.21.0stdio0.22.0stdioPuntos de conexión remotos
https://mcp.zovo.one/mcp/dunningstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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#"
}Comunidad
Evidencia