Create invoices, quotes, receipts and credit notes with GST or VAT, as prefilled links or PDFs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Monthly EMI on a reducing-balance loan, total interest, total payment and the year-by-year schedule. Read-only arithmetic.
Loan amount.
Yearly interest in percent, e.g. 9.5.
Loan term in years (up to 50). Used when months is not given.
Loan term in months (1 to 600). Give months or years.
ISO 4217 code; default INR.
Monthly EMI on a reducing-balance loan, total interest, total payment and the year-by-year schedule. Read-only arithmetic.
| Argument | Type | Description |
|---|---|---|
| years | number | string | Loan term in years (up to 50). Used when months is not given. |
| months | number | string | Loan term in months (1 to 600). Give months or years. |
| currency | string | ISO 4217 code; default INR. |
| principal* | number | string | Loan amount. |
| annual_rate* | number | string | Yearly interest in percent, e.g. 9.5. |
{
"type": "object",
"required": [
"principal",
"annual_rate"
],
"properties": {
"years": {
"type": [
"number",
"string"
],
"description": "Loan term in years (up to 50). Used when months is not given."
},
"months": {
"type": [
"number",
"string"
],
"description": "Loan term in months (1 to 600). Give months or years."
},
"currency": {
"type": "string",
"description": "ISO 4217 code; default INR."
},
"principal": {
"type": [
"number",
"string"
],
"description": "Loan amount."
},
"annual_rate": {
"type": [
"number",
"string"
],
"description": "Yearly interest in percent, e.g. 9.5."
}
}
}GST on an amount in rupees: add GST to an amount before tax, or take it out of an amount that includes it; CGST + SGST for a supply within one state, IGST across states. Read-only arithmetic.
| Argument | Type | Description |
|---|---|---|
| mode | string | add: the amount is before GST (default). remove: the amount includes GST. |
| rate | number | string | GST rate in percent; default 18. |
| amount* | number | string | Amount in rupees, e.g. 10000. |
| supply | string | intra: within one state, CGST + SGST (default). inter: another state or an export, IGST. |
{
"type": "object",
"required": [
"amount"
],
"properties": {
"mode": {
"enum": [
"add",
"remove"
],
"type": "string",
"description": "add: the amount is before GST (default). remove: the amount includes GST."
},
"rate": {
"type": [
"number",
"string"
],
"description": "GST rate in percent; default 18."
},
"amount": {
"type": [
"number",
"string"
],
"description": "Amount in rupees, e.g. 10000."
},
"supply": {
"enum": [
"intra",
"inter"
],
"type": "string",
"description": "intra: within one state, CGST + SGST (default). inter: another state or an export, IGST."
}
}
}VAT on an amount: add it to a net amount or take it out of a gross one. UK by default; EU countries and the UAE by country (standard rate if no rate is given). Read-only arithmetic.
| Argument | Type | Description |
|---|---|---|
| mode | string | add: the amount is net (default). remove: the amount includes VAT. |
| rate | number | string | VAT rate in percent; default the country's standard rate. |
| amount* | number | string | Amount in the country's currency, e.g. 1000. |
| country | string | GB (default), DE, FR, NL, IE, ES, IT, BE, AT, PT, FI or AE. |
{
"type": "object",
"required": [
"amount"
],
"properties": {
"mode": {
"enum": [
"add",
"remove"
],
"type": "string",
"description": "add: the amount is net (default). remove: the amount includes VAT."
},
"rate": {
"type": [
"number",
"string"
],
"description": "VAT rate in percent; default the country's standard rate."
},
"amount": {
"type": [
"number",
"string"
],
"description": "Amount in the country's currency, e.g. 1000."
},
"country": {
"type": "string",
"description": "GB (default), DE, FR, NL, IE, ES, IT, BE, AT, PT, FI or AE."
}
}
}Checks that an Indian GSTIN is well formed (15 characters, state code, PAN, check character) and decodes the state and PAN. It makes no lookup and does not confirm that the registration exists or is active. Read-only.
| Argument | Type | Description |
|---|---|---|
| gstin* | string | The 15-character GSTIN, e.g. 27AAPFU0939F1ZV. |
{
"type": "object",
"required": [
"gstin"
],
"properties": {
"gstin": {
"type": "string",
"description": "The 15-character GSTIN, e.g. 27AAPFU0939F1ZV."
}
}
}Validates a document (invoice, quote, proforma invoice, receipt or credit note) and returns editor_url, a short link that opens it prefilled in the LuckPanda editor, where the person can review, edit and download the PDF. Also returns the totals with tax worked out, the required fields still missing and any parts left out as invalid. Side effect: the document is stored on LuckPanda's servers for 7 days under a random link id (not listed or indexed), and every call creates a new link. Nothing is issued, numbered or sent. Use details the person gave; do not invent them.
| Argument | Type | Description |
|---|---|---|
| doc* | object | A document to prefill. Parts that fail validation are left out and listed in `ignored`; nothing is ever rendered as HTML. |
| page | string | The page to open: a slug ("credit-note", "gst-invoice-format") or its URL. Default: the generator for the document type and country. |
{
"type": "object",
"required": [
"doc"
],
"properties": {
"doc": {
"type": "object",
"properties": {
"kind": {
"enum": [
"invoice",
"quote",
"proforma",
"credit_note",
"receipt"
],
"type": "string",
"description": "Document type."
},
"buyer": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"email": {
"type": "string",
"maxLength": 200
},
"tax_id": {
"type": "string",
"maxLength": 60,
"description": "GSTIN (India), VAT number (UK/EU), EIN (US), ABN, TRN..."
},
"address": {
"type": "string",
"maxLength": 600,
"description": "New lines as \\n."
},
"state_code": {
"type": "string",
"description": "India: two-digit GST state code or the state name."
},
"country_code": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Buyer only; the seller's country is the document's country_code."
}
},
"description": "The client (for a receipt, who paid)."
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hsn_sac": {
"type": "string",
"description": "India: HSN (goods, 4/6/8 digits) or SAC (services, 6 digits starting 99)."
},
"quantity": {
"type": [
"string",
"number"
],
"description": "Decimal, up to 6 decimals (\"1\", \"2.5\")."
},
"unit_code": {
"type": "string",
"description": "unit | hour | day | month | item"
},
"unit_price": {
"type": [
"string",
"number"
],
"description": "Alternative: price per unit in major units (\"1250.50\")."
},
"description": {
"type": "string",
"maxLength": 500
},
"tax_percent": {
"type": [
"string",
"number"
],
"description": "Alternative: tax rate in percent (18)."
},
"tax_rate_bp": {
"type": "integer",
"maximum": 10000,
"minimum": 0,
"description": "Tax rate in basis points: 18% = 1800."
},
"discount_minor": {
"type": "integer",
"minimum": 0
},
"unit_price_minor": {
"type": "integer",
"minimum": 0,
"description": "Price per unit in minor units (cents, paise)."
}
}
},
"maxItems": 100,
"description": "The items or services, 1 to 100 lines."
},
"notes": {
"type": "string",
"maxLength": 2000,
"description": "Shown on the document, for example a thank-you or a delivery note."
},
"terms": {
"type": "string",
"maxLength": 2000,
"description": "Payment terms and bank details; for a quote, validity and delivery terms."
},
"reason": {
"type": "string",
"description": "Credit notes: refund, product_return, discount, price_correction, defect, cancellation, tax_correction, other, or the reason in your own words."
},
"seller": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"email": {
"type": "string",
"maxLength": 200
},
"tax_id": {
"type": "string",
"maxLength": 60,
"description": "GSTIN (India), VAT number (UK/EU), EIN (US), ABN, TRN..."
},
"address": {
"type": "string",
"maxLength": 600,
"description": "New lines as \\n."
},
"state_code": {
"type": "string",
"description": "India: two-digit GST state code or the state name."
},
"country_code": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Buyer only; the seller's country is the document's country_code."
}
},
"description": "Your business (who issues the document; for a receipt, who received the money)."
},
"currency": {
"enum": [
"USD",
"EUR",
"GBP",
"INR",
"AED",
"SGD",
"AUD",
"CAD",
"MXN",
"BRL"
],
"type": "string",
"description": "ISO 4217 code. If missing: the seller country's currency."
},
"due_date": {
"type": [
"string",
"null"
],
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Due date; for a quote, valid until."
},
"issue_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD. Default: today."
},
"export_type": {
"enum": [
"none",
"lut",
"with_payment"
],
"type": "string",
"description": "India, buyer abroad."
},
"reason_note": {
"type": "string",
"maxLength": 500
},
"country_code": {
"enum": [
"US",
"GB",
"DE",
"FR",
"NL",
"IE",
"AE",
"SG",
"AU",
"CA",
"IN",
"ES",
"IT",
"BE",
"AT",
"PT",
"FI",
"MX",
"BR"
],
"type": "string",
"description": "The seller's country: decides currency, formats and tax rules. If missing: the currency's country (INR -> IN, GBP -> GB …; EUR -> DE unless the caller is in a euro country), else the caller's country."
},
"place_of_supply": {
"type": "string",
"description": "India: GST state code, or 96 for another country."
},
"original_invoice_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"original_invoice_number": {
"type": "string",
"maxLength": 40,
"description": "Credit notes: the invoice it corrects."
}
},
"description": "A document to prefill. Parts that fail validation are left out and listed in `ignored`; nothing is ever rendered as HTML."
},
"page": {
"type": "string",
"description": "The page to open: a slug (\"credit-note\", \"gst-invoice-format\") or its URL. Default: the generator for the document type and country."
}
}
}Generates a PDF of a document (invoice, quote, proforma invoice, receipt or credit note) and returns it base64-encoded in structuredContent.pdf_base64, with its verification URL and an editor_url that opens the same document in the editor. PDFs from this tool include a LuckPanda footer and a verification QR code. Side effects: stores a verification record for the PDF (issuer name, document type, date, currency and total; no client details) and a 7-day copy of the document behind editor_url. Limit: about 40 PDFs an hour per network.
| Argument | Type | Description |
|---|---|---|
| doc* | object | A document to prefill. Parts that fail validation are left out and listed in `ignored`; nothing is ever rendered as HTML. |
| page | string | The page to open: a slug ("credit-note", "gst-invoice-format") or its URL. Default: the generator for the document type and country. |
{
"type": "object",
"required": [
"doc"
],
"properties": {
"doc": {
"type": "object",
"properties": {
"kind": {
"enum": [
"invoice",
"quote",
"proforma",
"credit_note",
"receipt"
],
"type": "string",
"description": "Document type."
},
"buyer": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"email": {
"type": "string",
"maxLength": 200
},
"tax_id": {
"type": "string",
"maxLength": 60,
"description": "GSTIN (India), VAT number (UK/EU), EIN (US), ABN, TRN..."
},
"address": {
"type": "string",
"maxLength": 600,
"description": "New lines as \\n."
},
"state_code": {
"type": "string",
"description": "India: two-digit GST state code or the state name."
},
"country_code": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Buyer only; the seller's country is the document's country_code."
}
},
"description": "The client (for a receipt, who paid)."
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hsn_sac": {
"type": "string",
"description": "India: HSN (goods, 4/6/8 digits) or SAC (services, 6 digits starting 99)."
},
"quantity": {
"type": [
"string",
"number"
],
"description": "Decimal, up to 6 decimals (\"1\", \"2.5\")."
},
"unit_code": {
"type": "string",
"description": "unit | hour | day | month | item"
},
"unit_price": {
"type": [
"string",
"number"
],
"description": "Alternative: price per unit in major units (\"1250.50\")."
},
"description": {
"type": "string",
"maxLength": 500
},
"tax_percent": {
"type": [
"string",
"number"
],
"description": "Alternative: tax rate in percent (18)."
},
"tax_rate_bp": {
"type": "integer",
"maximum": 10000,
"minimum": 0,
"description": "Tax rate in basis points: 18% = 1800."
},
"discount_minor": {
"type": "integer",
"minimum": 0
},
"unit_price_minor": {
"type": "integer",
"minimum": 0,
"description": "Price per unit in minor units (cents, paise)."
}
}
},
"maxItems": 100,
"description": "The items or services, 1 to 100 lines."
},
"notes": {
"type": "string",
"maxLength": 2000,
"description": "Shown on the document, for example a thank-you or a delivery note."
},
"terms": {
"type": "string",
"maxLength": 2000,
"description": "Payment terms and bank details; for a quote, validity and delivery terms."
},
"reason": {
"type": "string",
"description": "Credit notes: refund, product_return, discount, price_correction, defect, cancellation, tax_correction, other, or the reason in your own words."
},
"seller": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"email": {
"type": "string",
"maxLength": 200
},
"tax_id": {
"type": "string",
"maxLength": 60,
"description": "GSTIN (India), VAT number (UK/EU), EIN (US), ABN, TRN..."
},
"address": {
"type": "string",
"maxLength": 600,
"description": "New lines as \\n."
},
"state_code": {
"type": "string",
"description": "India: two-digit GST state code or the state name."
},
"country_code": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Buyer only; the seller's country is the document's country_code."
}
},
"description": "Your business (who issues the document; for a receipt, who received the money)."
},
"currency": {
"enum": [
"USD",
"EUR",
"GBP",
"INR",
"AED",
"SGD",
"AUD",
"CAD",
"MXN",
"BRL"
],
"type": "string",
"description": "ISO 4217 code. If missing: the seller country's currency."
},
"due_date": {
"type": [
"string",
"null"
],
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Due date; for a quote, valid until."
},
"issue_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD. Default: today."
},
"export_type": {
"enum": [
"none",
"lut",
"with_payment"
],
"type": "string",
"description": "India, buyer abroad."
},
"reason_note": {
"type": "string",
"maxLength": 500
},
"country_code": {
"enum": [
"US",
"GB",
"DE",
"FR",
"NL",
"IE",
"AE",
"SG",
"AU",
"CA",
"IN",
"ES",
"IT",
"BE",
"AT",
"PT",
"FI",
"MX",
"BR"
],
"type": "string",
"description": "The seller's country: decides currency, formats and tax rules. If missing: the currency's country (INR -> IN, GBP -> GB …; EUR -> DE unless the caller is in a euro country), else the caller's country."
},
"place_of_supply": {
"type": "string",
"description": "India: GST state code, or 96 for another country."
},
"original_invoice_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"original_invoice_number": {
"type": "string",
"maxLength": 40,
"description": "Credit notes: the invoice it corrects."
}
},
"description": "A document to prefill. Parts that fail validation are left out and listed in `ignored`; nothing is ever rendered as HTML."
},
"page": {
"type": "string",
"description": "The page to open: a slug (\"credit-note\", \"gst-invoice-format\") or its URL. Default: the generator for the document type and country."
}
}
}Searches HSN codes (goods) and SAC codes (services) by product or service words or by code digits, with the official description, the chapter and heading it sits under, and the GST rate where it has been checked against the rate notification (otherwise rate_percent is null: check the notification). Returns the dataset scope with every answer. India only.
| Argument | Type | Description |
|---|---|---|
| type | string | Goods (hsn), services (sac) or both (default). |
| limit | number | string | At most 25; default 10. |
| query* | string | Words (e.g. "laptop", "legal services") or 2 to 8 digits of a code. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"type": {
"enum": [
"all",
"hsn",
"sac"
],
"type": "string",
"description": "Goods (hsn), services (sac) or both (default)."
},
"limit": {
"type": [
"number",
"string"
],
"description": "At most 25; default 10."
},
"query": {
"type": "string",
"description": "Words (e.g. \"laptop\", \"legal services\") or 2 to 8 digits of a code."
}
}
}Returns what to collect before creating a document of a given type and country: required, recommended and optional fields, the tax ID and tax names, the country's invoicing rules (for example India GST rule 46, UK VAT invoice contents), the CGST/SGST versus IGST split and state codes for India, and credit-note reasons. Read-only.
| Argument | Type | Description |
|---|---|---|
| country* | string | ISO alpha-2 of the seller, e.g. IN, US, GB, DE. |
| document_type* | string | The kind of document. |
{
"type": "object",
"required": [
"document_type",
"country"
],
"properties": {
"country": {
"type": "string",
"description": "ISO alpha-2 of the seller, e.g. IN, US, GB, DE."
},
"document_type": {
"enum": [
"invoice",
"quote",
"proforma",
"credit_note",
"receipt"
],
"type": "string",
"description": "The kind of document."
}
}
}Lists the document pages on luckpanda.app (generators for invoices, quotes, proforma invoices, receipts and credit notes, plus country and trade templates) and its calculator pages, each with its URL. Optional filters: document_type, country, query. Read-only.
| Argument | Type | Description |
|---|---|---|
| query | string | Words to look for in a page's name or summary, e.g. "freelance" or "GST". |
| country | string | ISO alpha-2: pages for this country plus the ones for any country. |
| document_type | string | The kind of document. |
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Words to look for in a page's name or summary, e.g. \"freelance\" or \"GST\"."
},
"country": {
"type": "string",
"description": "ISO alpha-2: pages for this country plus the ones for any country."
},
"document_type": {
"enum": [
"invoice",
"quote",
"proforma",
"credit_note",
"receipt"
],
"type": "string",
"description": "The kind of document."
}
}
}