duebuddy-invoices
Server Details
Read incoming supplier invoices through a remote MCP server and get structured data for accounting.
- Status
- Healthy
- Uptime
- 99.8% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- ANTONDrakon/duebuddy-mcp
- GitHub Stars
- 0
TDQS
Scored across 4 tools
Each tool targets a distinct concern: account balance, parse-job result retrieval, invoice submission, and billing link. The only mild overlap is between get_balance and get_result since both are read-style 'get' tools, but their subjects (API credits vs. parse output) are clearly different.
All names are snake_case verb-first constructions (get_balance, get_result, parse_invoice, topup_link), which is predictable. topup_link is slightly weaker as a name since it returns a URL rather than performing a top-up, but the pattern holds.
Four tools is lean but well matched to a narrow invoice-parsing API: one action (parse_invoice), one retrieval (get_result), and two account utilities. Nothing clearly superfluous, though the surface is close to thin.
The core lifecycle is covered: submit an invoice, fetch its parsed result/exports, check credits, and top up. Gaps exist around job management (no way to list/cancel jobs or retrieve error details for a failed parse), but these are minor workarounds for an agent.
Available Tools
4 toolsget_balanceCInspect
How many scanned pages are left on this API key before the next top-up.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | 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 safe read scoped to 'this API key', but discloses nothing about auth failure behavior, rate limits, whether a missing or default api_key resolves to a server-side key, or what happens at zero balance.
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?
One tight sentence with no filler; the value returned is front-loaded. The only criticism is the interrogative phrasing, which reads more like a question about the tool than an instruction for using it.
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 trivial single-value read the description does convey what the returned number means, which is the essential piece. However, with no annotations, no output schema, and an undocumented parameter, gaps remain around the api_key argument and error/edge behavior.
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 single api_key parameter has 0% schema description coverage, and the description never explains that it exists, that it is optional (default ''), or how an empty value is resolved. With one undocumented parameter the description should compensate but does not.
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 precisely what the tool returns: the number of scanned pages remaining on the current API key before a top-up. That is specific enough to separate it from siblings like get_result and parse_invoice, though it is phrased as a question and never names an explicit verb or resource (e.g. 'balance'/'quota').
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 statement of when to call this versus alternatives, no prerequisites, and no mention of the relation to the sibling topup_link (which presumably addresses the low-balance case). The agent must infer the trigger condition entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resultBInspect
Fetch the result of a parse job: structured fields plus export links for accounting.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| api_key | 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 disclosure burden. It implies a read-only fetch and notes the returned content, but it does not disclose api_key/auth requirements, behavior for missing or incomplete jobs, or any error/rate-limit characteristics.
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 states the verb, resource, and useful return detail without any wasted words. It is appropriately sized for a simple fetch operation.
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 no output schema, no annotations, and 0% parameter description coverage, the description supplies only a high-level purpose and return summary. It omits job_id sourcing, api_key behavior, job-completion prerequisites, and error handling, leaving substantial gaps 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 0%, and the description does not name or explain job_id or api_key. It indirectly frames job_id as identifying a parse job, but api_key's role and optional/default status are left entirely to the schema.
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: fetch the result of a parse job, and clarifies the return content with 'structured fields plus export links for accounting.' This clearly distinguishes it from get_balance, parse_invoice, and topup_link, though it does not explicitly name a sibling for routing.
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 phrase 'of a parse job' implies this tool is used after parse_invoice and with a job_id, so usage is somewhat inferable. However, it never states prerequisites such as job completion, when to prefer it over alternatives, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_invoiceAInspect
Read one incoming invoice. Pass a publicly reachable file URL and the country code (de, fr, it, pl, ru, kz, by, us, ae, sa, ua, ge). The API key can be passed once as an X-Api-Key header when the server is added, instead of on every call. Returns a job id and status. Electronic invoices (XML, QR) are free; scans cost 0.07 EUR per page.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| country | No | de | |
| file_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and delivers well: it discloses the async return (job id + status), the auth alternative (X-Api-Key header set once at server configuration), the URL reachability requirement, and a pricing model distinguishing free electronic invoices from paid scans. It stops short of failure behavior or rate limits.
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?
Four front-loaded sentences, each carrying distinct payload: purpose, required inputs and country enum, auth shortcut, return value, and cost. No filler or restatement of the name.
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?
No output schema exists, and the description covers the return (job id and status), which is the key missing piece. It does not connect the async job to the sibling get_result or mention polling, leaving a small workflow gap, but is otherwise sufficient 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 coverage is 0%, so the description must compensate, and it largely does: it enumerates the accepted country codes (de, fr, it, pl, ru, kz, by, us, ae, sa, ua, ge), explains the public-URL requirement for file_url, and clarifies api_key can be supplied as a header instead of per call. File format details are only lightly touched.
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 first sentence gives a specific verb and resource ('Read one incoming invoice'), making the operation immediately identifiable. It does not explicitly differentiate from siblings like get_result, though 'Returns a job id and status' hints at the async workflow. Clear but without direct sibling routing.
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 states the required inputs ('publicly reachable file URL and the country code') and a valid auth pattern, which implies usage context. However, it never names alternatives or exclusions – it does not tell the agent to poll get_result for the finished output, nor when this tool is the wrong choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
topup_linkCInspect
Where to top up the API balance. Lava is the seller; the minimum top-up is 8 EUR.
| Name | Required | Description | Default |
|---|---|---|---|
| amount_eur | 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 burden. It discloses useful business context (Lava is the seller, 8 EUR minimum) but says nothing about whether calling it initiates a payment, is side-effect-free, requires auth, or is idempotent — critical ambiguity for a top-up tool.
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 short sentences, tightly written and front-loaded with the resource, followed by the seller and minimum. Nothing is padded, though the brevity comes partly at the cost of the missing verb.
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 annotations and no output schema, the description must cover behavior itself, and it does not: it never explains what the link is, where it leads, or what a caller receives. For a top-up/payment-adjacent tool this leaves key decision-relevant information missing.
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 0% and the single amount_eur parameter is undocumented in the schema, but the description supplies the 8 EUR minimum, which constrains the parameter's value. It stops short of explaining units/precision beyond EUR or what happens if a value below the minimum is sent.
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 gestures at the resource ('the API balance') and names the seller, but never states the actual verb or output — whether it returns a URL, opens a page, or performs a charge. Combined with the name topup_link an agent can infer intent, but the description alone is vague about what the tool actually does.
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 when-to-use guidance and no reference to siblings like get_balance or parse_invoice. The minimum-top-up fact is a constraint, not a usage rule, so the agent gets no cue for when this tool is the right choice.
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.
3 tool updates
- Changed
get_balance2 fields changed- added
Input schema / properties / api_key / defaultAdded value: +"" - removed
Input schema / requiredRemoved value: -[ - "api_key" -]
- Changed
get_result2 fields changed- added
Input schema / properties / api_key / defaultAdded value: +"" - changed
Input schema / requiredPrevious value: -[ - "api_key", - "job_id" -]New value: +[ + "job_id" +]
- Changed
parse_invoice2 fields changed- added
Input schema / properties / api_key / defaultAdded value: +"" - changed
Input schema / requiredPrevious value: -[ - "api_key", - "file_url" -]New value: +[ + "file_url" +]
4 tool updates
- First observed
get_balance - First observed
get_result - First observed
parse_invoice - First observed
topup_link
Related MCP Connectors
Fakturownia.pl (Polish invoicing) via MCP: invoices, clients, products, warehouse. Full read-write.
Invoices and other financial documents to rows: upload, say what to extract, read the rows.
MCP server for ABRA Flexi — accounting, contacts, stock and draft-checked invoice creation.
191Secure remote MCP for supported accounting workflows in authorized Money S3 companies.
Related MCP Servers
AlicenseAqualityDmaintenanceMCP server for e-invoice platforms. Enables natural language querying of invoices, partners, company data, and financial reports.1812 npm6MIT- AlicenseNot gradedqualityCmaintenanceQueries official Brazilian federal received electronic invoices (NFS-e) via a hosted, read-only MCP server with prepaid credits, requiring no platform credentials.MIT
- FlicenseNot gradedqualityDmaintenanceRemote MCP server for extracting structured data from images, PDFs, and XML documents using LLM Vision models. Provides specialized tools for demographic and invoice data extraction with support for multi-part documents.-
- FlicenseNot gradedqualityCmaintenanceEnables MCP-compatible clients to retrieve invoice and purchase order data live over stdio through tools for listing invoices, getting invoice details, and fetching purchase orders.-
Glama MCP Gateway
Add one secure layer between your agents and this server.