Uae Einvoice Mcp

io.github.mirzaabubakrPublished by GitHub account mirzaabubakrv0.2.2Updated Nov 1, 2026

UAE e-invoicing MCP: TIN/TRN, 51-field checklist, scope, UBL XML, PINT AE Schematron.

Overview

AI-generated overview

Local MCP server for UAE e-invoicing: validates TRN/TIN, checks PINT AE fields, generates and validates UBL XML, and explains mandate scope.

What you can do
  • Validate UAE tax IDs (TRN/TIN) and derive Peppol participant IDs
  • Check invoice JSON for MoF mandatory fields, arithmetic and tax ID consistency
  • Generate UBL 2.1 PINT AE Invoice or CreditNote XML, optionally refusing incomplete data
  • Validate UBL XML against the official PINT AE 1.0.4 Schematron
  • Explain the e-invoicing mandate timeline, exclusions and technical baseline
  • Decide whether a given supply falls in scope as mandatory, excluded or voluntary
When to use it
Useful for ERP, finance and accounting teams preparing UAE e-invoices who want an assistant to pre-check field completeness, tax ID formats and XML structure before handing data to an Accredited Service Provider. Also handy for quickly judging whether a transaction type is in scope of the mandate.
Requirements
Runs locally over stdio as an npm package; Node.js 20 or newer. No API keys or environment variables are declared. The XML validation tool downloads and compiles the OpenPeppol PINT AE 1.0.4 Schematron rules on first use, so network access is needed then.
Before you install
Informational tooling only, not legal or tax advice, and no substitute for ASP XSD validation, digital signatures or live FTA register checks; TRN lookup does not query the live FTA register. Invoice data you pass in is processed by the tools, and the first XML validation fetches rules from a third party. Generated XML is a stub to review before transmission.

Installation

In SourceWeft

  1. Open Uae Einvoice Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

uae-einvoice-mcp

[Uae Einvoice MCP server]

MCP server for UAE e-invoicing / PINT AE — TRN/TIN validation, structural compliance, the 51-field mandatory checklist, UBL XML stub generation, and mandate timeline helpers.

Built with the MCP TypeScript SDK v2 (@modelcontextprotocol/server) over stdio. Free to run locally; no API keys required for v0.2.

Informational tooling only — not legal or tax advice, and not a substitute for Accredited Service Provider (ASP) XSD validation, digital signatures, or live FTA register checks. validate_pint_ae_xml runs the official OpenPeppol PINT AE 1.0.4 Schematron.

Why this exists

UAE e-invoicing (Peppol + PINT AE) forces ERP and finance teams to get dozens of mandatory fields, TIN vs TRN, and Peppol endpoint IDs right before an ASP will transmit anything. This server gives AI assistants a small, installable toolkit for those checks.

Tools

ToolWhat it does
lookup_business_trnValidates 15-digit TRN or 10-digit TIN format, UAE 1… prefix, Peppol AE:TIN check digit, and returns 0235:<TIN>
check_invoice_complianceStructural checks (parties, totals math, tax breakdown, lines) with errors/warnings/score
check_pint_ae_fieldsFull 51-field mandatory matrix: present / missing / invalid / N/A + gaps
generate_pint_ae_xmlBuilds a UBL 2.1 PINT AE Invoice/CreditNote (optional strict mode)
validate_pint_ae_xmlOfficial PINT AE 1.0.4 Schematron (shared + UAE rules); first call downloads and compiles the rules
get_einvoicing_requirementsMandate phases, excluded transactions, recent MoF amendments, technical baseline, next actions
check_einvoicing_scopePer-transaction scope: B2B/B2G/B2C, Tax Group, sovereign, air, exempt finance — mandatory / excluded / voluntary

Requirements

  • Node.js 20+

Install / run

bash
npm installnpm run buildnpm start

Dev (TypeScript directly):

bash
npm run dev

Self-check (no MCP client needed):

bash
npm run selfcheck

MCP Inspector

bash
npm run inspector

Paste fixtures from examples/compliant-invoice.json, examples/credit-note.json, examples/usd-invoice.json, or examples/broken-invoice.json into the tools.

