Free invoice tools: due dates from payment terms, late fees, days late, payment reminder emails.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
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.
How many days late an invoice is (or until it is due), and what to send the client now and next, following a proven reminder schedule.
A calendar date, YYYY-MM-DD
Today's date, YYYY-MM-DD (defaults to today in New York)
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http dunn https://getdunn.org/mcp
How many days late an invoice is (or until it is due), and what to send the client now and next, following a proven reminder schedule.
| Argument | Type | Description |
|---|---|---|
| today | string | Today's date, YYYY-MM-DD (defaults to today in New York) |
| due_date* | string | A calendar date, YYYY-MM-DD |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"due_date"
],
"properties": {
"today": {
"type": "string",
"description": "Today's date, YYYY-MM-DD (defaults to today in New York)"
},
"due_date": {
"type": "string",
"description": "A calendar date, YYYY-MM-DD"
}
}
}Exact due date for an invoice from its date and payment terms ("net 30", "due on receipt", "EOM", "net 30 EOM", "2/10 net 30"), including any early-payment discount date.
| Argument | Type | Description |
|---|---|---|
| terms* | string | Payment terms, e.g. "net 30" |
| invoice_date* | string | A calendar date, YYYY-MM-DD |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"invoice_date",
"terms"
],
"properties": {
"terms": {
"type": "string",
"description": "Payment terms, e.g. \"net 30\""
},
"invoice_date": {
"type": "string",
"description": "A calendar date, YYYY-MM-DD"
}
}
}Works out a late fee: the amount, the new total, the exact day it applies, a ready-to-use line for the invoice, and whether the fee is in the usual range.
| Argument | Type | Description |
|---|---|---|
| amount* | number | Invoice amount in US dollars |
| due_date* | string | A calendar date, YYYY-MM-DD |
| fee_kind* | string | flat = a dollar amount, percent = % of the invoice |
| fee_value* | number | Dollars for flat (e.g. 25) or the percent for percent (e.g. 1.5) |
| grace_days* | integer | Days after the due date before the fee applies; 0 = the day after the due date |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"amount",
"due_date",
"fee_kind",
"fee_value",
"grace_days"
],
"properties": {
"amount": {
"type": "number",
"description": "Invoice amount in US dollars"
},
"due_date": {
"type": "string",
"description": "A calendar date, YYYY-MM-DD"
},
"fee_kind": {
"enum": [
"flat",
"percent"
],
"type": "string",
"description": "flat = a dollar amount, percent = % of the invoice"
},
"fee_value": {
"type": "number",
"description": "Dollars for flat (e.g. 25) or the percent for percent (e.g. 1.5)"
},
"grace_days": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Days after the due date before the fee applies; 0 = the day after the due date"
}
}
}Writes the right payment reminder for where the invoice is now (before due, due today, late, or a final notice), with subject line. Polite by default; firm on request.
| Argument | Type | Description |
|---|---|---|
| tone | string | |
| today | string | A calendar date, YYYY-MM-DD |
| amount* | number | Invoice amount in US dollars |
| due_date* | string | A calendar date, YYYY-MM-DD |
| late_fee | string | The agreed late-fee terms, e.g. "a $25 late fee applies if unpaid 7 days after the due date." |
| pay_link | string | Payment link to include, if any |
| client_name* | string | The client's name, as you'd greet them |
| sender_name* | string | Your name, to sign the email |
| business_name | string |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 3, 2026.
| invoice_number | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"client_name",
"sender_name",
"amount",
"due_date"
],
"properties": {
"tone": {
"enum": [
"friendly",
"firm"
],
"type": "string"
},
"today": {
"type": "string",
"description": "A calendar date, YYYY-MM-DD"
},
"amount": {
"type": "number",
"description": "Invoice amount in US dollars"
},
"due_date": {
"type": "string",
"description": "A calendar date, YYYY-MM-DD"
},
"late_fee": {
"type": "string",
"description": "The agreed late-fee terms, e.g. \"a $25 late fee applies if unpaid 7 days after the due date.\""
},
"pay_link": {
"type": "string",
"description": "Payment link to include, if any"
},
"client_name": {
"type": "string",
"description": "The client's name, as you'd greet them"
},
"sender_name": {
"type": "string",
"description": "Your name, to sign the email"
},
"business_name": {
"type": "string"
},
"invoice_number": {
"type": "string"
}
}
}