Skip to main content
Glama
cmendezs

mcp-invoicenow-sg

mcp-invoicenow-sg ๐Ÿ‡ธ๐Ÿ‡ฌ

English

PyPI version Python License


Introduction

mcp-invoicenow-sg is an MCP (Model Context Protocol) server for Singapore electronic invoicing over InvoiceNow, the national e-invoicing platform operated by IMDA. It builds and validates PINT-SG v1.4.1 and SG Peppol BIS Billing 3.0 sent invoices (originally-issued invoices, not the received/purchase side). 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.


Related MCP server: mcp-fattura-elettronica-it

Supported standards

  • PINT-SG v1.4.1 (urn:peppol:pint:billing-1@sg-1) โ€” the recommended profile for new senders.

  • SG Peppol BIS Billing 3.0 โ€” legacy profile, predates the PINT programme.

  • Both are EN 16931-conformant; the invoice model extends mcp_einvoicing_core.en16931.EN16931Invoice.

  • Validation runs IRAS's own C5 acceptance layer (non_peppol_doc_validation) โ€” a first-party government artifact, e.g. it flags a missing buyer/seller UEN. As of v0.2.0, PINT-SG's own jurisdiction Schematron rules (e.g. the invoice_uuid requirement) are not checked โ€” see "Not yet supported" below.

Not yet supported (see specs/README.md and this monorepo's context-library/countries/sg.md for full detail):

  • CEN EN16931 base and PINT-SG jurisdiction Schematron validation. v0.1.0 bundled a self-compiled derivative of OpenPeppol's PINT-SG jurisdiction Schematron with no confirmed redistribution rights; it was removed in v0.2.0 (2026-08-28). The shared, properly-licensed core CEN EN16931 base validator is wired but not yet activated for SG โ€” SGInvoice's IRAS GST category codes have no sourced crosswalk to the UNCL5305 code list that validator requires. See EN16931_BASE_UNAVAILABLE_WARNING in every validate_invoice_sg result and this monorepo's context-library/roadmap-2026.md ([CORE-EN16931-BASE-SG-CROSSWALK-1]) for what would unblock it.

  • The Peppol Ordering message family (Order, OrderResponse, etc.) and IMDA's SG-specific Order Balance.

  • UBL 2.1 XSD structural validation. Proven correct against a real UBL 2.1 schema in this package's own test suite (a test-only fixture, not shipped in the wheel), but not wired into the validate_invoice_sg tool: the OASIS UBL 2.1 schema files needed carry no locally-confirmed redistribution grant.

  • IRAS's own Invoice Data Submission API (the 5th-corner "C5" copy specifically, as distinct from generic Peppol AS4 transport, which the Peppol tools below do support) โ€” no publicly available document states an IMDA-accredited Access Point's actual API base URL or authentication flow.

  • SG Peppol BIS Billing 3.0 Schematron validation โ€” no rule set is bundled for this profile.

  • The received/purchase-side invoice model (LocalTaxInvoice, TX2_Annex Annex B Type 1B).


Installation

Requirements

  • Python โ‰ฅ 3.11

  • mcp-einvoicing-core (installed automatically as a dependency)

  • Optional: the xslt2 extra (pip install mcp-invoicenow-sg[xslt2]) โ€” required for validate_invoice_sg to run. The bundled IRAS C5 stylesheet requires XSLT 2.0.

Using uvx (recommended)

uvx mcp-invoicenow-sg

Using uv

uv add mcp-invoicenow-sg

From source

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

Configuration

Add the server to your MCP client configuration:

{
  "mcpServers": {
    "invoicenow-sg": {
      "command": "uvx",
      "args": ["mcp-invoicenow-sg"]
    }
  }
}

Environment variables

Variable

Required

Default

Description

LOG_LEVEL

No

INFO

Logging level: DEBUG, INFO, WARNING, or ERROR

EINVOICING_PEPPOL_CODELIST_DIR

No

โ€”

Local directory containing your own copy of the OpenPeppol eDEC Code Lists, required by the list_*/check_* Peppol codelist tools (not bundled with this package; see mcp-einvoicing-core README). Participant lookup, AS4 send, and directory search work without it.


Tools

Tool

Description

generate_invoice_sg

Build an SGInvoice from structured data and serialize it to UBL 2.1 XML.

validate_invoice_sg

Validate a UBL 2.1 invoice against IRAS's C5 acceptance layer (CEN EN16931 base, PINT-SG jurisdiction Schematron, SG BIS 3.0, and UBL 2.1 XSD structural validation are not checked โ€” see "Not yet supported" above).

get_gst_category_codes_sg

Return the IRAS GST category codes (Annex E) accepted on Singapore invoices.

get_profile_urn_sg

Return the CustomizationID (BT-24) and ProfileID (BT-23) for a given profile (PINT_SG or BIS3).

Recommended workflow: get_profile_urn_sg to pick the profile pair, then generate_invoice_sg with that pair in the invoice data, then validate_invoice_sg on the result.

Peppol tools

Generic Peppol network tools (participant lookup, AS4 send, directory search, eDEC codelists) are also registered, from mcp_einvoicing_core.peppol.tools, with bare Singapore UENs normalized to scheme 0195 participant IDs:

Tool

Description

peppol_lookup_participant

Check whether a business is registered on the Peppol network; returns registration status and supported document types

peppol_get_service_endpoint

Fetch the AS4 endpoint for a participant's document type

resolve_peppol_dns

DNS-only (SML) diagnostic, independent of SMP reachability

peppol_send

Transmit a UBL/CII invoice via AS4

peppol_directory_search

Search the public Peppol Directory by participant, name, country, or document type

list_participant_id_schemes, list_document_type_ids, list_process_ids, list_spis_use_case_ids

OpenPeppol eDEC codelist lookups (require EINVOICING_PEPPOL_CODELIST_DIR)

check_document_type_id_in_codelist, check_process_id_in_codelist, check_participant_id_scheme_in_codelist, get_peppol_codelist_version

OpenPeppol eDEC codelist checks and version reporting

peppol_send is generic Peppol AS4 transport to the recipient's Access Point โ€” it is not the same as submission to IRAS's own C5 corner, which stays unsupported (see "Not yet supported" above).

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.

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Model Context Protocol (MCP) server for French Electronic Invoicing (NF XP Z12-013). Provide tools to validate, generate, and explore API specifications for PDP/OD interoperability.
    34
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Model Context Protocol (MCP) server for Italian Electronic Invoicing (FatturaPA / SDI). Provide tools to validate, generate, and explore API specifications for Sistema di Interscambio (SDI) interoperability.
    43
    1
    Apache 2.0
  • 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.
    8
    1
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • MCP Spec Compliance MCP โ€” audits any MCP server.json against the official Model Context Protocol

  • MCP server for the PDFGate API. Generate PDFs, manage documents and handle e-signatures.

  • MCP server for AI access to Swagger by SmartBear.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cmendezs/mcp-invoicenow-sg'

If you have feedback or need assistance with the MCP directory API, please join our Discord server