Factur-X e-invoicing
Server Details
Generate, validate and read Factur-X / EN 16931 e-invoices (France, EU): PDF/A-3, CII, UBL 2.1.
- Status
- Unhealthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
4 toolsembed_xmlEmbed Factur-X XML into a PDFARead-onlyIdempotentInspect
Attach a Factur-X XML to an existing PDF and return a PDF/A-3 Factur-X invoice.
| Name | Required | Description | Default |
|---|---|---|---|
| xml | Yes | Factur-X / CII XML text (must pass EN 16931 rules) | |
| check | No | Rule set to enforce before embedding | fr-ctc |
| language | No | Document language metadata | fr |
| pdf_base64 | Yes | Your visual invoice PDF, base64 encoded |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, non-mutating, repeatable operation. The description adds the PDF/A-3 return format, but does not explain behavior around validation failures, the check parameter, or whether input XML must be schema-valid beyond what the schema description says.
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 a single, front-loaded sentence with no filler. Every word contributes to the core purpose and output format.
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?
The description is adequate for a straightforward embedding operation with well-covered schema parameters, but it omits usage context relative to sibling tools, the default rule set, and any caveats about input validation. It does state the key output format, but an agent might need more guidance to choose this tool confidently over generate_invoice or validate_invoice.
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%, so all parameters are already documented in the input schema. The description adds no extra parameter-level meaning beyond 'existing PDF' and 'Factur-X XML', which are already present in the schema descriptions.
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 clearly states the action (Attach/Embed), the resource (a Factur-X XML into an existing PDF), and the result (a PDF/A-3 Factur-X invoice). It is distinguishable from siblings like generate_invoice, validate_invoice, and extract_invoice, despite not naming them.
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 'to an existing PDF' gives clear context that this tool is for modifying/enriching an already existing PDF rather than generating a new one. However, it does not explicitly name alternatives 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.
extract_invoiceExtract e-invoice dataARead-onlyIdempotentInspect
Extract the embedded XML and key business terms (number, dates, parties, totals, VAT, lines).
| Name | Required | Description | Default |
|---|---|---|---|
| xml | No | CII or UBL XML as text (alternative to document_base64) | |
| include_xml | No | Include the raw XML in the result | |
| document_base64 | No | Factur-X PDF or XML file, base64 encoded |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior, lowering the bar. The description adds useful context about extracting embedded XML and key business terms, but it does not disclose edge behaviors such as handling of both xml and document_base64 being supplied, or behavior when neither is supplied.
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 sentence with no filler; the core action and extracted content are front-loaded. Every word earns its place.
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 simple read-only extraction tool, the description plus the fully documented schema and output schema is mostly complete. The only notable gap is that all parameters are optional in the schema and the description does not explicitly state that at least one input source (xml or document_base64) should be provided.
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%, so the baseline applies. Each parameter is already documented (xml vs document_base64 alternatives, include_xml flag), and the description does not add extra meaning beyond what the schema says.
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 clear action ('Extract') on a specific resource (e-invoice data) and enumerates the extracted content (number, dates, parties, totals, VAT, lines). It does not explicitly distinguish itself from siblings like validate_invoice or generate_invoice, but the extraction verb makes the purpose reasonably distinct.
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 context is only implied: an agent can infer this is for pulling structured data out of an e-invoice document. No when-to-use or when-not-to-use guidance is given, and none of the sibling tools are referenced as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_invoiceGenerate Factur-X invoiceBRead-onlyIdempotentInspect
Generate a compliant e-invoice from structured data.
Returns a summary and the document as an embedded resource (base64 PDF or XML text).
| Name | Required | Description | Default |
|---|---|---|---|
| check | No | Schematron rule set: EN 16931 base or + French CTC rules | fr-ctc |
| output | No | facturx-pdf (PDF/A-3 with XML, default), cii-xml or ubl-xml | facturx-pdf |
| invoice | Yes | ||
| profile | No | EN 16931 conformance level: en16931 (default), extended, extended-ctc-fr, basicwl | en16931 |
| language | No | Language of the visual PDF: fr or en | fr |
| footer_text | No | Optional footer text on the PDF |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint, idempotentHint), and the description does not contradict them — 'generate... returns' reads as a pure transformation with no persisted side effects. The description adds the return structure (summary plus embedded base64 PDF or XML text), which tells the agent what to expect. It doesn't cover failure behavior or internal validation, but the 'check' parameter's schema partially discloses that.
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 with zero filler, purpose front-loaded ahead of the return-value note. The description is clean but arguably terse for a compliance-critical generator; it shifts most explanatory burden onto the very large schema.
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?
The essentials are present — what it does, what it returns, and (via annotations) its read-only, idempotent nature — backed by an unusually rich schema. However, with no output schema, the description omits useful context such as validation/failure semantics on non-compliant input, how profiles affect output, and the distinction between the three output formats beyond their names.
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 83%, above the 80% threshold, so the baseline of 3 applies even though the top-level description adds no parameter detail. The schema itself documents output formats, profiles, check rule sets, language, and the extensive Invoice definition with BT codes. Nothing in the description is needed to disambiguate the parameters.
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 specific verb and resource — 'generate a compliant e-invoice from structured data' — and the title names the standard (Factur-X invoice). Mentioning the return shape (summary plus embedded document) further clarifies what the tool produces. It doesn't explicitly contrast with siblings, but 'generate' versus 'embed/extract/validate' is strongly self-differentiating from the name alone.
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?
No when-to-use or when-not-to-use guidance is given, and no sibling tool is named as an alternative. Usage must be inferred from the verb 'generate' — call this when you have structured invoice data and want a document — with no exclusions, prerequisites, or routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_invoiceValidate e-invoiceARead-onlyIdempotentInspect
Validate against XSD and EN 16931 schematron. Returns valid flag, detected profile and findings with rule ids.
| Name | Required | Description | Default |
|---|---|---|---|
| xml | No | CII or UBL XML as text (alternative to document_base64) | |
| check | No | EN 16931 base rules or + French CTC rules (default) | fr-ctc |
| document_base64 | No | Factur-X PDF or XML file, base64 encoded |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so no side-effect warning is needed. The description adds the standards checked and the return shape (valid flag, profile, findings with rule ids), which enriches the call context without contradicting the 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?
Two compact sentences with the core verb and standards front-loaded, followed by a sparse return-value sentence. No filler or repetition of already-documented schema details.
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 read-only validation tool with full parameter descriptions and an output schema, the description gives the essential behavioral contract. The default check (fr-ctc) and input formats are covered by the schema, so nothing critical is 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 description coverage is 100%, so the baseline is 3. The description adds no extra parameter-specific meaning; the alternatives (xml vs document_base64) and the check enun are already fully documented in 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 action (validate) against well-defined standards (XSD, EN 16931 schematron) and names key outputs (valid flag, detected profile, findings with rule ids). Sibling tools have distinct verbs (embed, extract, generate), so differentiation is immediate.
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?
No explicit when-to-use or alternative routing is provided. The description only implies that validation is the intended use case, leaving the agent to infer when to choose it over embed, extract, or generate. This is implied usage, not explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Create, validate, convert & extract compliant e-invoices (UBL, Factur-X, ZUGFeRD, XRechnung)
Generate & validate EN 16931 e-invoices (Factur-X, ZUGFeRD, XRechnung); verification certificates
71Validate, generate & convert EU e-invoices (UBL, CII, XRechnung, Factur-X) — EN 16931 pre-validated.
Validate, extract, repair and generate French Factur-X / EN16931 invoices via AgentForge API
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP 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.6542MIT
- AlicenseAqualityAmaintenanceModel 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.502Apache 2.0
- AlicenseAqualityDmaintenanceValidates electronic invoices (XRechnung, ZUGFeRD, Factur-X, Peppol BIS, etc.) against authority-pinned rules and explains failures.221MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to locally parse, validate, audit, explain, generate, and convert XRechnung and ZUGFeRD/Factur-X e-invoices using official rule sets, fully offline with no API keys required.Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct stage of the Factur-X lifecycle: creation, validation, embedding into PDF, and extraction. There is no meaningful overlap between generate, validate, embed, and extract operations.
All tool names follow a consistent verb_noun snake_case pattern: embed_xml, extract_invoice, generate_invoice, validate_invoice. The pattern is predictable and immediately conveys the action and object.
Four tools is a well-scoped size for this domain, covering the essential operations without redundancy. Each tool earns its place in the set.
The toolkit covers the full core workflow: generate a compliant invoice, validate it, embed the XML in a PDF/A-3 document, and extract previously embedded data. No obvious lifecycle gaps exist for the stated purpose.