itr-mcp
Locally compute and verify Indian income-tax figures, recommend an ITR form, plan filing, and reconcile tax documents.
Compute FY 2025-26 income tax under new/old regimes, including slabs, standard deduction, 87A rebate/marginal relief, 111A/112A gains, surcharge, cess, and rounding.
Compare old vs new regimes side by side and get the recommended regime and savings.
Recommend ITR-1/2/3/4 from residency, income heads, losses, and disqualifier flags, with deadline and late-fee guidance.
Generate a form-specific filing checklist and portal walkthrough to e-verification.
Plan advance-tax installments and compute 234A/234B/234C interest.
Compute HRA exemption and 80GG alternative; list old-regime deduction caps.
Parse Form 26AS text exports and encrypted AIS JSON on-device.
Reconcile Form 16 vs AIS vs 26AS and draft-return figures to catch mismatches.
List supported fiscal years and filing deadlines.
Run the guided
file_my_itrinterview prompt for one-question-at-a-time filing help.
All tools are read-only and deterministic; the server never files the return for you.
Provides tools for parsing Zerodha tax P&L statements to aggregate capital gains (planned for v0.3).
Click on "Deploy 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-mcp Compare 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?Those are the calls Claude makes during the interview, sent to the built server by scripts/demo.mjs. Every figure in the animation is one that run printed.
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.5)
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). Knows the AY 2026-27 two-house-property allowance, the s.194N bar, and the 44AD/44ADA turnover ceilings (when you pass the turnover). Returns each deadline with its statutory citation |
| 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, employer NPS under 80CCD(2) in both regimes, house-property loss set-off (s.71(3A) cap; none under 115BAC), 87A rebate (new regime: Rs 60,000 where TOTAL income is 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 with booking status (only F is creditable; the tool reports |
| 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 against the creditable 26AS total, non-final booking status, missing employer, undeclared AIS interest/dividend) |
| Supported fiscal years + AY 2026-27 filing deadlines with their statutory citations |
All tools are read-only (readOnlyHint: true), take zod-validated inputs, and return structuredContent alongside the human-readable text.
Install
What npx installs today. The npm badge at the top is live. While it reads 0.3.0, npx -y itr-agent installs the July 2026 engine without the 0.4.0 and 0.5.0 fixes (senior slab sets, surcharge marginal relief, s.87A on total income, 26AS booking status). No publish has reached npm since then: every npm publish from publish.yml has been refused by npmjs.com, most recently for v0.5.3 on 2026-10-20. Until the badge reads 0.5.x, use the .mcpb from the v0.5.3 release (one click, below) or install from source.
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"]
}
}
}Claude Desktop, one click
From the v0.5.3 release on, every GitHub release carries itr-agent-<version>.mcpb and its .sha256. The bundle inlines the server and its dependencies into one file, so there is no npm or npx step: double-click it, or use Settings > Extensions > Install Extension in Claude Desktop. It needs Node 22 or later, like the npm package. pnpm bundle builds the same file locally into build/.
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."
Filing after the due date
The s.139(1) due date for FY 2025-26 is in deadlines (list_tax_years prints them, with the statutory basis for each in deadlineCitations). Once it has passed, the return is belated under s.139(4) and four things change. file_my_itr asks about timing before anything else, because two of them are cheaper to know up front.
The pack's deadlines.itr1_2 is 2026-07-31 (s.139(1) Explanation 2(c)). deadlines.itr3_4_nonAudit is 2026-08-31: Finance Act 2026 moved non-audit assessees with business or professional income to 31 August from AY 2026-27, and CBDT granted no further extension (checked 2026-09-10). Audit cases are later again (deadlines.audit, 31 October), and no tool ever selects it because nothing here takes a 44AB input, so recommend_itr_form and filing_checklist both report the non-audit date and both say so in notes.
You can still file, up to
deadlines.belated(2026-12-31 for AY 2026-27) or before the assessment is completed, whichever is earlier.s.234F fee: Rs 5,000, or Rs 1,000 where total income does not exceed Rs 5 lakh. Both figures come from the rule pack (
lateFee234F) and are returned byrecommend_itr_formandfiling_checklist.s.234A interest: 1% per month, or part of a month, on the tax still outstanding after TDS/TCS, advance tax and reliefs, running from the day after the due date to the date of filing. Call
compute_interest_234withmonthsLateFiling(part month = full month, Rule 119A).s.80 forfeits this year's loss carry-forward. Business, speculative and capital losses of the current year cannot be carried forward in a belated return. Set-off of losses already determined in an earlier year survives, and so does the house-property loss carry-forward (s.71B).
recommend_itr_formsays this innoteswhenever a business, speculative or capital loss flag is set, so its ITR-3 recommendation is not read as an unconditional carry-forward. A house-property-only loss does not trigger it, because s.71B carries that one forward either way.
Revising a filed return. Finance Act 2026 substituted s.139(5): a revised return may now be filed any time before the end of the AY (deadlines.revised, 2027-03-31), no longer three months before it. A revision filed after deadlines.revisedWithoutFee234I (2026-12-31) attracts the new s.234I fee; its tiers are not in the pack because no primary source for them was found, so read the amount off the portal.
Not modeled, deliberately: whether a belated business filer keeps the old-regime election (s.115BAC(6) / Form 10-IEA is due on or before the s.139(1) date). Ask a CA before relying on either answer.
Validation
docs/validation.md runs 20 cases (58 figures) through the built server and puts each next to its source. Nine come from the Finance Minister's own table in the Budget Speech 2025-26 (Annexure to Part-B, printed page 47): slab tax, rebate and tax after rebate from 8 to 50 lakh. The other eleven are worked by hand from the statute, with the arithmetic in the table: the 87A marginal relief and its crossover, gains that cost the rebate, the old-regime age bands, and the 10% surcharge with its own marginal relief. All 58 match. CI runs pnpm validate on every leg and fails if a figure stops matching or the committed table goes stale.
It is not a comparison with the e-Filing portal's own calculator, which refuses automated browsers. A case from a CA-prepared computation is the most useful pull request this repo can get.
Scope and limitations
Honest boundaries, so you know before you rely on it. docs/v0.2-spec.md carries the statutory citations behind each rule, the per-section implementation status, and the register of claims that were researched and refuted.
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, a house-property loss (as a positive number; it applies the s.71(3A) cap and the s.115BAC bar), employer NPS under 80CCD(2), and old-regime deductions as a single total. It does not itself compute house-property income (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.s.87A under the new regime tests total income. The statute's first proviso says "total income" and this engine follows it, so 12 lakh of salary plus any equity gains loses the Rs 60,000 rebate. Some practitioners read the threshold as slab-rate income only;
compute_taxsays which reading it applied whenever gains are present, and the rule pack can encode the other one (thresholdBasis: "normalIncome").Not yet modeled: house-property and business P&L computation (
presumptivepicks the single-installment 234C schedule and, withpresumptiveTurnover, the 44AD/44ADA ceilings -- the income itself is not computed), crypto/VDA (115BBH), non-equity capital gains, loss set-off arithmetic beyond the house-property cap (#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).Dividend is ordinary income for surcharge purposes. There is no dividend input: it goes in
otherIncome. The First Schedule keeps dividend out of the 25%/37% surcharge bands and caps its surcharge at 15%, andcompute_taxdoes neither for dividend (it does both for 111A/112A gains). Only bites above Rs 2 crore of total income; below that every band rate is already at or under 15%.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.
Architecture
One stdio process, three layers, no network. The prompt sequences the interview, the MCP layer validates every input, and pure functions over a versioned JSON rule pack produce every number.
The spec behind the picture is docs/diagrams/architecture.yaml, rendered with orrery; every node names the source file it stands for.
Decision | Why |
stdio only, no HTTP transport | The documents carry PAN, salary and TDS data. No port means nothing to expose; CONTRIBUTING declines network transports outright |
Rule pack in JSON, not code | Tax law changes every Finance Act. A new FY is a new |
The LLM never computes | A figure a model produced cannot be audited or reproduced. The model asks questions and calls tools; every rupee figure is a deterministic function output, returned with |
| Downstream tools ( |
CI asserts computed figures | On Ubuntu and Windows across Node 22/24/26, the smoke test boots |
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. 151 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 13,25,000 total-income case that loses the rebate, 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 (Income-tax Act 2025 and Income-tax Rules 2026: Form 16 becomes Form No. 130 under Rule 215, the HRA metros become eight under Rule 279; Finance Act 2026: buyback reverts to capital gains) lands as a new pack, not code changes. Rule 164(14) of the 2026 Rules keeps FY 2025-26 returns on this year's forms, so none of it touches the pack shipped here.
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 -- engine correctness pass (senior/super-senior slab sets, surcharge marginal relief on tax + surcharge, the s.111A/112A basic-exemption set-off, s.288A/288B rounding), positional 26AS amount extraction, s.234A + the s.234B(2) payment ladder, reconcile M4/M5, belated-filing guidance, security pins on the SDK's transitives, an OIDC-with-provenance publish workflow (no run of it has reached npm yet; the npmjs.com trusted-publisher link is pending), and an MCP registry manifest (
server.json)v0.5 -- fact-check of every constant against primary sources; s.87A on total income; AY 2026-27 form changes (two house properties, Schedule AL at 1 crore, Finance Act 2026 deadlines with citations); employer NPS and house-property loss inputs; 44AD/44ADA ceilings and s.194N in the form picker; 26AS booking status, TCS separation and reconcile M2; path allow-list on the parsers
v0.5.2 -- a validation table against the Budget Speech 2025-26 figures and hand-worked statute cases, enforced in CI; the
.mcpbone-click Claude Desktop bundle, attached to each release from v0.5.3 on; a README demo rendered from a real stdio sessionv0.5.3 -- architecture and filing-flow diagrams rendered from
docs/diagrams/with orrery (light and dark, reviewed at README width) in place of the mermaid sketch; the Income-tax Rules 2026 citations (Rules 164, 205, 215, 245, 269, 279) recorded for the FY 2026-27 pack; the README says what npm serves todayv0.6 (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.7 --
compute_schedule_fa(foreign assets/RSU, Rule 115 rates, #5), portal quirks playbook (#6), mutual fund CAS via casparser, draft ITR JSON export
Development
pnpm install
pnpm test # vitest: engine golden files + in-memory MCP client tests
pnpm build
pnpm inspect # MCP inspector against dist/index.js
pnpm validate # docs/validation.md cases against the built server; --write regenerates it
pnpm bundle # build/itr-agent-<version>.mcpb, the Claude Desktop bundle
node scripts/demo.mjs # the README demo sessionContributing
Tax software has a higher correctness bar than most OSS, so the ground rules are written down: CONTRIBUTING.md (tax constants live in data/*.json with a cited source, every calculator change ships a golden test, never commit a real tax document). Version history and every constant that moved: CHANGELOG.md. Found a vulnerability? SECURITY.md has the private reporting path -- please do not open a public issue for it.
Disclaimer
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
Available Tools
12 toolscompare_regimesCompare old vs new tax regimeARead-only
Compute tax under BOTH regimes for the same income and return a side-by-side comparison with the recommended regime and the savings amount. Pass the old-regime deductions you could actually claim; the new regime ignores them.
Inputs: fy, ageBand, ltcg112A, stcg111A, +6 more.
compute_hraCompute HRA exemption (+80GG)ARead-only
HRA exemption per Rule 2A: least of (actual HRA, rent minus 10% of salary, 50% metro / 40% non-metro of salary), computed period-wise. Salary = basic + retirement-forming DA + fixed-percentage turnover commission. Old regime only; metro list for FY 2025-26 is Delhi/Mumbai/Kolkata/Chennai. Also computes the 80GG alternative for rent payers who received no HRA at any time in the year (the two are mutually exclusive).
Inputs: fy, regime, periods, eightyGG.
compute_interest_234Compute 234A/234B/234C interestARead-only
Deterministic sections 234A, 234B and 234C interest. 234A: 1%/month for filing after the due date, on tax outstanding after all prepaid tax. 234B: 1%/month on assessed-minus-advance when advance < 90% (from 1 April of the AY), reduced by self-assessment payments under s.140A. 234C: per-installment shortfalls with the statutory 12%/36% safe harbors for June/September, measured on tax due on RETURNED income. Rule 119A rounding applied (principal floored to Rs 100, part month = full month). Each section is computed only when its own inputs are supplied; anything skipped is named in skipped.
Inputs: assessedTax (required), monthsFor234B (required), fy, presumptive, +7 more.
compute_taxCompute Indian income taxARead-only
Deterministic Indian income tax computation for a fiscal year. Handles new/old regime slabs, standard deduction, 87A rebate with marginal relief (threshold tested on TOTAL income per the statute; rebate never offsets 111A/112A tax under the new regime), employer NPS under 80CCD(2) in both regimes, house-property loss set-off (s.71(3A) cap; none under 115BAC), 111A/112A capital gains rates with the basic-exemption set-off, surcharge (with the 15% cap on gains and marginal relief), and 4% cess. All arithmetic is done in code from a versioned rule pack -- never estimated.
Inputs: regime (required), fy, ageBand, ltcg112A, +7 more.
filing_checklistStep-by-step ITR filing checklistARead-only
Ordered, form-specific walkthrough for filing ITR-1/2/3/4 on incometax.gov.in: documents to gather, reconciliation, tax computation, portal steps schedule by schedule, and e-verification. Guidance only -- the taxpayer performs the final submit on the portal themselves.
Inputs: form (required), fy.
list_deductionsList old-regime deductionsARead-only
Return the old-regime deduction checklist with statutory caps for a fiscal year (80C, 80CCD(1B), 80D tiers, 80TTA/TTB, 24(b), HRA metro list). Useful for estimating the deductions input to compute_tax/compare_regimes.
Inputs: fy.
list_tax_yearsList supported fiscal yearsARead-only
List the fiscal years this server has rule packs for, with filing deadlines for the current assessment year.
Inputs: no named parameters.
parse_aisParse AIS (Annual Information Statement)ARead-only
Decrypt and parse the AIS JSON export from the income tax portal, entirely on-device. Provide pan + dob (DDMMYYYY) to derive the password, or pass it explicitly. Returns taxpayer info and normalized information rows (TDS entries, SFT transactions) with amounts, dates, and codes extracted by column label. The decryption scheme is reverse-engineered from the AIS utility; if it fails, use the portal's CSV export as a fallback and file an issue.
Inputs: path (required), dob, pan, password.
parse_form26asParse Form 26AS (text export)ARead-only
Parse the caret-delimited Form 26AS TEXT export from TRACES into structured TDS entries (deductor, TAN, section, amounts, booking status) with totals, plus TCS rows (206C*) separated into tcsEntries. Reports creditableTdsDeposited (status F rows only) alongside the raw total. Download the 'Text' format from TRACES (the archive opens with your DOB as DDMMYYYY); PDF exports are not supported.
Inputs: path (required).
recommend_itr_formRecommend the ITR formARead-only
Recommend ITR-1/2/3/4 for an individual from income heads, residency, losses, and disqualifier flags, with rule-by-rule reasoning. Loss-continuity aware: brought-forward business/speculative losses force ITR-3 even with zero current-year business income (Schedule CFL). Checks the 44AD/44ADA turnover ceilings when presumptiveTurnover is supplied, and the AY 2026-27 two-house-property allowance. Returns the filing deadline with its statutory citation, the belated and revised deadlines, and the 234F late fee.
Inputs: totalIncome (required), fy, tds194N, ltcg112A, +21 more.
reconcile_documentsReconcile Form 16 vs AIS vs 26ASARead-only
Cross-document mismatch report -- the checks that pre-empt 143(1)(a) intimations and 139(9) defect notices: TDS claimed vs 26AS deposited (the ledger of record), missing-employer detection, AIS interest/dividend vs declared, Form 16 vs 26AS per-TAN totals, declared salary below the Form 16 total, and 26AS rows missing the gross amount. Also groups 26AS TDS by income head so each credit can be placed in the right schedule. Pass whichever documents you have; checks needing missing inputs are reported as skipped.
Inputs: fy, ais, form16, return, +1 more.
schedule_advance_taxPlan advance tax installmentsARead-only
Build the advance tax installment plan (Jun 15 / Sep 15 / Dec 15 / Mar 15 at 15/45/75/100%) for an estimated tax liability net of TDS. Reports per-installment amounts and shortfalls against what has been paid so far.
Inputs: estimatedTax (required), fy, paidSoFar, tdsExpected.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Each tool targets a distinct operation in a clear tax-filing pipeline: computation (compute_tax, compare_regimes, compute_hra, compute_interest_234), form guidance (recommend_itr_form, filing_checklist), reference data (list_tax_years, list_deductions), document ingestion (parse_form26as, parse_ais), and cross-checking (reconcile_documents). The closest pairs (compute_tax vs compare_regimes, list_deductions vs compute_hra) are explicitly differentiated in their descriptions (both-regime comparison; reference caps vs actual exemption calculation). No two tools appear to do the same job.
Names are consistently snake_case and almost all follow a verb_noun pattern (compute_tax, list_deductions, parse_ais, recommend_itr_form, reconcile_documents). The main deviation is filing_checklist, which is a bare noun phrase with no verb, and parse_form26as embeds a format token, but both remain readable and predictable.
Twelve tools is well within the sweet spot for a domain this broad, and each one maps to a real step a filer needs (compute, compare, recommend form, checklist, deductions, advance tax, 26AS/AIS parsing, interest, HRA, reconciliation). There is no filler or redundant tool.
The surface covers the full individual-filer lifecycle from income computation through document reconciliation, form selection, and deadlines. Minor gaps: there is no Form 16 parser (reconcile_documents checks Form 16 vs 26AS per-TAN totals but must receive Form 16 data as input), and presumptive 44AD/44ADA income computation is only checked for turnover ceilings in recommend_itr_form rather than computed.
Maintenance
Related MCP Connectors
TaxSort — Tollbooth-monetized MCP server for personal tax transaction classification
MCP server for Quaderno — tax-rate calculation, invoices, contacts, products, receipts & expenses.
Read-only finance MCP server. Connects your banks, cards, payment apps, books and payroll into one ledger for your AI. Can't move money. Open source (AGPL-3.0), free during beta.
Financial simulator for Indian salaries: loans, taxes, SIPs and 50-year FIRE plans.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Python MCP server that calculates French income tax using the official DGFiP source code compiled locally. It enables accurate tax simulations for 2023 income based on real French tax forms without network calls.MIT
- AlicenseAqualityAmaintenanceAn offline-first MCP server for Indian financial, tax, and government APIs, providing tools for identity validation (PAN, Aadhaar, GSTIN), tax calculations (Income Tax, TDS, GST), and master data lookups (IFSC, Pincode, HSN/SAC) with zero authentication required.76145 PyPI86MIT
- AlicenseNot gradedqualityCmaintenanceA sovereign, MIT-licensed MCP server for US tax operations, enabling offline-capable and self-hostable tax workflow management.MIT
- AlicenseAqualityDmaintenanceTurns any MCP host into a finance & tax copilot for Indian taxpayers, using live keyless data and deterministic advisory.16MIT