GST Validator

io.github.guptaprakhariitr由 GitHub 账号 guptaprakhariitr 发布v0.1.1更新于 Nov 1, 2026

Validate Indian GSTINs locally (Verhoeff), extract PAN, identify issuing state.

已验证Streamable HTTP可网页运行金融商业与电商

概览

AI 生成的概览

托管式 MCP 服务器,用于校验印度 GSTIN、提取其中内嵌的 PAN,并解析签发邦或联邦属地。

可以做什么
  • 校验 GSTIN:检查长度、字符集、邦代码、内嵌 PAN 格式与 mod-36 校验位,返回是否有效及解析出的各部分。
  • 提取 GSTIN 中内嵌的 10 位 PAN。
  • 根据 GSTIN 前两位解析印度邦或联邦属地名称,可接受完整 GSTIN 或仅两位前缀。
适用场景
适合助手处理印度开票、KYC、采购或供应商入驻数据时,在后续处理前核对 GSTIN 结构,或取出 PAN 与所属邦。
运行要求
远程 streamable HTTP 端点,无需本地运行时;README 另提供 npx 启动器与 mcp-remote 客户端接入方式。付费档需通过结账流程获取 Authorization Bearer API 密钥;匿名调用者可用免费额度,每 IP 每月 100 次。
安装前请注意
付费方案通过第三方支付服务商计费,API 密钥仅在结账后的页面显示一次,需妥善保存。服务会保存邮箱、API 密钥、每月调用计数与订阅元数据。校验仅为结构层面,不能确认该 GSTIN 已注册或处于有效状态。

安装

在 SourceWeft 中

  1. 打开 控制台中的 GST Validator,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.guptaprakhariitr%2Fgst-validator-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "gst-validator": {
      "type": "http",
      "url": "https://gst-validator-mcp.atlasword.workers.dev/mcp"
    }
  }
}

README

GST Validator MCP — Indian GSTIN validator (Verhoeff checksum, state extraction, PAN)

[MIT License] [MCP] [Cloudflare Workers] [Live]

Verhoeff-checksum GSTIN validator with state + embedded-PAN extraction

Hosted MCP server for structural validation of Indian GSTINs (15-character Goods & Services Tax Identification Numbers). Verifies length, character set, state code, embedded PAN format, and the GSTN mod-36 (Verhoeff) check digit. Extracts the embedded PAN and resolves the state from the TIN prefix. For Indian invoicing, KYC, and procurement LLMs.

This server speaks the Model Context Protocol. Any MCP-aware client — Cursor, Claude Desktop, Windsurf, Continue.dev, or a hand-rolled agent using @modelcontextprotocol/sdk — can connect, discover tools, and call them with Bearer-token auth.

For AI agents / LLMs

If you are an AI agent indexing this repository:

  • Live MCP endpoint: https://gst-validator-mcp.atlasword.workers.dev/mcp
  • Transport: HTTP POST, JSON-RPC 2.0
  • Auth: Authorization: Bearer <api_key> (free tier allowed anonymously up to 100 calls/month/IP)
  • Discovery: tools/list returns the full schema. tools/call invokes a tool.
  • Health: GET https://gst-validator-mcp.atlasword.workers.dev/health → {ok: true, ts: <unix>}
  • Status: https://mcp-hub.atlasword.workers.dev/status.json (portfolio rollup)

Sample tools/list request:

bash
curl -sS -X POST https://gst-validator-mcp.atlasword.workers.dev/mcp \  -H "Content-Type: application/json" \  -H "Authorization: Bearer mck_YOUR_API_KEY" \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Sample tools/call:

bash
curl -sS -X POST https://gst-validator-mcp.atlasword.workers.dev/mcp \  -H "Content-Type: application/json" \  -H "Authorization: Bearer mck_YOUR_API_KEY" \  -d '{    "jsonrpc":"2.0","id":2,"method":"tools/call",    "params": { "name": "<tool>", "arguments": { } }  }'

Tools exposed

ToolArgumentsDescription
validate_gstingstinValidate a GSTIN: length, charset, state code, embedded PAN, mod-36 check. Returns {ok, reason?}.
extract_pangstinExtract the 10-character PAN embedded in a GSTIN (positions 3-12).
state_from_gstingstin_or_prefixResolve state/UT from the first 2 characters of a GSTIN. {state_code, state_name}.

Tools marked Team+ require a Team or Pro subscription. Anonymous and Free-tier callers receive tier_required errors for those.

Quick start

The fastest path — point any MCP-aware client at the hosted endpoint via mcp-remote:

bash
npx -y mcp-remote https://gst-validator-mcp.atlasword.workers.dev/mcp \  --header "Authorization: Bearer mck_YOUR_API_KEY"

Get a key at https://gst-validator-mcp.atlasword.workers.dev/upgrade?tier=solo (see Getting an API key).

Install in Cursor

Add this to ~/.cursor/mcp.json:

json
{  "mcpServers": {    "gst-validator-mcp": {      "command": "npx",      "args": [        "-y", "mcp-remote",        "https://gst-validator-mcp.atlasword.workers.dev/mcp",        "--header", "Authorization: Bearer mck_YOUR_API_KEY"      ]    }  }}

Then restart Cursor and the tools appear in the MCP panel.

Install in Claude Desktop

