itr-mcp
The itr-agent server is a local-first Indian income tax (ITR) filing assistant that computes taxes, parses documents, and guides you through filing — entirely on your machine without uploading data anywhere.
Core Capabilities:
Tax Computation — Calculate full Indian income tax under the new or old regime, including slabs, standard deduction, 87A rebate with marginal relief, 111A/112A capital gains rates, surcharge (15% cap), and 4% cess.
Regime Comparison — Compare old vs. new tax regimes side by side for the same income, with a recommended regime and savings amount.
ITR Form Recommendation — Determine the correct ITR form (ITR-1/2/3/4) based on income heads, residency, losses, and disqualifiers (e.g., foreign assets, director status, brought-forward losses).
Filing Checklist — Step-by-step, form-specific walkthrough for filing on incometax.gov.in, covering documents, reconciliation, portal steps, and e-verification.
Advance Tax Planning — Schedule installments (Jun/Sep/Dec/Mar at 15/45/75/100%) based on estimated liability and TDS, with shortfall tracking.
Interest Computation (234A/B/C) — Calculate interest for advance tax shortfalls with Rule 119A rounding and statutory safe harbors.
HRA / 80GG Calculation — Compute HRA exemption under Rule 2A (period-wise, metro/non-metro) or the 80GG alternative.
Deduction Checklist — List old-regime deductions with statutory caps (80C, 80CCD(1B), 80D, HRA, etc.).
Parse Form 26AS — Extract structured TDS entries from the caret-delimited TRACES text export.
Parse AIS — Decrypt and parse the Annual Information Statement JSON export on-device using AES-256-CBC/PBKDF2 derived from PAN + DOB.
Reconcile Documents — Cross-check Form 16 vs. AIS vs. Form 26AS for mismatches (TDS over-claims, missing employers, undeclared interest/dividends) to pre-empt tax notices.
Supported Tax Years — Query supported fiscal years and their filing deadlines.
Provides tools for parsing Zerodha tax P&L statements to aggregate capital gains (planned for v0.3).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@itr-mcpCompare old and new regime for a salary of 12 lakhs."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
itr-agent
Local-first ITR filing agent for Indian income tax. Claude interviews you one question at a time, picks your ITR form, computes your tax deterministically on your machine, reconciles your documents, and walks you to the portal's submit button -- no accounts, no uploads, no cloud.
Works with Claude Desktop, Claude Code, and any MCP client. Formerly published as itr-mcp.
You: Help me file my ITR.
Claude: [file_my_itr] One question at a time. First: were you a resident of India
for all of FY 2025-26?
You: Yes, salaried, and I have vested US RSUs from my employer.
Claude: [recommend_itr_form] Foreign assets (Schedule FA) rule out ITR-1: you file
ITR-2, due 2026-07-31. Next: how many employers this year?Why
Every Indian tax tool wants your data on their servers. itr-agent flips it: your documents stay local, the LLM never does arithmetic, and every number comes from a versioned rule pack you can audit. The agent layer drives the interview; the deterministic engine does the math.
What it will never do: submit the return for you. India has no public filing API -- returns are filed by you on incometax.gov.in (or by an authorized ERI/CA). The agent takes you to that button with every number verified; you press it.
Related MCP server: mcp-india-stack
The agent
file_my_itr (MCP prompt) runs the guided interview:
Residency, age band -- one question at a time
Income heads: salary, house property, capital gains, business/F&O, other sources
Disqualifier sweep: foreign RSUs/ESPP, director role, unlisted shares, ESOP deferral
Losses, current and brought-forward (they change the form)
recommend_itr_form-> the form, with rule-by-rule reasoningcompare_regimes-> the regime, with real numbersparse_ais/parse_form26as/reconcile_documents-> fix mismatches BEFORE filingschedule_advance_tax/compute_interest_234if applicablefiling_checklist-> schedule-by-schedule portal walkthrough, ending at e-verification
Tools (v0.3)
Tool | What it does |
| ITR-1/2/3/4 selection with rule-by-rule reasoning and loss-continuity awareness: brought-forward business losses force ITR-3 even with zero current-year business income (Schedule CFL) |
| Ordered, form-specific walkthrough: documents, reconciliation, computation, portal steps schedule by schedule, e-verification |
| Full FY 2025-26 (AY 2026-27) computation: new/old regime slabs (incl. the senior and super-senior slab sets), standard deduction, 87A rebate (new regime: Rs 60,000 up to Rs 12L with marginal relief, never offsetting 111A/112A tax; old regime: Rs 12,500 on total income up to Rs 5L, no marginal relief, offsets 111A), 111A (20%) / 112A (12.5% above 1.25L) capital gains with the unexhausted-basic-exemption set-off, surcharge with the 15% gains cap and its own marginal relief, 4% cess, s.288A/288B rounding |
| Old vs new side by side, recommended regime, savings amount |
| Jun/Sep/Dec/Mar installment plan (15/45/75/100%) with shortfall tracking |
| Sections 234A/234B/234C interest with the statutory 12%/36% safe harbors, the s.234B(2) self-assessment payment ladder, and Rule 119A rounding (principal floored to Rs 100, part month = full month). Reports which sections it skipped and why |
| HRA exemption per Rule 2A, period-wise (least of three limbs; FY 2025-26 metros: Delhi/Mumbai/Kolkata/Chennai) + the 80GG alternative, with its Rs 5,000-per-month cap and the bars under the new regime and alongside HRA |
| Old-regime deduction checklist with statutory caps (80C, 80CCD(1B), 80D tiers, HRA metros) |
| Parse the caret-delimited Form 26AS Text export from TRACES into structured TDS entries |
| Decrypt + parse the AIS JSON export on-device (AES-256-CBC/PBKDF2 with the password derived from PAN + DOB); normalized rows with label-matched amounts/dates/codes |
| Form 16 vs AIS vs 26AS mismatch report -- the checks that pre-empt 143(1)(a) intimations and 139(9) defect notices (TDS over-claim, missing employer, undeclared AIS interest/dividend) |
| Supported fiscal years + AY 2026-27 filing deadlines |
All tools are read-only (readOnlyHint: true), take zod-validated inputs, and return structuredContent alongside the human-readable text.
Install
Claude Code
claude mcp add itr-agent -- npx -y itr-agentClaude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"itr-agent": {
"command": "npx",
"args": ["-y", "itr-agent"]
}
}
}From source
git clone https://github.com/Sagargupta16/itr-agent
cd itr-agent && pnpm install && pnpm build
node dist/index.js # stdio serverMigrating from itr-mcp
Same server, new name. Replace itr-mcp with itr-agent in your MCP config; the itr-mcp npm package is deprecated and frozen at v0.2.0.
Example prompts
"Help me file my ITR." (starts the guided interview)
"I'm salaried with US RSUs and 2L of equity LTCG -- which ITR form am I supposed to file?"
"My CTC is 18L with 50K NPS through my employer -- which regime should I pick for FY 2025-26?"
"My estimated tax is 2.4L and TDS covers 1.8L. Plan my advance tax installments."
"Parse
C:/tax/26AS.txtand total the TDS my employer deposited."
Scope and limitations
Honest boundaries, so you know before you rely on it:
Resident individuals, FY 2025-26 (AY 2026-27). NRI/RNOR computation differs (the form recommendation accounts for residency, the tax engine assumes resident).
No filing. There is no public API to submit an ITR; only you or an authorized ERI can file. The agent prepares and verifies everything, then hands over.
You supply the income figures.
compute_taxcomputes tax on the heads you give it: salary, other income, 111A STCG, 112A LTCG, and old-regime deductions as a single total. It does not itself compute house property (30% standard deduction, 24(b) interest), other capital-gains heads (112 debt/property, 115BBH crypto, slab-rate debt MF under 50AA), or business P&L -- work those out separately, or withlist_deductionsfor the Chapter VI-A caps, and pass the totals in.Not yet modeled: house property and business P&L computation (a
presumptiveflag exists, but only to pick the single-installment 234C schedule and to steer the form recommendation -- 44AD/44ADA income itself is not computed), crypto/VDA (115BBH), non-equity capital gains, loss set-off arithmetic (#4), Schedule FA valuation (#5), Form 16 PDF parsing (reconcile_documentstakes Form 16 figures as input, it does not read the PDF), broker capital-gains statements (#7).Transaction-date rules not yet split. The engine applies FY 2025-26 rates uniformly; the 23-Jul-2024 capital-gains rate flip and the 1-Oct-2024 buyback change matter for FY 2024-25 returns, which this pack does not cover.
The encrypted AIS file is not a safe place to store your data. Its password is your PAN plus your date of birth, stretched with only 1,000 PBKDF2-SHA256 iterations. Once someone knows your PAN, every plausible DOB can be tried in about 4 seconds single-threaded (measured on a laptop: 0.11 ms per key derivation over a ~36,600-date space). That is the portal's scheme, not this tool's choice, and nothing here can strengthen it -- treat a downloaded AIS export as effectively unencrypted and delete it when you are done.
parse_aisdecryption is unproven on a live export. The AIS password scheme is reverse-engineered from open-source utilities and verified against this repo's synthetic round-trip, never against a file the portal actually produced. If it fails, the error tells you to passpasswordexplicitly or use the portal's CSV export, and an issue report with your download date helps fix it. Every other tool is unaffected.Not tax advice. Complex cases belong with a CA. Every output says so.
Design principles
Local-only. stdio transport, no network calls, no telemetry, no accounts. Your documents are read from disk by this process and never uploaded anywhere. AIS decryption happens entirely on-device with Node's crypto -- the reverse-engineered password scheme has un-peppered fallbacks and an explicit
passwordoverride in case the format rotates.What your MCP client still sees. Parsed output is returned to whatever client you connected, so if that client is a hosted LLM, the parsed contents reach that provider like any other message. PAN is masked in the human-readable text mirror, but the
structuredContentpayload carries the full parsed document (PAN, TANs, deductor names, amounts) because downstream tools need it. Local-only describes this server, not your whole stack -- for maximum privacy, run it against a local model.The LLM never does math. Every rupee is computed by pure functions over
data/fy2025-26.json. 109 tests pin the engine to published worked examples and to statute: the 12L zero-tax case, the 12,10,000 marginal-relief case, the 12,70,588 relief exhaustion point on both sides, the surcharge bands with the First Schedule exclusion of capital-gains income, all three old-regime age bands, and the 234A/234B/234C/HRA/80GG golden cases.The agent drives, the engine decides. The interview sequencing is a prompt; every number and every form rule is deterministic code. Nothing is estimated.
Year-parameterized. Rules live in per-FY JSON packs. FY 2026-27 (Budget 2026: Form 16 renamed to Form 130, 8 HRA metros, buyback reversion) lands as a new pack, not code changes.
Not tax advice. Every tool that computes a rupee figure returns a
disclaimersarray and the fiscal year it applied;compute_tax,compute_hraandlist_tax_yearsalso return the exactrulePackVersion. Verify against the official utility before filing.
Roadmap
v0.1 -- tax engine (both regimes + CG + surcharge + cess), regime comparison, advance tax, deduction checklist, 26AS text parser
v0.2 --
parse_ais(encrypted AIS JSON, on-device decrypt),reconcile_documents(the #1-notice-trigger checks), 234B/234C interest with golden-case tests, HRA + 80GG calculators, old-regime 87A semantics fixv0.3 -- renamed to itr-agent;
recommend_itr_formwith loss-continuity awareness (#3),filing_checklist, thefile_my_itrguided interview promptv0.4 (priorities validated against a real AY 2026-27 filing) --
compute_loss_setoff(BFLA/CFL engine, #4),parse_form16(TRACES PDF), broker capital-gains parsers -- Groww first, then Zerodha (#7)v0.5 --
compute_schedule_fa(foreign assets/RSU, Rule 115 rates, #5), portal quirks playbook (#6), mutual fund CAS via casparser, draft ITR JSON export,.mcpbone-click Claude Desktop bundle, MCP registry listing
Development
pnpm install
pnpm test # vitest: engine golden files + in-memory MCP client tests
pnpm build
pnpm inspect # MCP inspector against dist/index.jsDisclaimer
itr-agent is an open-source calculator, document parser, and filing guide. It is not a substitute for professional tax advice, and it never files anything -- output is meant to be verified against the official income tax utility, and the return is always submitted by you on the portal.
License
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sagargupta16/itr-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server