Cursor / Claude Desktop (stdio)

Published package (recommended):

json
{  "mcpServers": {    "uae-einvoice": {      "command": "npx",      "args": ["-y", "uae-einvoice-mcp"]    }  }}

Local checkout:

json
{  "mcpServers": {    "uae-einvoice": {      "command": "node",      "args": ["/absolute/path/to/uae-einvoice-mcp/dist/index.js"]    }  }}

See also .cursor/mcp.json.example.

Suggested test flow

  1. check_pint_ae_fields with examples/compliant-invoice.json
  2. generate_pint_ae_xml with the same payload (strict: true should succeed)
  3. validate_pint_ae_xml on the generated XML (first call downloads PINT AE 1.0.4 rules)
  4. Repeat 1–2 with examples/credit-note.json and examples/usd-invoice.json
  5. generate_pint_ae_xml with examples/broken-invoice.json and strict: true (should refuse)
  6. check_einvoicing_scope with transactionKind: b2b and an annual revenue

Roadmap

  • 51-field checklist + PINT AE XML stub generation
  • Official PINT AE 1.0.4 Schematron validation (validate_pint_ae_xml)
  • Per-transaction scope helper (check_einvoicing_scope)
  • Credit-note and non-AED fixtures + CI self-check
  • Optional HTTP + API-key transport for hosted / paid tier
  • Publish to npm ([email protected])
  • List in MCP registry (io.github.mirzaabubakr/uae-einvoice-mcp)

License

MIT

Source: README.md at commit 74f972e

Tools

7

lookup_business_trn

Validate a UAE Tax Registration Number (15-digit TRN, 1…03) or Tax Identification Number (10-digit TIN, 1…): PINT AE format rules, Peppol AE:TIN check digit (warning only), and derived Peppol participant ID (0235:TIN). Does not call the live FTA register.

ParameterstaxIdrequired

check_invoice_compliance

UAE e-invoice JSON checks: MoF mandatory field gaps plus PINT AE arithmetic (line net, tax breakdown, totals), tax ID formats and TIN/TRN consistency. Returns errors and warnings with the PINT AE rule ID where one exists.

ParametersinvoiceDatarequired

check_pint_ae_fields

Evaluate invoice JSON against the MoF mandatory fields list v1.0 — 51 fields for tax invoices/credit notes (380/381), 49 for commercial invoices (480/81) — plus conditional PINT AE fields (UUID, AED totals, flags, credit note reason…). Per-field status present/derived/missing/invalid/not_applicable with PINT AE term, XML path and rule IDs.

ParametersinvoiceDatarequired

generate_pint_ae_xml

Generate a UBL 2.1 PINT AE Invoice/CreditNote from invoice JSON (UUID, transaction flags, payment means, emirate codes, legal registration, price details, AED line amounts). Runs the MoF field checklist first; with strict=true refuses to emit XML when fields are missing.

ParametersstrictinvoiceDatarequired

validate_pint_ae_xml

Validate a UBL Invoice or CreditNote against the official PINT AE 1.0.4 Schematron (shared PINT rules + UAE rules) published by OpenPeppol. Returns failed rule IDs, messages and XPath locations. First call downloads and compiles the rules (~5 s); later calls take milliseconds. Does not perform XSD schema or signature validation.

Parametersxmlpath

get_einvoicing_requirements

Return the UAE e-invoicing mandate timeline, excluded transactions (MD 197 of 2026), recent amendments, technical baseline (PINT AE / Peppol / ASP), and next actions. Optional annual revenue (AED) auto-selects large vs SME.

ParametersbusinessTypeannualRevenueAed

check_einvoicing_scope

Decide whether a UAE supply must be e-invoiced: B2B/B2G/B2C, intra-Tax-Group (24-month exclusion from 1 Jan 2027), sovereign government, air passenger/cargo, or VAT-exempt/zero-rated financial services. Returns verdict, dates, and whether voluntary issuance is allowed.

ParametersasOfentityTypetransactionKindrequiredannualRevenueAed

Version history

2
  1. v0.2.2LatestOct 25, 2026
  2. v0.2.1Sep 16, 2026

Score

80% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.