Skip to main content
Glama

GSTIN/PAN/Aadhaar/IFSC check

south_asia_id
Read-onlyIdempotent

GSTIN (checksum + state), Indian PAN, Aadhaar (Verhoeff), IFSC (bank) and Nepal PAN/VAT format checks. Use to check an Indian GSTIN, PAN, Aadhaar or IFSC code, or a Nepal PAN/VAT number, before accepting it (KYC, invoices, vendor onboarding). Format and checksum only, no government registry lookup. Returns type, valid, reason and details (GSTIN state and embedded PAN, PAN holder type, IFSC bank name). Price: $0.001 per call from Exepal credit; not charged if the call fails. Includes free daily calls.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>"
    },
    "name": "south_asia_id"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesGSTIN (15), Indian PAN (10), Aadhaar (12 digits), IFSC (11) or Nepal PAN/VAT (9 digits)
typeNoForce a type; default auto-detect by shape

Output Schema

NameRequiredDescriptionDefault
typeNogstin, pan-in, aadhaar, ifsc, pan-np or unknown
inputNo
validNoFormat and checksum pass (no registry lookup)
reasonNoWhy it is invalid
detailsNoType-specific: GSTIN state, embedded PAN and checksum; PAN holder type; IFSC bank; Aadhaar masked form
normalizedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "details": {
      +      "description": "Type-specific: GSTIN state, embedded PAN and checksum; PAN holder type; IFSC bank; Aadhaar masked form",
      +      "type": "object"
      +    },
      +    "input": {
      +      "type": "string"
      +    },
      +    "normalized": {
      +      "type": "string"
      +    },
      +    "reason": {
      +      "description": "Why it is invalid",
      +      "type": "string"
      +    },
      +    "type": {
      +      "description": "gstin, pan-in, aadhaar, ifsc, pan-np or unknown",
      +      "type": "string"
      +    },
      +    "valid": {
      +      "description": "Format and checksum pass (no registry lookup)",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Added

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses that validation is format-and-checksum only with no government registry lookup (a critical limit on what 'valid' means), that failures are not charged, and that free daily calls exist. Pricing of $0.001 per call and the non-charge-on-failure policy are behavioral facts an agent cannot get from readOnlyHint/idempotentHint alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the capability list, then usage, then the no-registry caveat, then return fields, then pricing. Every sentence carries distinct information; there is no repetition of the title or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the description still previews the meaningful return fields (type, valid, reason, details including GSTIN state/embedded PAN, PAN holder type, IFSC bank name), and it discloses the cost and the registry-lookup limitation. Nothing an agent needs to decide to call this and interpret the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents both 'id' (with per-type lengths) and 'type' (force a type; default auto-detect). The description restates the supported identifier types but adds no new detail about how the optional 'type' override interacts with auto-detection. Baseline 3 applies when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific operation (format + checksum validation) over a precisely enumerated set of identifier types (GSTIN, Indian PAN, Aadhaar, IFSC, Nepal PAN/VAT), each with its algorithm in parentheses (checksum + state, Verhoeff, bank). This clearly separates it from siblings like south_asia_phone, south_asia_number, and south_asia_date, which validate different data classes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use is given: 'before accepting it (KYC, invoices, vendor onboarding)' plus the enumerated input types that select this tool. It does not name a sibling alternative or state when NOT to use it, but the domain split from the other south_asia_* validators is obvious from the type list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources