Skip to main content
Glama

InvoiceForge

Server Details

Generate, validate and read EN 16931 and Peppol BIS 3.0 e-invoices, in UBL and CII.

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
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
agenttoolworks/mcp-servers
GitHub Stars
0

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct role: describe_coverage (capability metadata), extract_invoice (parse/ingest), generate_invoice (produce XML), validate_invoice (rule checking), and get_usage (account info). None overlap in purpose or action.

Naming Consistency5/5

All five tools follow a consistent verb_noun snake_case pattern (describe_coverage, extract_invoice, generate_invoice, validate_invoice, get_usage). No mixing of conventions or vague standalone verbs.

Tool Count5/5

Five tools is a well-scoped set that covers the essential invoice lifecycle operations plus a capability-discovery tool and an account/usage tool. Nothing feels redundant or padded.

Completeness4/5

The surface covers reading (extract), writing (generate), checking (validate), docs (describe_coverage), and account (get_usage), which is solid. Minor gaps: generate only outputs UBL 2.1 while extract reads both UBL and CII, so there is no syntax-conversion path back to CII/Factur-X, and no batch operation.

Available Tools

5 tools
describe_coverageList what this server checks and what it does not doAInspect

Returns the exact EN 16931 rules this server checks, the syntaxes it can produce and read, and the things it deliberately does not do, such as transmitting invoices over Peppol or acting as a French accredited platform. Light read: costs 0.2 credit.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden and does well: it discloses that the operation is a 'Light read' and quantifies the cost at 0.2 credit, which is real operational context beyond the name. It stops short of covering response shape, caching, or rate limits, but the read-nature and cost are the essentials.

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 dense sentence that front-loads what is returned, then closes with the cost note. Every clause carries information, including the useful enumeration of deliberate non-goals such as Peppol transmission and French accredited-platform duties.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no annotations, and no parameters, the description must convey what the agent gets back, and it does: rules checked, syntaxes read/produced, and explicit exclusions. Nothing an agent needs to decide whether to call it is missing.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The description correctly spends no words on arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: it returns the EN 16931 rules checked, the syntaxes supported, and the deliberate non-goals. This is clearly distinguishable from sibling action tools like validate_invoice and generate_invoice, so an agent can identify it as a capability-discovery read without opening the schema.

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?

Usage is implied rather than stated: the description positions it as a read-only capability lookup, which an agent can infer is useful before validating or generating. It never explicitly says when to call this versus, say, get_usage, nor does it name any exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_invoiceRead an invoice document into structured dataAInspect

Reads an incoming UBL or CII (Factur-X) invoice XML and returns the data as structured JSON, listing any field the document did not contain rather than guessing it. Use it to ingest supplier invoices before booking them. Costs 1 credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
xmlYesThe invoice XML, UBL 2.1 or CII

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that missing fields are reported rather than guessed (a non-obvious behavioral trait), that output is structured JSON, and that each call costs 1 credit. It omits auth/permission requirements and error behavior, keeping it from a 5.

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?

Three tight sentences: what it does, when to use it, what it costs. No filler, and the core capability is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter extraction tool with no output schema and no annotations, the description covers input formats, return semantics, missing-field behavior, and cost. Nothing essential for correct invocation is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter exists and schema coverage is 100%, so the schema already documents it as 'The invoice XML, UBL 2.1 or CII'. The description echoes the accepted formats but adds no syntax or size guidance beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (reads/extracts) and resource (UBL or CII Factur-X invoice XML) plus the output form (structured JSON). It is immediately distinguishable from the generate_invoice and validate_invoice siblings, which produce or check rather than extract.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly gives the usage context: 'Use it to ingest supplier invoices before booking them.' This tells the agent when the tool fits. It stops short of naming alternatives or exclusions (e.g., when to prefer validate_invoice), so it is clear but not fully routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_invoiceGenerate a compliant e-invoiceAInspect

Turns invoice data into a compliant UBL 2.1 XML document following the EN 16931 semantic model, with totals and the VAT breakdown computed for you. Choose the plain EN 16931 profile or the Peppol BIS Billing 3.0 customization. The document is validated before it is returned, so you never get back XML that would be rejected. Costs 1 credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceYesThe invoice to produce
profileNoWhich specification identifier to stamp on the documenten16931

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that totals and the VAT breakdown are computed automatically, that the document is validated before being returned, and the cost (1 credit). The main gap is what happens on validation failure (error shape, whether partial data is returned).

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?

Three sentences, zero filler, front-loaded with what the tool produces, then the choice, then the guarantee. Even the credit-cost sentence earns its place as an operational constraint.

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, so the description usefully states the return artifact (validated UBL 2.1 XML) and the profile stamp. Complex nested input is fully covered by the schema. What remains thin is failure behavior and whether the produced XML is retrievable/stored after generation.

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 description coverage is 100%, so the baseline is 3, but the description adds value: it expands the terse enum values ('en16931', 'peppol') into their real specification names and explains the semantic model, and it frames the nested invoice payload as 'invoice data' that gets totals computed. It adds meaning beyond the raw enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource+output artifact: turns invoice data into a compliant UBL 2.1 XML document following EN 16931. The profile choice (EN 16931 vs Peppol BIS Billing 3.0) lets an agent distinguish it from sibling validate_invoice and extract_invoice without opening schemas.

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?