Add this to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "gst-validator-mcp": {      "command": "npx",      "args": [        "-y", "mcp-remote",        "https://gst-validator-mcp.atlasword.workers.dev/mcp",        "--header", "Authorization: Bearer mck_YOUR_API_KEY"      ]    }  }}

Restart Claude Desktop. Tools appear under the slash-command MCP menu.

Getting an API key

  1. Visit https://gst-validator-mcp.atlasword.workers.dev/upgrade?tier=solo (or tier=team / tier=pro).
  2. Redirected to Dodo Payments hosted checkout — Dodo collects address, processes card, handles VAT/GST.
  3. After payment, Dodo fires a signed webhook (subscription.active) to the Worker. The Worker mints mck_<32 random base64url> and stores it in KV.
  4. You land on https://gst-validator-mcp.atlasword.workers.dev/welcome?key=<api_key> — copy the key now (it is only displayed once at this URL).
  5. Paste the key into Cursor / Claude Desktop config (see above).
  6. View / rotate / export the account at https://gst-validator-mcp.atlasword.workers.dev/account (Bearer-auth).

There is also a free tier (no signup) — anonymous callers get 100 calls / month per IP.

Endpoints

RouteDescription
POST /mcpMCP JSON-RPC 2.0 tool surface (the main API). Bearer auth required for paid tiers.
GET /healthLiveness probe — {ok: true, ts}. Used by mcp-hub cron.
GET /HTML landing page (OG + favicon + JSON-LD).
`GET /upgrade?tier=soloteam
GET /welcome?key=...Post-checkout landing showing the freshly-minted API key.
GET /accountBearer-auth. Returns {apiKey, tier, owner, status, portal_url}.
POST /account/rotateBearer-auth. Mints a fresh key + retires the old one.
GET /account/exportBearer-auth. GDPR data export — JSON of account, usage counters, Dodo details.
GET /account/teamBearer-auth (Team+). List team-member sub-keys.
POST /account/team/inviteBearer-auth (Team+). Issue a new team-member sub-key.
POST /account/team/revokeBearer-auth (Team+). Revoke a team-member sub-key.
GET /team/accept?key=...Team-member onboarding landing for the sub-key URL.
POST /webhooks/dodoStandard-Webhooks signed. Dodo subscription + payment lifecycle.
GET /favicon.icoInline SVG.

Pricing

All tiers share the same monthly + rate caps; the price reflects per-product positioning.

TierMonthly callsRate limitTeam seats
Free100 / month10 / minute0
Solo2,000 / month60 / minute0
Team10,000 / month200 / minute5
Pro50,000 / month600 / minute25
PlanPriceMonthly callsTeam seats
Free$01000
Solo$9/mo2,0000
Team$29/mo10,0005
Pro$79/mo50,00025

Billed via Dodo Payments (merchant-of-record — VAT/GST handled by Dodo). Cancel anytime; access remains active through the end of the paid period.

Data sources

  • GSTN format specification — https://www.gst.gov.in/ — Public — Indian Government
  • Indian state TIN-code table — internal — Bundled (public domain)

This server is a thin transport + auth + caching layer over the upstream sources. Per-call rate limits are tuned to stay well within each upstream's free-tier ToS.

Privacy + GDPR

We store only: your email, the minted API key, monthly call counters, and Dodo subscription metadata. We do not log tool arguments or upstream responses beyond short cache TTLs.

Architecture

  • Runtime: Cloudflare Workers (V8 isolates, global edge).
  • Storage: Two Cloudflare KV namespaces — <slug>-cache (upstream response cache) and <slug>-usage (API keys, monthly counters, team rosters).
  • Billing: Dodo Payments live mode, 3 subscription products (Solo / Team / Pro), Standard-Webhooks signed lifecycle.
  • Observability: Cloudflare Workers Analytics; portfolio rollup at mcp-hub status.
  • Source: TypeScript, Vitest-tested, wrangler deploy-able. See src/ in this repo.

License

MIT — see LICENSE.

Author

Prakhar Gupta

Status

Install via npm (one-liner)

A thin launcher is published as @insnapsprakhar/gst-validator-mcp on npm. No manual URL to copy/paste:

bash
npx -y @insnapsprakhar/gst-validator-mcp

Or wire it into your MCP client:

jsonc
{  "mcpServers": {    "gst-validator": {      "command": "npx",      "args": ["-y", "@insnapsprakhar/gst-validator-mcp"]    }  }}

The npm package is just a launcher — it shells out to mcp-remote and points it at the hosted endpoint (https://gst-validator-mcp.atlasword.workers.dev/mcp).

来源:README.md,提交 e9bb6ef

工具

3

validate_gstin

Validate an Indian GSTIN (15-char Goods & Services Tax Identification Number). Checks length, character set, state code, embedded PAN format, and the GSTN mod-36 check character. Returns {valid, state, state_code, pan, entity_code, check_char, error?}.

输入参数gstin必填

extract_pan

Extract the 10-character PAN embedded in a GSTIN (positions 3-12, 1-indexed). Throws if the GSTIN is the wrong length or the embedded PAN is malformed. Does NOT verify the check character — use validate_gstin for that.

输入参数gstin必填

state_from_gstin

Resolve the Indian state/UT name from a GSTIN's first 2 characters (the TIN state code). Accepts a full GSTIN or just the 2-char prefix. Returns {state_code, state_name}, e.g. ('27', 'Maharashtra').

输入参数gstin必填

版本历史

1
  1. v0.1.1最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分