PagoFix
Server Details
Unpaid EU B2B invoices: late-payment interest, reminder letters, European payment order draft.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- pagofix/pagofix-mcp
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a clear primary action: calculation, EOP drafting, reminder drafting, or status lookup. Minor overlap exists because current totals and interest appear in calc_claim, draft_reminder, and get_status, so an agent may briefly hesitate over which tool to use for amounts.
All tool names use snake_case with a consistent verb_noun pattern: calc_claim, draft_eop, draft_reminder, get_status. The short action prefixes are predictable, and the EOP acronym is the only expected abbreviation.
Four tools are well scoped for a narrow EU B2B late-payment recovery workflow. Each tool covers a distinct stage, and none appears redundant or missing at the count level.
The core workflow is covered: calculate the claim, draft reminders, draft a European order for payment, and check status. Minor gaps remain around explicit case creation/update and payment recording, but agents can likely work around them using returned case fields or IDs.
Available Tools
4 toolscalc_claimBInspect
Calculate statutory late-payment interest (per half-year period), the fixed compensation for recovery costs and the total for an unpaid EU B2B invoice. Each number comes with its legal reference.
| Name | Required | Description | Default |
|---|---|---|---|
| bic | No | ||
| iban | No | ||
| amount | Yes | Invoice amount (principal) in EUR | |
| dueDate | No | YYYY-MM-DD, or null/"none" if no payment term was agreed (then 30 days after receipt) | |
| calcDate | No | YYYY-MM-DD, default today | |
| currency | No | EUR | |
| debtorVat | No | ||
| debtorName | No | ||
| debtorType | No | company | |
| eurPlnRate | No | Only for Polish law: NBP EUR/PLN average rate (last working day of the month before the due month) | |
| lawCountry | No | Country whose late-payment law applies (default: creditorCountry) | |
| senderName | No | ||
| creditorVat | No | ||
| debtorEmail | No | ||
| invoiceDate | Yes | YYYY-MM-DD | |
| receiptDate | No | YYYY-MM-DD, date the debtor received the invoice (only used when there is no due date) | |
| creditorName | No | ||
| accountHolder | No | ||
| debtorAddress | No | ||
| debtorCountry | Yes | EU country code, e.g. DE | |
| invoiceNumber | No | ||
| creditorAddress | No | ||
| creditorCountry | Yes | EU country code, e.g. EE | |
| paymentReference | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses that interest is computed per half-year period and that each figure is returned with its legal reference, but it omits jurisdiction coverage, behavior for unsupported countries, and the EUR-only constraint implied by the schema — meaningful gaps for a 24-parameter legal calculation.
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 sentences, zero filler, with the core outputs front-loaded ahead of the secondary detail about legal references.
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 tool with 24 parameters, no annotations, and no output schema, the description explains only the calculation's purpose. It does not group or explain the large optional identity/banking field set, list supported jurisdictions, or describe the response shape beyond "each number comes with its legal reference."
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 only 38% across 24 parameters, so the description must compensate and does not. It never mentions the four required inputs, the eurPlnRate Polish-law special case, the dueDate-null fallback, or what the many optional debtor/creditor/banking fields are for.
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?
Nails a specific verb ("Calculate") and three concrete outputs — statutory late-payment interest, fixed recovery-cost compensation, and the total — scoped to an unpaid EU B2B invoice. That is enough to separate it from siblings like draft_reminder or get_status, but the description never names those siblings or states 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?
"for an unpaid EU B2B invoice" implies the applicable scenario, but there is no explicit when-to-use/when-not, no statement that this is a pure computation vs. the drafting/status siblings, and no guidance on which jurisdiction to pass when creditor and debtor differ.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_eopBInspect
Prepare a DRAFT European order for payment (Form A, Reg. 1896/2006) for a cross-border claim, with court note, fee info and filing guidance. The creditor signs and files it themselves. (x402 payment requirement is configured as a stub only.)
| Name | Required | Description | Default |
|---|---|---|---|
| bic | No | ||
| iban | No | ||
| amount | Yes | Invoice amount (principal) in EUR | |
| dueDate | No | YYYY-MM-DD, or null/"none" if no payment term was agreed (then 30 days after receipt) | |
| calcDate | No | YYYY-MM-DD, default today | |
| currency | No | EUR | |
| debtorVat | No | ||
| debtorName | No | ||
| debtorType | No | company | |
| eurPlnRate | No | Only for Polish law: NBP EUR/PLN average rate (last working day of the month before the due month) | |
| lawCountry | No | Country whose late-payment law applies (default: creditorCountry) | |
| senderName | No | ||
| creditorVat | No | ||
| debtorEmail | No | ||
| invoiceDate | Yes | YYYY-MM-DD | |
| receiptDate | No | YYYY-MM-DD, date the debtor received the invoice (only used when there is no due date) | |
| contractType | No | ||
| courtCountry | No | Default: debtor country | |
| creditorName | No | ||
| accountHolder | No | ||
| debtorAddress | No | ||
| debtorCountry | Yes | EU country code, e.g. DE | |
| invoiceNumber | No | ||
| include_footer | No | Set to false to leave out the "Prepared with PagoFix (free) · pagofix.com" line. | |
| creditorAddress | No | ||
| creditorCountry | Yes | EU country code, e.g. EE | |
| paymentReference | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations, the description still discloses three useful traits: the result is a draft only, the creditor must sign and file it personally, and the x402 payment gate is a non-functional stub. It does not say whether anything is persisted, what form the output takes (text/PDF), or how the 27 inputs are validated, which matters for a document-generation tool with no safety annotations.
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?
Three compact sentences, front-loaded with the deliverable and followed by the practical caveats. The stub-payment note is slightly meta but is genuinely useful information rather than filler.
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 27-parameter, no-annotation, no-output-schema document generator, the description leaves major gaps: no indication of the return format or what the draft contains structurally, no guidance on which of the 23 optional fields are needed for a valid Form A, and no statement about whether data is stored or repeated calls reuse prior 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 only 41% across 27 parameters, so the description should compensate, but it mentions no parameters at all beyond a passing reference to 'fee info'. Key fields such as lawCountry (drives late-payment law and the Polish EUR/PLN rate), courtCountry, dueDate vs receiptDate fallback, and debtorType are documented only partially in the schema and not at all in the description.
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 artifact: prepare a DRAFT European order for payment (Form A, Reg. 1896/2006) for a cross-border claim, plus the appendices (court note, fee info, filing guidance). The scope is clear enough to distinguish it from calc_claim, draft_reminder and get_status, though no sibling is named 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?
The 'cross-border claim' scope and the note that 'the creditor signs and files it themselves' imply when the tool applies and warn that the output is not a filed document. There is no explicit when-to-use/when-not or routing to calc_claim (amount calculation) or draft_reminder (pre-litigation step), which an agent would need for these closely related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_reminderAInspect
Draft reminder letter 1 (friendly, day 3), 2 (firm with interest, compensation and calculation sheet, day 10) or 3 (final notice, day 17) in en/de/fr/es/it/nl/pl/et. Returns subject, text, printable HTML and a mailto link. The creditor sends it from their own mailbox; PagoFix sends nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| bic | No | ||
| iban | No | ||
| lang | No | ||
| step | Yes | ||
| amount | Yes | Invoice amount (principal) in EUR | |
| dueDate | No | YYYY-MM-DD, or null/"none" if no payment term was agreed (then 30 days after receipt) | |
| calcDate | No | YYYY-MM-DD, default today | |
| currency | No | EUR | |
| sendDate | No | ||
| debtorVat | No | ||
| debtorName | No | ||
| debtorType | No | company | |
| eurPlnRate | No | Only for Polish law: NBP EUR/PLN average rate (last working day of the month before the due month) | |
| lawCountry | No | Country whose late-payment law applies (default: creditorCountry) | |
| senderName | No | ||
| creditorVat | No | ||
| debtorEmail | No | ||
| invoiceDate | Yes | YYYY-MM-DD | |
| receiptDate | No | YYYY-MM-DD, date the debtor received the invoice (only used when there is no due date) | |
| creditorName | No | ||
| accountHolder | No | ||
| debtorAddress | No | ||
| debtorCountry | Yes | EU country code, e.g. DE | |
| invoiceNumber | No | ||
| include_footer | No | Set to false to leave out the "Prepared with PagoFix (free) · pagofix.com" line. | |
| creditorAddress | No | ||
| creditorCountry | Yes | EU country code, e.g. EE | |
| paymentReference | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral burden. It usefully states that the result includes subject, text, printable HTML, and a mailto link, and clarifies that PagoFix sends nothing and the creditor sends from their own mailbox. It still does not discuss permissions, rate limits, or legal caveats.
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?
The description is compact and front-loaded: step definitions and languages appear first, followed by return values and the sending responsibility. Every sentence adds distinct information, and there is no filler.
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 complex 28-parameter legal drafting tool with no annotations and no output schema, the description does well to document return shape and no-send behavior. However, it leaves important input semantics and workflow alternatives insufficiently covered, making it only minimally complete for correct invocation.
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 only 36%, so the description should compensate for many undocumented parameters. It adds meaning for step and lang, but does not explain most of the 28 parameters, including key required fields such as amount, invoiceDate, creditorCountry, and debtorCountry beyond their schema labels.
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 uses a specific verb and resource: draft a reminder letter, with detailed meanings for steps 1, 2, and 3, supported languages, and returned artifacts. It is very clear, but it does not explicitly distinguish itself from siblings such as calc_claim or draft_eop.
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?
It gives implied workflow timing for each step (day 3, day 10, day 17), which helps the agent choose a step. However, it does not state when to use this tool instead of calc_claim, draft_eop, or get_status, nor does it include exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusCInspect
Where a case stands today: days overdue, which reminder is due now, next step and date, current total. Pass the case fields or a caseId returned earlier.
| Name | Required | Description | Default |
|---|---|---|---|
| bic | No | ||
| iban | No | ||
| paid | No | ||
| today | No | ||
| amount | No | Invoice amount (principal) in EUR | |
| caseId | No | ||
| dueDate | No | YYYY-MM-DD, or null/"none" if no payment term was agreed (then 30 days after receipt) | |
| calcDate | No | YYYY-MM-DD, default today | |
| currency | No | EUR | |
| debtorVat | No | ||
| debtorName | No | ||
| debtorType | No | company | |
| eurPlnRate | No | Only for Polish law: NBP EUR/PLN average rate (last working day of the month before the due month) | |
| lawCountry | No | Country whose late-payment law applies (default: creditorCountry) | |
| senderName | No | ||
| creditorVat | No | ||
| debtorEmail | No | ||
| invoiceDate | No | YYYY-MM-DD | |
| receiptDate | No | YYYY-MM-DD, date the debtor received the invoice (only used when there is no due date) | |
| creditorName | No | ||
| accountHolder | No | ||
| debtorAddress | No | ||
| debtorCountry | No | EU country code, e.g. DE | |
| invoiceNumber | No | ||
| creditorAddress | No | ||
| creditorCountry | No | EU country code, e.g. EE | |
| paymentReference | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read/status operation and lists output-like information, but it does not state side effects, permissions, failure behavior, or whether it is strictly read-only.
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?
The description is two sentences, front-loaded with the status purpose, and contains no obvious filler. Its brevity is efficient, though it leaves important details unstated.
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 27-parameter tool with no annotations and no output schema, the description is too thin. It explains the general output and input modes, but it does not sufficiently cover parameter combinations, defaults, or behavioral expectations.
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?
The description adds a useful input mode distinction: pass case fields directly or a caseId returned earlier. However, with 27 parameters and only 33% schema description coverage, most parameters remain unexplained in both the schema and the description.
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 gives a clear resource and scope: it reports where a case stands today, including overdue days, due reminder, next step/date, and current total. It is distinguishable from draft_reminder because it reports status rather than drafting a reminder, though it does not explicitly name the siblings.
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?
It only says to pass case fields or a caseId returned earlier, which is input guidance rather than when-to-use guidance. There is no explicit comparison to calc_claim, draft_eop, or draft_reminder, and no when-not-to-use conditions.
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
calc_claim - First observed
draft_eop - First observed
draft_reminder - First observed
get_status
Related MCP Connectors
Free demand-letter PDF generator for unpaid invoices, 80+ jurisdictions, 29 languages.
EN 16931/XRechnung e-invoice validate+create, Peppol routing, EU VAT/EORI, sanctions, KYB. Free tier
Place overdue B2B invoices for collection and track outreach, payments and remittances.
Cross-border debt collection: submit and track cases handled by local partners in 183 countries.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEU e-invoicing — UBL/CII conversion to XRechnung and FatturaPA-
- AlicenseAqualityDmaintenanceEuropean business compliance suite for AI agents — 28 tools covering tax ID validation (PT, ES, FR, DE, IT, UK, NL), IBAN verification, EU VAT rates, invoice requirements, e-invoicing rules, payment terms, labor calendar helpers, VAT breakdown calculations and invoice schema validation for 18+ European countries.28MIT
- FlicenseNot gradedqualityFmaintenanceEnables AI agents to call offline French legal helpers via a paid x402 API, covering e-invoice reform dates, L441-10 penalties, VAT, SIRET/IBAN checks, and dozens of invoice mention generation tools for $0.01 USDC on Base per call.-
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients such as Claude Desktop and Cursor to calculate UK statutory late payment interest and fixed compensation on business-to-business invoices, including unpaid ones, and to look up the applicable Bank of England Bank Rate on a given date or across a date range. Every result is returned with its legislative sources and a not-legal-advice notice, entirely offline.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.