MCP server for Singapore electronic invoicing (InvoiceNow)
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
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.
urn:peppol:pint:billing-1@sg-1) โ the recommended profile for new
senders.mcp_einvoicing_core.en16931.EN16931Invoice.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):
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.Order, OrderResponse, etc.) and IMDA's SG-specific
Order Balance.validate_invoice_sg tool: the OASIS UBL 2.1 schema files needed carry no
locally-confirmed redistribution grant.LocalTaxInvoice, TX2_Annex Annex B Type 1B).mcp-einvoicing-core (installed
automatically as a dependency)xslt2 extra (pip install mcp-invoicenow-sg[xslt2]) โ required for
validate_invoice_sg to run. The bundled IRAS C5 stylesheet requires XSLT 2.0.uvx (recommended)uv| 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. |
This server needs no credentials to run.
To use this server with Claude, add this configuration to your claude_desktop_config.json file:
Cursor supports MCP servers via stdio. Add the configuration in:
~/.cursor/mcp.json.cursor/mcp.jsonReload the Cursor window (Ctrl+Shift+P then Reload Window) to apply the changes.
Kiro supports MCP servers via its dedicated configuration file. Two levels are available:
~/.kiro/settings/mcp.json.kiro/settings/mcp.jsonThe file is automatically reloaded on save. You can also open the config via the command palette (Cmd+Shift+P / Ctrl+Shift+P) then MCP.
| 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.
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:
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.
| 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 |
| ๐ฒ๐ฝ Mexico | mcp-cfdi-mx |
| ๐ต๐ฑ Poland | mcp-ksef-pl |
| ๐ธ๐ฌ Singapore | mcp-invoicenow-sg |
| ๐ช๐ธ Spain | mcp-facturacion-electronica-es |
| ๐ฆ๐ช United Arab Emirates | mcp-einvoicing-ae |
This project is licensed under the Apache 2.0 license โ see LICENSE for details. For the full version history, see CHANGELOG.md.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mcp-invoicenow-sg)<a href="https://allmcps.com/mcp/mcp-invoicenow-sg"><img src="https://allmcps.com/api/badge/mcp-invoicenow-sg?style=directory" alt="MCP Invoicenow Sg on AllMCPs" /></a>