Skip to main content
Glama
cmendezs

mcp-invoicenow-sg

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLogging level: DEBUG, INFO, WARNING, or ERRORINFO

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
generate_invoice_sgA

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

invoice_data['profile'] (CustomizationID) and invoice_data['business_process'] (ProfileID) select PINT-SG or SG Peppol BIS Billing 3.0, and must be a matched pair (TX2_Annex Annex B) — use get_profile_urn_sg to look up both values together rather than setting them independently. Returns the UBL XML (as a string) plus the customization_id/profile_id that were applied. Does not validate against Schematron — call validate_invoice_sg on the returned XML for that.

validate_invoice_sgA

Validate a UBL 2.1 XML invoice against IRAS's C5 acceptance-layer Schematron.

Runs IRAS's own C5 acceptance layer (checks documents that IRAS itself would still reject, e.g. a missing buyer/seller UEN). The CEN EN16931 base ruleset, PINT-SG's own jurisdiction overlay, and SG Peppol BIS Billing 3.0 are NOT checked — see scope and the EN16931-BASE-UNAVAILABLE warning in the result, and validators/schematron.py's module docstring for why (SGInvoice's GST category codes have no sourced crosswalk to the UNCL5305 code list the base ruleset requires; tracked as [CORE-EN16931-BASE-SG-CROSSWALK-1] in context-library/roadmap-2026.md).

Requires the optional xslt2 extra (pip install mcp-invoicenow-sg[xslt2]) — the bundled stylesheet needs XSLT 2.0. If missing, returns level="unavailable".

get_gst_category_codes_sgA

Return the IRAS GST category codes accepted on Singapore invoices.

Source: IRAS e-Tax Guide Annex E (supply/output-tax side only — the purchase-side codes are out of scope for sent invoices). rate is null for categories with no fixed rate ("NA" in the source table).

get_profile_urn_sgA

Return the CustomizationID (BT-24) and ProfileID (BT-23) for a Singapore profile.

CustomizationID comes from mcp_einvoicing_core.profile_registry (registered at import time in models/invoice.py); ProfileID is a shared Peppol process identifier, not per-country, so it is returned from a local constant rather than the registry.

PINT_SG is the recommended profile for new senders — SG Peppol BIS Billing 3.0 (BIS3) predates the PINT programme and is positioned as legacy (context-library/countries/sg.md, "Supported wire formats and profile URNs" — user-supplied guidance, not independently verified against an IRAS/IMDA notice). Not enforced as a hard default here; callers choose explicitly.

peppol_lookup_participantA

Check whether a business is registered on the Peppol network.

Performs a DNS-over-HTTPS U-NAPTR lookup followed by an SMP service-group request to determine registration status and the list of supported document type identifiers.

peppol_get_service_endpointA

Fetch the AS4 endpoint for a Peppol participant's document type.

Resolves the SMP hostname via DNS, then fetches service metadata for document_type_id. If the SMP returns a redirect, the result's redirect_url is set and endpoint_url is None; callers must not follow more than one redirect hop (SMP 1.4.0 §3.2).

resolve_peppol_dnsA

Resolve the SMP hostname for a Peppol participant via DNS only.

Performs the raw U-NAPTR (SML) lookup without fetching the SMP service group, useful for diagnosing whether a participant is registered in the SML independently of SMP reachability.

peppol_sendA

Send a UBL/CII invoice to a Peppol participant via AS4.

Looks up the recipient's AS4 endpoint (SMP), builds the ebMS3/AS4 envelope, and transmits it using the supplied signing credentials.

list_participant_id_schemesA

List Peppol participant identifier (ICD) schemes from the OpenPeppol eDEC code list.

Requires EINVOICING_PEPPOL_CODELIST_DIR to point at a local copy of the eDEC "Participant Identifier Schemes" GeneriCode export (not bundled with this package, no confirmed redistribution rights, see mcp_einvoicing_core.peppol.codelists module docstring).

list_document_type_idsA

List Peppol document type identifiers from the OpenPeppol eDEC code list.

Requires EINVOICING_PEPPOL_CODELIST_DIR (see list_participant_id_schemes).

list_process_idsA

List Peppol process identifiers from the OpenPeppol eDEC code list.

Requires EINVOICING_PEPPOL_CODELIST_DIR (see list_participant_id_schemes).

list_spis_use_case_idsA

List Peppol SPIS use case identifiers from the OpenPeppol eDEC code list.

Requires EINVOICING_PEPPOL_CODELIST_DIR (see list_participant_id_schemes).

check_document_type_id_in_codelistA

Check whether a (scheme, value) pair is a recognized Peppol document type identifier.

Requires EINVOICING_PEPPOL_CODELIST_DIR (see list_participant_id_schemes). Searches all entries regardless of state, so a historical (deprecated or removed) document type is still reported as found.

check_process_id_in_codelistB

Check whether a (scheme, value) pair is a recognized Peppol process identifier.

Requires EINVOICING_PEPPOL_CODELIST_DIR (see list_participant_id_schemes).

check_participant_id_scheme_in_codelistA

Check whether a 4-digit ISO 6523 ICD code (e.g. "0208") is a recognized Peppol scheme.

Requires EINVOICING_PEPPOL_CODELIST_DIR (see list_participant_id_schemes).

get_peppol_codelist_versionA

Report the OpenPeppol eDEC code list release version(s) currently configured locally.

peppol_directory_searchA

Search the Peppol Directory for registered participants.

Public, unauthenticated search (no relation to SMP lookup). At least one of q/participant/name/country/doctype must be supplied.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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