Gives a real decision point for the profile parameter ('Choose the plain EN 16931 profile or the Peppol BIS Billing 3.0 customization'), which is usable guidance. However it never says when to reach for this tool instead of validate_invoice or extract_invoice, and gives no prerequisites or 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.

get_usageGet usage and credit balanceAInspect

Returns your current plan, remaining credit balance and call volume over the last 30 days. Free to call.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the cost profile ('Free to call') and the data window ('last 30 days'), which are genuine behavioral facts beyond the schema. It does not mention auth requirements or rate limits, so it falls short of a 5.

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?

Two tight sentences with the contents front-loaded and the cost note appended. Every clause earns its place; nothing is repeated from the schema or title.

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?

There is no output schema, so the description must hint at the return shape, and it does by naming the three returned fields and their window. No annotations exist either, and the 'free to call' note covers the main behavioral concern. Minor gap: no mention of formatting or staleness.

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?

The tool takes zero parameters, which is the baseline-4 case. The description adds no parameter semantics because none exist, and needs none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get) and resource (usage) and enumerates exactly what is returned: plan, remaining credit balance, and call volume over the last 30 days. It is clearly distinguishable from the invoice-oriented siblings (extract_invoice, generate_invoice, validate_invoice, describe_coverage).

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?

No explicit when-to-use or when-not-to-use guidance and no named alternatives, but for a zero-parameter, cost-free read tool the implied usage ('check your balance/usage') is reasonably self-evident. It provides no routing conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_invoiceCheck an invoice against EN 16931 rulesAInspect

Checks invoice data against a documented subset of the EN 16931 business rules: mandatory fields, code lists, VAT category consistency and the arithmetic that most often gets invoices rejected. Accepts incomplete or malformed data on purpose, since that is what you want checked, and answers with each violation, its rule identifier and its business term, plus exactly which rules were checked. It never claims full compliance with the norm. Costs 1 credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceYesThe invoice to check, however incomplete

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses tolerance of malformed input, the shape of the answer (each violation with rule identifier and business term, plus the set of rules checked), an explicit limitation ('never claims full compliance'), and a cost of 1 credit. Only idempotency/non-mutating nature and any size or timeout limits are left unstated.

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?

Three sentences, front-loaded with the purpose and then the behavioural contract. Nearly every clause earns its place, though 'the arithmetic that most often gets invoices rejected' is mild editorial colour rather than operational information.

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?

There is no output schema, so the description correctly compensates by describing the return payload (violations, rule ids, business terms, rules actually checked) and the scope limitation. For a one-parameter tool with deep nested invoice objects that is close to complete, missing only error/edge-case behaviour such as what happens with a structurally invalid payload.

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 100% and there is a single parameter, so the baseline is 3. The description adds meaning beyond the schema by stating that the invoice payload may be deliberately incomplete or malformed and that this is acceptable input rather than an error, so it goes slightly above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (checks) and resource (invoice data) against a named standard (EN 16931 business rules) and enumerates the checked categories: mandatory fields, code lists, VAT category consistency and arithmetic. This clearly separates it from extract_invoice and generate_invoice, which do entirely different things with the same resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The line 'Accepts incomplete or malformed data on purpose, since that is what you want checked' tells the agent the condition under which this tool is the right one, i.e. pre-validation of possibly-broken input. It does not explicitly name a sibling as an alternative or state when not to use it, so it falls short of a 5.

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. 5 tool updates
    • First observeddescribe_coverage
    • First observedextract_invoice
    • First observedgenerate_invoice
    • First observedget_usage
    • First observedvalidate_invoice

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for DACH e-invoicing. Create XRechnung (UBL) and ZUGFeRD 2.3 (Factur-X CII) invoices, validate against EN 16931 rules, extract data from XML, and convert between UBL, CII and JSON formats.
    6
    74 npm
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Model Context Protocol (MCP) server for Belgian Electronic Invoicing (Peppol BIS 3.0 / PINT-BE / Mercurius). Provides tools to validate, generate, and transform UBL 2.1 e-invoices, and look up BCE/KBO enterprise data and Peppol participants.
    50
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Model Context Protocol (MCP) server for German Electronic Invoicing (ZUGFeRD 2.x / XRechnung 3.x). Provides tools to validate, generate, parse, and convert invoices compliant with EN 16931 and KoSIT.
    50
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Validates electronic invoices (XRechnung, ZUGFeRD, Factur-X, Peppol BIS, etc.) against authority-pinned rules and explains failures.
    2
    226 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.