Model Context Protocol · Live endpoint
Government records
for AI Agents
HeyGov gives your assistant one MCP endpoint for EPFO, Parivahan, Income Tax and DigiLocker. Reads happen in chat — writes happen in HeyGov.
> Using heygov, please login
↗ open heygov…/mcp/authorize — pick a profile (demo / demo), tap Allow
✓ Signed in as anjali-sharma · session_token: eyJjaWQiOi…
$ get_parivahan + consent:true
Challan · ₹500unpaid
Connaught Place · overspeeding · pay in HeyGov ↓
open_url: heygov…/?citizen=anjali-sharma&prompt=Pay%20my%20challan
Reads here · writes in HeyGov — money never moves on a chatbot sentence.
What this MCP is
Eleven tools over one data layer. Zero writes over MCP.
Every tool reuses the same getters and card builders as the chat, so MCP answers can never drift from what the site shows. Each answer returns data plus an open_url deep link — the citizen confirms Pay / File / Renew in HeyGov, behind the normal login + consent gates.
begin_login
Opens /mcp/authorize in a browser — pick a demo profile, tap Allow, get a grant code. Never type a password in chat.
exchange_code
Swaps the browser grant code for the session_token every data tool needs (expires in 10 min).
login
Headless fallback for curl/Inspector testing only — never call it with a human present.
list_citizens
The 4 demo citizens, no sign-in needed — so clients can discover who to log in as.
get_epfo
UAN, employer, PF balance and contributions — same numbers the chat shows.
get_parivahan
Driving licence + vehicle + unpaid challans, with an open_url to pay in HeyGov.
get_digilocker
Aadhaar (masked), PAN if issued, DL and other docs — or one document_type.
compare_tax_regime
Old vs new regime on the citizen's own income (FY 2025-26 slabs, 4% cess).
get_income_tax
Pre-filled ITR summary. Filing itself happens in HeyGov — this tool never files.
get_attention
What needs action now (expired DL, challan, belated fee). Urgent first, max 3.
prefill_dl_renewal
Pre-filled DL renewal form + fee. The citizen confirms it in HeyGov.
Install in 60 seconds
Paste one prompt. Done.
Copy the install prompt
The big blue button above (or below). Paste it into Codex, Cursor, Claude or ZCode — the agent registers the endpoint in your MCP config and stops at the restart.
Restart, then just talk
Fully quit and reopen the app, start a new chat, and say: call the heygov MCP tool begin_login (not the HeyGen plugin). No second prompt — the heygov tools are in that chat and their descriptions guide the browser login. Anjali by default — she has the ₹500 challan, so demos read as working, not empty.
Ask with consent
Every read passes consent:true — the machine version of the Allow button. Answers link back into HeyGov for anything that moves money.
[mcp_servers.heygov] url = "https://heygov-build-india.netlify.app/api/mcp"
How it works
Reads in chat. Writes in HeyGov.
Same login, same consent
Deep links route through the normal LoginModal popup and the Account Aggregator Allow / Deny gate. A token scoped to Anjali can never read Ramesh.
Consent travels as an arg
Data tools require consent:true — explicit, per call, auditable. Missing consent fails cleanly instead of guessing.
Honest by construction
Mock data is labelled simulated in every answer. Tax slabs are real FY 2025-26 math; everything else says what it is.
GET https://heygov-build-india.netlify.app/api/mcp → 11 tool names · no key needed · browser test in 10 seconds