Skip to main content

mcp-einvoicing-ae 🇦🇪

English | العربية

PyPI version Python License


Models, validators, and MCP tools implemented; package not yet published. The PINT AE / TDD publication-status gate resolved on 2026-08-26; AEInvoice, AEParty, AETaxDataDocument, the bundled Schematron/XSD validators, and the generate/validate/parse MCP tools all landed 2026-08-27. A tagged release is still pending — see Current status.


Introduction

mcp-einvoicing-ae is an MCP (Model Context Protocol) server that will expose tools for United Arab Emirates electronic invoicing. It is part of the mcp-einvoicing-* family of country-specific servers, all built on mcp-einvoicing-core, which provides the shared validation engine, EN 16931 abstractions, and Peppol network utilities.


Current status

Normative specifications and FTA guidelines were supplied on 2026-08-26, resolving the publication-status gate and the invoice-tree pathway. The core-gap check (2026-08-27) added TaxIdentifier.validate_ae_trn() to mcp-einvoicing-core v1.22.0 and confirmed the profile-URN and TDD-transport questions were not core gaps at all. Model, validator, and MCP tool code all landed the same day.

Area Status
Repository, CI, governance docs Done
Package skeleton (src/ layout, server entry point) Done
PINT AE publication status Confirmed (2026-08-26)
Normative specifications under specs/ Supplied (2026-08-26)
Invoice-tree pathway ConfirmedEN16931Invoice
Supported standards and profile URNs Known — see below
Core-gap check (mcp-einvoicing-core) DoneTaxIdentifier.validate_ae_trn(), core v1.22.0
AEInvoice / AEParty (billing + self-billing) Implemented (2026-08-27)
AETaxDataDocument (Peppol AE TDD model) Implemented — schema-level (XSD) validation blocked on the missing base OASIS UBL schema; Schematron validation unaffected
Bundled Schematron validators (PINT AE + TDD) Implemented — 4 stylesheets, XSLT 2.0 (saxonche/[xslt2] extra)
profile_registry registration (PINT AE URNs) Done
MCP tools (generate / validate / parse) Implemented (2026-08-27) — see Tools
First release (v0.1.0) Blocked — pending version bump, lockfile regen, and tag/publish (Phase E)

The publication gate — resolved 2026-08-26

At the prior verification of the OpenPeppol jurisdiction PINT documentation index (2026-06-29), the published jurisdiction profiles were the EU, Singapore, Australia and New Zealand, Japan, and Malaysia; the UAE was absent. Documents supplied on 2026-08-26 resolve this: the UAE Peppol Authority's own release notes record PINT AE (billing) at "Status: Final", version 1.0.4, released 2026-06-02, and the Peppol AE Tax Data Document (TDD — the 5th-corner reporting document) at "Status: Final", version 1.0.3, released 2026-05-25. The FTA's own June 2026 guideline states directly that the PINT-AE billing specifications "are published on its website."

One caveat remains open: this is the specialization publisher's own release-status label, not an independently observed OpenPeppol governance-registry page — strong evidence, not full certainty. Full detail and citations: specs/README.md and the monorepo's context-library/countries/ae.md.


Supported standards

  • PINT AE (billing) — UBL 2.1, CustomizationID: urn:peppol:pint:billing-1@ae-1, ProfileID: urn:peppol:bis:billing. Version 1.0.4 (2026-06-02).
  • PINT AE (self-billing)CustomizationID: urn:peppol:pint:selfbilling-1@ae-1, ProfileID: urn:peppol:bis:selfbilling.
  • Peppol AE TDD (Tax Data Document) — the 5th-corner reporting document sent to the FTA; its own XML namespace (urn:peppol:schema:taxdata:1.0), not a UBL invoice. Version 1.0.3 (2026-05-25).

The UAE programme is a decentralized Peppol 5-corner model routed through Accredited Service Providers, adding a tax-authority reporting leg (the TDD above) beyond the 4-corner exchange used elsewhere in this family. The invoice-tree pathway is confirmed EN16931Invoice (PINT AE is a UBL 2.1 CIUS of EN 16931-1:2017) — no JSON binding was found in the supplied specifications.

AEInvoice reuses mcp_einvoicing_core.wire_formats.EN16931UBLSerializer/EN16931UBLParser directly rather than a bespoke serializer, since profile/business_process hold the real Peppol URNs. AEParty.vat_id carries the 15-digit TRN, format-validated via TaxIdentifier.validate_ae_trn() (core v1.22.0); the Peppol participant ID (TIN) is auto-derived as its first 10 digits. AETaxDataDocument models the TDD's mandatory fields but is not a UBL invoice and is not built on AEInvoice. MCP tools reuse this stack directly — see Tools for what's covered and what isn't. The TDD transport channel (same AS4 channel as the invoice, or a separate one) remains an open documentation question, not a code gap. Full detail: specs/README.md.


