mcp-invoicenow-sg
mcp-invoicenow-sg ๐ธ๐ฌ
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. theinvoice_uuidrequirement) 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. SeeEN16931_BASE_UNAVAILABLE_WARNINGin everyvalidate_invoice_sgresult and this monorepo'scontext-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_sgtool: 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
xslt2extra (pip install mcp-invoicenow-sg[xslt2]) โ required forvalidate_invoice_sgto run. The bundled IRAS C5 stylesheet requires XSLT 2.0.
Using uvx (recommended)
uvx mcp-invoicenow-sgUsing uv
uv add mcp-invoicenow-sgFrom source
git clone https://github.com/cmendezs/mcp-invoicenow-sg.git
cd mcp-invoicenow-sg
uv sync --all-extrasConfiguration
Add the server to your MCP client configuration:
{
"mcpServers": {
"invoicenow-sg": {
"command": "uvx",
"args": ["mcp-invoicenow-sg"]
}
}
}Environment variables
Variable | Required | Default | Description |
| No |
| Logging level: |
| No | โ | Local directory containing your own copy of the OpenPeppol eDEC Code Lists, required by the |
Tools
Tool | Description |
| Build an |
| 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). |
| Return the IRAS GST category codes (Annex E) accepted on Singapore invoices. |
| Return the CustomizationID (BT-24) and ProfileID (BT-23) for a given profile ( |
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 |
| Check whether a business is registered on the Peppol network; returns registration status and supported document types |
| Fetch the AS4 endpoint for a participant's document type |
| DNS-only (SML) diagnostic, independent of SMP reachability |
| Transmit a UBL/CII invoice via AS4 |
| Search the public Peppol Directory by participant, name, country, or document type |
| OpenPeppol eDEC codelist lookups (require |
| 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.pyContributing
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 | |
๐ง๐ช Belgium | |
๐ง๐ท Brazil | |
๐ซ๐ท France | |
๐ฉ๐ช Germany | |
๐ฎ๐น Italy | |
๐ต๐ฑ Poland | |
๐ธ๐ฌ Singapore | |
๐ช๐ธ Spain | |
๐ฆ๐ช United Arab Emirates |
License
This project is licensed under the Apache 2.0 license โ see LICENSE for details.
Maintenance
Related MCP Servers
- AlicenseAqualityAmaintenanceModel 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.34Apache 2.0
- AlicenseAqualityAmaintenanceModel 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.431Apache 2.0
- AlicenseAqualityAmaintenanceModel 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.50Apache 2.0
- 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.81Apache 2.0
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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