Nityaflow GST credit match
Server Details
India GST credit check: matches GSTR-2B with the purchase register and signs a receipt.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool has a distinct job: one checks a proposed payment against a mandate, one reconciles GSTR-2B invoices against a purchase register, and one verifies a signed receipt. The only mild friction is that agent_payment_check is a payment-authorization tool sitting in a server framed around GST credit matching, so an agent may briefly wonder whether it belongs here. Within the tools themselves, no boundary overlap exists.
All three names use snake_case, which is good, but the patterns are mixed: gst_credit_match and agent_payment_check are <domain>_<action>, while verify_receipt is <verb>_<object>. The styles remain readable, but an agent cannot infer the naming rule from one tool to the next.
Three tools is lean but defensible for a deliberately narrow, advisory-only service that never files, pays, or stores invoices. Nothing is bloated, though the surface is on the thin side and agent_payment_check feels like it belongs to a separate server rather than this GST-focused one.
The core workflow (run the reconciliation, then verify the resulting receipt) is covered end to end, consistent with the stated limits of never filing or paying. However, there is no way to retrieve or list previously issued receipts, no drill-down on individual invoice classifications, and no tooling at all around the payment-mandate side beyond the single check call, leaving some dead ends.
Available Tools
3 toolsagent_payment_checkCheck an AI agent's payment against the mandate and the instructionARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The payment the agent proposes: {merchant, vpa, lines: [{name, qty, unit, price}], fees, total}. | |
| intent | Yes | What the person asked for: {text, items: [{name, qty, unit}], budget, merchant}. Units: kg, g, l, ml, pc, pack, dozen. | |
| history | No | Earlier payments under this mandate: [{at, total, vpa, status: paid}]. Used for the period limit and repeat check. | |
| mandate | Yes | 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}. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only and idempotent annotations, the description discloses concrete behavior: it recomputes totals from cart lines, flags lookalike payees, extra items, quantity issues, limit violations, and repeat payments, and returns every check plus a signed receipt. It also explicitly says the tool never pays, holds, or moves money.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and usage context, then moves through checks, outputs, and the no-money-movement boundary. Every sentence carries useful information, and there is no redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description explains that the tool returns every check and a signed receipt. For a nested-object, read-only verification tool, the combination of annotations, rich schema descriptions, and description-level behavioral detail is complete enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the nested objects for mandate, intent, action, and history are already well documented. The prose adds useful context about what is checked, but it does not add much parameter-level syntax or meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: checking a proposed AI-agent payment against a mandate and intent. It clearly distinguishes the tool from money-moving operations by saying it never pays, holds, or moves money, and it is understandable independently of its siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the usage context: 'Before an AI agent pays.' It also sets a strong capability boundary by explaining that a licensed bank or payment app moves money after human approval. It does not explicitly compare against sibling tools such as verify_receipt, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gst_credit_matchMatch GSTR-2B with the purchase registerARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| books | Yes | 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 | No | Client or business name, for the receipt. | |
| gstr2b | Yes | 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 | No | Return period, for example 2026-09. | |
| tolerance | No | Allowed difference in rupees before amounts count as different. Default 1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations: invoices are processed in memory and not stored, a separate checker re-derives totals, and a signed receipt is produced. It also states explicitly what the tool will not do (no portal filing), which is exactly the reassurance an agent needs before handling client financial data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose in the first sentence, then the outcome taxonomy, then privacy and safety caveats. The six-category enumeration is long but each item carries decision-relevant information; only the receipt-signing detail is slightly peripheral.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers inputs, output categories, data handling and safety limits despite having no output schema. A minor gap: it mentions a signed receipt but not whether verify_receipt is the intended follow-up, leaving the sibling relationship unexploited.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it enumerates concrete source systems (Tally, Zoho Books, Busy, QuickBooks, any list) for the books and clarifies the GSTR-2B input can be either a portal JSON download or a plain list. It does not repeat tolerance or period, which the schema already handles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource: matches GSTR-2B supplier invoices against the purchase register from the books. The category taxonomy (matched, mismatch, duplicate, possible match, at risk, missing) makes the operation unambiguous and clearly distinct from the sibling verification tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Establishes clear context: an India GST input tax credit reconciliation for a given return period, with accepted books sources named. It also sets a firm boundary ('never files or accepts anything on the GST portal'), but never explicitly contrasts with agent_payment_check or verify_receipt.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_receiptVerify a Nityaflow receiptARead-onlyInspect
Checks that a Nityaflow receipt (from gst_credit_match or a Nityaflow workflow) was not changed and was signed by Nityaflow.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt | Yes | The receipt object, exactly as it was given. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful context on what verification actually means (tamper detection plus signature check), but does not say what happens on a failed verification, whether it throws or returns a status, or whether any network/registry lookup is involved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the verb and the object, with every clause contributing (integrity check, signature check, provenance of the receipt). Nothing is repeated or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only tool with full schema coverage and clear annotations, this is nearly sufficient. The remaining gap is the absence of an output schema combined with no description of the return shape (boolean vs. structured validity result with reason), which an agent calling it would want to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter with 100% schema coverage, so the schema already carries the semantics; the description only reinforces with 'exactly as it was given.' It does add a small amount by naming the acceptable receipt origins (gst_credit_match or a Nityaflow workflow), but gives no structural hints for the nested object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (verify/check) plus the resource (a Nityaflow receipt) and names both properties being checked: integrity ('was not changed') and authenticity ('signed by Nityaflow'). It also anchors the tool to its provenance ('from gst_credit_match or a Nityaflow workflow'), which implicitly separates it from the siblings that produce receipts, though it never explicitly contrasts itself with agent_payment_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the agent can infer it should call this after receiving a receipt from gst_credit_match, and the phrase 'exactly as it was given' hints that the object must be passed unmodified. There is no explicit when-to-use/when-not-to-use guidance and no naming of alternatives for validation scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
agent_payment_check - First observed
gst_credit_match - First observed
verify_receipt
Related MCP Connectors
Build WhatsApp, Sheets and Gmail automations for Indian businesses; check GST credit.
51Prepare Indian GST refund records, validate entries and generate Statement 3 and Annexure B JSON.
Verify a business before an agent pays, signs or buys: registry-cited decision and signed receipt.
Evidence-backed UBL, PDF, and image invoice checks before approval or payment.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables India GST operations: verify GSTINs, search by PAN, track return filings, and with an OTP-based taxpayer session, access GSTR-2B/3B and cash/ITC ledgers.1310 npm2MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to manage Indian enterprise systems by providing tools for accounting (TallyPrime), invoicing (Zoho Books), and GST compliance (validation, e-invoice generation, and GSTR-2B reconciliation), with dry-run-first writes and an audit trail.Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to safely write to Tally Prime by refusing unrecognized names and verifying each voucher by reading it back from Tally.1MIT
- AlicenseNot gradedqualityDmaintenanceValidates Indian GSTIN numbers with structural checks, embedded PAN extraction, state-code lookup, and mod-36 check character validation, all via local compute.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.