India Invoice MCP 🇮🇳 — How can my AI agent generate a GST e-invoice (IRN) in India?
Use it in 60 seconds
Paste this into your MCP client config (Claude Desktop, Cursor, Windsurf, or any MCP-capable agent):
{
"mcpServers": {
"india-invoice": {
"type": "http",
"url": "https://inv-in.wishpool.app/mcp"
}
}
}
Nothing to install. Credentials, when you need them, travel as HTTP headers on each request and are never stored — see the threat model.
Or run it yourself
Would you rather not send production credentials to a server you do not control? Deploy this identical code to your own account and point your agent at your own URL:
git clone https://github.com/junter1989k-ai/india-invoice-mcp && cd india-invoice-mcp && npx vercel --prod
MIT-licensed. Self-hosting removes us from the picture entirely, at no cost and with no loss of function.
Remote MCP server that lets any AI agent generate India GST e-invoices — registering an invoice with the IRP (Invoice Registration Portal, run by GSTN) to get an IRN (Invoice Reference Number) plus the signed QR code — through the Sandbox.co.in GSP (GST Suvidha Provider). Stateless, bring-your-own credentials, never stores anything.
Live endpoint: https://inv-in.wishpool.app/mcp · Registry: app.wishpool/india-invoice-mcp
Quick start
{
"mcpServers": {
"india-invoice": {
"type": "http",
"url": "https://inv-in.wishpool.app/mcp",
"headers": {
"x-sandbox-api-key": "your-key",
"x-sandbox-api-secret": "your-secret"
}
}
}
}
Sign up at sandbox.co.in for GSP credentials. Your GSTIN must have GST e-Invoice API access enabled on the e-Invoice portal and mapped to Sandbox as your GSP — otherwise the IRP rejects the stamp. e-Invoicing is B2B only: both seller and buyer need valid GSTINs.
Tools
| Tool | What it does |
|---|---|
create_invoice | Register a GST e-invoice at the IRP and get the irn (+ AckNo, AckDt, SignedQRCode). You send flat fields (GSTINs, names, addresses, line items with HSN + price + gst_rate); the server auto-computes the INV-01 tax schema — taxable value, CGST+SGST split for same-state supply vs IGST for cross-state, item + invoice totals. |
query_invoice | Status check by IRN: ACT (active) or CNL (cancelled). |
cancel_invoice | Cancel at the IRP with a reason code (1–4, default 4) — only within 24 hours of generation; after that, issue a credit note. |
Owner policy guardrails ride optional headers (x-agentpay-max-amount, x-agentpay-approval-above, x-agentpay-allowed-tools) — set by the human owner in client config; the agent cannot relax them. The amount cap/threshold applies to the invoice total (INR).
GST tax split (computed for you)
The place of supply (POS) state code is compared with the seller GSTIN's state code:
- Same state → intra-state supply → CGST + SGST, each at half the GST rate.
- Different state → inter-state supply → IGST at the full GST rate.
Example: seller in state 29, buyer in state 29, one line of ₹1000 × 2 @ 18% → AssVal ₹2000, CGST ₹180 + SGST ₹180, TotInvVal ₹2360. Same line to a buyer in state 27 → IGST ₹360, TotInvVal ₹2360.
Develop
node test/serve.js # local server on :3230
node test/e2e.js # protocol + validation + GST math unit check + fake-key live probe
Safety
Pure stateless translation layer. The IRP/GSTN certification burden sits with the Sandbox.co.in GSP; credentials travel per-request in headers, nothing is stored. Privacy policy.
Sister servers
Mexico CFDI 4.0 e-invoices are live: inv-mx.wishpool.app. Local payments in 81 countries, one family: mcp.wishpool.app · Taiwan e-invoice 電子發票 included. More invoice countries coming: Brazil NF-e · Chile DTE · Peru CPE · Poland KSeF · Romania e-Factura · Italy SdI.
MIT licensed.