Installation

Requirements

Using uvx (recommended, once published)

uvx mcp-einvoicing-ae

Using uv

uv add mcp-einvoicing-ae

From source

git clone https://github.com/cmendezs/mcp-einvoicing-ae.git
cd mcp-einvoicing-ae
uv sync --all-extras

Configuration

Add the server to your MCP client configuration:

{
  "mcpServers": {
    "einvoicing-ae": {
      "command": "uvx",
      "args": ["mcp-einvoicing-ae"]
    }
  }
}

Environment variables

Variable Required Default Description
LOG_LEVEL No INFO Logging level: DEBUG, INFO, WARNING, or ERROR

Country-specific variables (transport endpoints, credentials, environment switches) are added once the specification documents them. See .env.example.


Tools

Tool Description
generate_invoice_ae Generate a PINT AE UBL 2.1 invoice XML (billing or self-billing) from structured data. Only the EN 16931 core field set is emitted — AEParty.trade_license_number has no mapping in core's generic UBL serializer yet and is dropped from the output.
validate_invoice_ae Validate a PINT AE UBL 2.1 invoice against the bundled Schematron rules (UBL structural rules + ibr-*-ae jurisdiction rules). Requires the xslt2 extra.
validate_tdd_ae Validate a Peppol AE Tax Data Document (TDD) against its bundled Schematron rules. Schematron-level only — schema (XSD) validation is unavailable pending the base OASIS UBL schema; every result flags this explicitly. Requires the xslt2 extra.
parse_invoice_ae Parse a PINT AE UBL 2.1 invoice XML into a structured dict (EN 16931 core field set only — AE-specific extensions such as trade_license_number are not extracted).

All four tools require mcp-einvoicing-ae[xslt2] (bundles saxonche) for the Schematron validators to load; without it, validate_invoice_ae/validate_tdd_ae return an explicit "unavailable" result rather than a silent pass.

The tool reference in docs/TOOLS.md is generated from the running server:

uv run python scripts/gen_tool_reference.py

Contributing

See CONTRIBUTING.md for development setup, the test and lint commands, and the pull request checklist. Security issues follow the private disclosure process in SECURITY.md.


Other e-invoicing MCP servers

Country Server
🌍 Global mcp-einvoicing-core
🇧🇪 Belgium mcp-einvoicing-be
🇧🇷 Brazil mcp-nfe-br
🇫🇷 France mcp-facture-electronique-fr
🇩🇪 Germany mcp-einvoicing-de
🇮🇹 Italy mcp-fattura-elettronica-it
🇵🇱 Poland mcp-ksef-pl
🇸🇬 Singapore mcp-invoicenow-sg
🇪🇸 Spain mcp-facturacion-electronica-es
🇦🇪 United Arab Emirates mcp-einvoicing-ae

License

This project is licensed under the Apache 2.0 license — see LICENSE for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_einvoicing_ae-0.1.0.tar.gz (6.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_einvoicing_ae-0.1.0-py3-none-any.whl (103.3 kB view details)

Uploaded Python 3

File details

Details for the file mcp_einvoicing_ae-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_einvoicing_ae-0.1.0.tar.gz
  • Upload date:
  • Size: 6.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mcp_einvoicing_ae-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b2e82d9ddd1f7e5fa14aa74bbca69a4a8b63d2ee4cba57db50aa1a9cb4f441c6
MD5 ef74ed0ed90b3b5f9b73fbce79f8ab45
BLAKE2b-256 e0e81988dc6475493e8ea54b013890c0a469b8f3d2f05c59fa7760dbc2c5bd71

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_einvoicing_ae-0.1.0.tar.gz:

Publisher: publish.yml on cmendezs/mcp-einvoicing-ae

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_einvoicing_ae-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_einvoicing_ae-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 362eb2af611c9f27a124b382cdc80c08e3b687d3f40ed22d72b99aba26f14d49
MD5 a9c8d0e071196d0c70ba72bcc6674da5
BLAKE2b-256 398e0f92347fb38938a12d244382385e4c9d7824ab2e4aed5f68d94e9a4d2627

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_einvoicing_ae-0.1.0-py3-none-any.whl:

Publisher: publish.yml on cmendezs/mcp-einvoicing-ae

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.0

2 files

0.2.0

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page