Skip to main content
Glama

Server Details

Read incoming supplier invoices through a remote MCP server and get structured data for accounting.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
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

B3.2/5.0

Scored across 4 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness4/5

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 tools
get_balanceCInspect

How many scanned pages are left on this API key before the next top-up.

NameRequiredDescriptionDefault
api_keyNo

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

NameRequiredDescriptionDefault
job_idYes
api_keyNo

TDQS

B3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
api_keyNo
countryNode
file_urlYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Changedget_balance2 fields changed
      • addedInput schema / properties / api_key / default
        Added value: +""
      • removedInput schema / required
        Removed value: -[
        -  "api_key"
        -]
    • Changedget_result2 fields changed
      • addedInput schema / properties / api_key / default
        Added value: +""
      • changedInput schema / required
        Previous value: -[
        -  "api_key",
        -  "job_id"
        -]New value: +[
        +  "job_id"
        +]
    • Changedparse_invoice2 fields changed
      • addedInput schema / properties / api_key / default
        Added value: +""
      • changedInput schema / required
        Previous value: -[
        -  "api_key",
        -  "file_url"
        -]New value: +[
        +  "file_url"
        +]
  2. 4 tool updates
    • First observedget_balance
    • First observedget_result
    • First observedparse_invoice
    • First observedtopup_link

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for e-invoice platforms. Enables natural language querying of invoices, partners, company data, and financial reports.
    18
    12 npm
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Queries official Brazilian federal received electronic invoices (NFS-e) via a hosted, read-only MCP server with prepaid credits, requiring no platform credentials.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Remote 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.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.