India GST credit check: matches GSTR-2B with the purchase register and signs a receipt.
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.
Before an AI agent pays, checks the proposed payment against the person's mandate (who allowed it, limits per payment and per period, allowed shops and UPI IDs, end date) and against what the person actually asked for (items, quantities, budget, shop). It works the total out again from the cart lines, and flags lookalike payees, extra items, too much quantity, going over a limit and repeat payments. Returns every check and a receipt signed by Nityaflow. It never pays, holds or moves money: a licensed bank or payment app does that, only after a person approves.
The payment the agent proposes: {merchant, vpa, lines: [{name, qty, unit, price}], fees, total}.
What the person asked for: {text, items: [{name, qty, unit}], budget, merchant}. Units: kg, g, l, ml, pc, pack, dozen.
The permission: {authorised_by, purpose, per_payment, per_period, period (day, week, month or 90 days), merchants: [{name, vpa, category}], approve_above, valid_from, valid_to}.
Earlier payments under this mandate: [{at, total, vpa, status: paid}]. Used for the period limit and repeat check.
Before an AI agent pays, checks the proposed payment against the person's mandate (who allowed it, limits per payment and per period, allowed shops and UPI IDs, end date) and against what the person actually asked for (items, quantities, budget, shop). It works the total out again from the cart lines, and flags lookalike payees, extra items, too much quantity, going over a limit and repeat payments. Returns every check and a receipt signed by Nityaflow. It never pays, holds or moves money: a licensed bank or payment app does that, only after a person approves.
| Argument | Type | Description |
|---|---|---|
| action* | object | The payment the agent proposes: {merchant, vpa, lines: [{name, qty, unit, price}], fees, total}. |
| intent* | object | What the person asked for: {text, items: [{name, qty, unit}], budget, merchant}. Units: kg, g, l, ml, pc, pack, dozen. |
| history | array | Earlier payments under this mandate: [{at, total, vpa, status: paid}]. Used for the period limit and repeat check. |
| mandate* | object | The permission: {authorised_by, purpose, per_payment, per_period, period (day, week, month or 90 days), merchants: [{name, vpa, category}], approve_above, valid_from, valid_to}. |
{
"type": "object",
"required": [
"mandate",
"intent",
"action"
],
"properties": {
"action": {
"type": "object",
"description": "The payment the agent proposes: {merchant, vpa, lines: [{name, qty, unit, price}], fees, total}."
},
"intent": {
"type": "object",
"description": "What the person asked for: {text, items: [{name, qty, unit}], budget, merchant}. Units: kg, g, l, ml, pc, pack, dozen."
},
"history": {
"type": "array",
"items": {
"type": "object"
},
"description": "Earlier payments under this mandate: [{at, total, vpa, status: paid}]. Used for the period limit and repeat check."
},
"mandate": {
"type": "object",
"description": "The permission: {authorised_by, purpose, per_payment, per_period, period (day, week, month or 90 days), merchants: [{name, vpa, category}], approve_above, valid_from, valid_to}."
}
},
"additionalProperties": false
}India GST input tax credit check. Matches the supplier invoices in GSTR-2B against the purchase register from the books (Tally, Zoho Books, Busy, QuickBooks or any list) and sorts every invoice into: matched, amount mismatch, entered twice (duplicate bills), possible match (invoice number or GSTIN written differently), in books but not in GSTR-2B (credit at risk), in GSTR-2B but not in books. A separate checker re-derives the totals, and the result comes with a receipt signed by Nityaflow. Invoices are processed in memory and not stored. It never files or accepts anything on the GST portal.
| Argument | Type | Description |
|---|---|---|
| books* | array | Purchase register from the books: a list of invoices like {gstin, invoice, date, name, taxable, igst, cgst, sgst, cess, value}. Use the supplier's bill number, not the voucher number. |
| client | string | Client or business name, for the receipt. |
| gstr2b* | any | GSTR-2B: either the JSON file downloaded from the GST portal, or a list of invoices like {gstin, invoice, date, taxable, igst, cgst, sgst, cess}. |
| period | string | Return period, for example 2026-09. |
| tolerance | number | Allowed difference in rupees before amounts count as different. Default 1. |
Checks that a Nityaflow receipt (from gst_credit_match or a Nityaflow workflow) was not changed and was signed by Nityaflow.
| Argument | Type | Description |
|---|---|---|
| receipt* | object | The receipt object, exactly as it was given. |
{
"type": "object",
"required": [
"receipt"
],
"properties": {
"receipt": {
"type": "object",
"description": "The receipt object, exactly as it was given."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"gstr2b",
"books"
],
"properties": {
"books": {
"type": "array",
"items": {
"type": "object"
},
"description": "Purchase register from the books: a list of invoices like {gstin, invoice, date, name, taxable, igst, cgst, sgst, cess, value}. Use the supplier's bill number, not the voucher number."
},
"client": {
"type": "string",
"description": "Client or business name, for the receipt."
},
"gstr2b": {
"description": "GSTR-2B: either the JSON file downloaded from the GST portal, or a list of invoices like {gstin, invoice, date, taxable, igst, cgst, sgst, cess}."
},
"period": {
"type": "string",
"description": "Return period, for example 2026-09."
},
"tolerance": {
"type": "number",
"description": "Allowed difference in rupees before amounts count as different. Default 1."
}
},
"additionalProperties": false
}