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 分