Dunn
Server Details
Free invoice tools: due dates from payment terms, late fees, days late, payment reminder emails.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a distinct core job: due-date calculation, lateness/status, late-fee calculation, and reminder-email drafting. The main overlap is that how_late_is_this_invoice also recommends what to send, while payment_reminder_email actually writes the message, so an agent could occasionally hesitate between them.
All names use snake_case, which is consistent at the casing level. However, the patterns are mixed: one is a question-like phrase, while the others are noun phrases rather than a predictable verb_noun convention.
Four tools is well-scoped for a focused invoice-reminder assistant. Each tool covers a distinct step in the workflow and none feels redundant or excessive.
The surface covers the key lifecycle pieces for payment reminders: due-date calculation, lateness assessment, late-fee calculation, and reminder-email generation across before-due, due-today, late, and final-notice stages. No obvious workflow dead end is apparent for the stated purpose.
Available Tools
4 toolshow_late_is_this_invoiceHow late is this invoice?BRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| today | No | Today's date, YYYY-MM-DD (defaults to today in New York) | |
| due_date | Yes | A calendar date, YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that the result includes reminder recommendations ('what to send the client now and next') following a 'proven reminder schedule' — useful output-shape context that annotations don't carry. However, the schedule itself is never characterized, so the added context stays vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that leads with the primary computation. It is slightly overloaded by the trailing 'following a proven reminder schedule' clause, which reads as promotional rather than informative, but nothing is redundant enough to cut wholesale.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two simple parameters and no output schema, the description needs to convey the return shape, and it partly does (day count plus current/next reminder suggestion). It leaves the actual structure of the reminder recommendation and the schedule stages unexplained, which is a meaningful gap for an agent that must decide how to use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the note that `today` defaults to New York time, so the schema does the heavy lifting. The description's parenthetical '(or until it is due)' clarifies that past and future due dates are both handled, but it adds no format or interpretation detail beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete computation ('how many days late an invoice is (or until it is due)') plus a second output ('what to send the client now and next'). That is specific enough for an agent to know what it gets back. It stops short of distinguishing itself from the sibling payment_reminder_email, which appears to overlap on the 'what to send' half.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no exclusions. With three siblings (invoice_due_date, late_fee_calculator, payment_reminder_email) plausibly applicable to the same task, the description never says which situation selects this tool over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_due_dateDue date from payment termsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| terms | Yes | Payment terms, e.g. "net 30" | |
| invoice_date | Yes | A calendar date, YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds that early-payment discount dates are also produced, which is useful behavior beyond the annotations, but it says nothing about what happens with unrecognized or malformed terms, nor whether a discount term like '2/10 net 30' yields multiple computed dates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence: purpose first, then the parenthetical of supported formats, then the discount-date caveat. No filler, no repetition of the title, and no restatement of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter pure calculation this is mostly sufficient, and the supported-term list removes the main ambiguity. However, with no output schema present, the description never says what is returned (a single YYYY-MM-DD string? a separate discount date field?), which leaves an agent guessing at the response shape for the '2/10 net 30' cases it advertises.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description genuinely extends the 'terms' parameter by listing accepted forms ('net 30', 'due on receipt', 'EOM', 'net 30 EOM', '2/10 net 30') that the schema only gestures at with 'e.g. "net 30"'. That enumeration is real added meaning an agent would otherwise have to guess at.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-and-resource pair ('Exact due date for an invoice') and enumerates the term formats it understands, so an agent can immediately tell this is a payment-terms date calculator rather than a lateness or fee tool. It stops short of naming a sibling such as how_late_is_this_invoice or late_fee_calculator to draw the boundary explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the calculation framing: an agent can infer this is the tool to call when it has an invoice date and terms and needs the due date. There is no explicit when-to-use vs. when-not guidance, nor any statement that lateness or fee calculation belongs to the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
late_fee_calculatorLate fee calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Invoice amount in US dollars | |
| due_date | Yes | A calendar date, YYYY-MM-DD | |
| fee_kind | Yes | flat = a dollar amount, percent = % of the invoice | |
| fee_value | Yes | Dollars for flat (e.g. 25) or the percent for percent (e.g. 1.5) | |
| grace_days | Yes | Days after the due date before the fee applies; 0 = the day after the due date |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds meaningful behavioral context by spelling out the returned outputs, including a range sanity check, which matters since no output schema exists. It stops short of explaining rounding rules or how 'usual range' is determined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-structured sentence with the purpose front-loaded and the output list following. Every clause carries information; no filler. Slightly list-like but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description responsibly enumerates the returned values, and the input schema fully documents the parameters. Minor gaps remain around currency handling beyond USD and the definition of the 'usual range' check, but the definition is sufficient to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter is documented with units and examples (USD, YYYY-MM-DD, flat vs percent, grace-day semantics). The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('works out a late fee') and enumerates exactly what is produced (amount, new total, applicable day, invoice line, range check). An agent can tell this is a calculation tool rather than a date or email tool. It does not explicitly differentiate itself from siblings like how_late_is_this_invoice, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this versus how_late_is_this_invoice or payment_reminder_email, nor any stated prerequisites or exclusions. Usage is only implied by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payment_reminder_emailPayment reminder emailARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tone | No | ||
| today | No | A calendar date, YYYY-MM-DD | |
| amount | Yes | Invoice amount in US dollars | |
| due_date | Yes | A calendar date, YYYY-MM-DD | |
| late_fee | No | The agreed late-fee terms, e.g. "a $25 late fee applies if unpaid 7 days after the due date." | |
| pay_link | No | Payment link to include, if any | |
| client_name | Yes | The client's name, as you'd greet them | |
| sender_name | Yes | Your name, to sign the email | |
| business_name | No | ||
| invoice_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that output is composed email text with a subject line and that tone defaults to polite — useful, but it never states explicitly that nothing is sent, nor does it disclose how stage selection interacts with missing dates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with no filler: the stage logic comes first, the tone default second. Every clause conveys information an agent would otherwise have to guess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 parameters, no output schema, and several optional fields (late_fee, pay_link, business_name, invoice_number), the description leaves the agent to infer what each optional field does to the generated email and what form the return value takes. It is adequate for the core call but thin for a tool with this many optional inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 70%, so the schema carries most of the load. The description contributes real meaning for two parameters: tone ('polite by default; firm on request') and the implicit role of today vs. due_date in determining the reminder stage. It says nothing about late_fee, pay_link, business_name, or invoice_number beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Writes the right payment reminder') and enumerates the four invoice stages it handles, plus the inclusion of a subject line. An agent can tell this generates reminder copy rather than computing dates or fees, so the sibling calculators are effectively differentiated even though none is named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the stage is chosen from where the invoice sits ('before due, due today, late, or a final notice'), which suggests feeding in the current date, and 'polite by default; firm on request' hints at the tone parameter. There is no explicit when-to-use vs. when-not-to-use or reference to the sibling tools that supply due-date and late-fee data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
how_late_is_this_invoice - First observed
invoice_due_date - First observed
late_fee_calculator - First observed
payment_reminder_email
Related MCP Connectors
Invoice tools: reminders, late fees, terms, timesheets and a receivables health report (x402).
Free quote and late-fee calculators, paid reminder emails and a $1 small-business tool stack report.
Processor fees, charge-to-net, invoice totals and proration. 3 of 6 tools free.
Freelancer invoices with totals, tax, due dates. Free.
Related MCP Servers
- AlicenseAqualityBmaintenanceAI-powered invoice automation. Create PDF invoices, predict late payment risk 0-100, auto-send reminders, reconcile Stripe/PayPal payments, track cash flow. 10 MCP tools, 4 resources.1080 npmMIT
- AlicenseAqualityAmaintenanceEnables users to track unpaid invoices and generate an escalating ladder of payment-reminder letters — first reminder, second reminder, and final notice — anchored to the due date, plus overdue listings, aging buckets, and a daily chase list of what to send today. It records payments and letters sent, rendering each letter as Markdown or printable HTML without ever emailing anything itself.110MIT
- AlicenseNot gradedqualityBmaintenanceInvoice by Ouroboros Apps (https://ouroborosapps.com). Freelance invoice records: approved invoice line items, quantities, agreed rates, due dates, and late terms; invoice changes need explicit approval. Connect by pasting https://invoice-continuity2.vercel.app/mcp into Claude, Cursor, Grok, or ChatGPT developer mode (OAuth). Docs: https://ouroborosapps.com/docs/invoice14 npmMIT
- AlicenseAqualityCmaintenanceCreate free, no-signup invoices from your AI assistant — the create_invoice tool returns a link that opens blankinvoicemaker.com pre-filled, ready to download as a watermark-free PDF.240 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.