taxbrainai-mcp
A standalone MCP server exposing 8 tools for
Indian personal income-tax work (ITR-1/2/3/4 + post-filing notices). It is built on
FastMCP as a thin wrapper over the deterministic
taxbrainai-compute engine plus a
small statute graph that ships inside the package.
It runs fully offline with no API keys — every tool here is deterministic or an optional bring-your-own-index lookup. There is no LLM call anywhere in this package.
This is the extracted, self-contained MCP surface of the larger TaxBrainAI project. In the full product, three of these tools are backed by an LLM / vision model and a hosted case-law corpus; here those halves are replaced by deterministic equivalents (or made optional), so the package installs and starts with no private backend, no secrets, and no redistributed third-party data. See "Honesty about each tool" below.
The 8 tools
| # | Tool | Kind | What it does |
|---|---|---|---|
| 1 | compute_tax |
Deterministic — Decimal compute | Income-tax liability for a structured input (salary, capital gains, deductions, age, residency, regime). No LLM in the math path. |
| 2 | regime_compare |
Deterministic — Decimal compute | Old vs new regime for the same inputs; recommends the cheaper, with savings delta + statutory citations. |
| 3 | simulate_scenario |
Deterministic — Decimal compute | What-if: apply changes to a base input and compare tax before/after. |
| 4 | cite_section |
Deterministic — statute graph | Resolves a section number to its title + a formatted citation, incl. the equivalent section in the other Act. |
| 5 | compare_acts |
Deterministic — statute graph | Maps a section across IT Act 1961 ↔ IT Act 2025 via the equivalence graph. |
| 6 | classify_notice |
Deterministic — table + pattern-match | Detects the notice section by pattern-matching the text, then returns curated section/type/deadline/guidance facts (not model-generated). Honest found: false when no known section is present. |
| 7 | reconcile_documents |
Deterministic — diff | Flags cross-document mismatches across Form 16 / 26AS / AIS pre-extracted fields (PAN redacted in output). OCR/vision extraction is out of scope — bring your own extractor. |
| 8 | find_case_law |
Optional — lexical BM25 retrieval | Lexical search over an optional case-law metadata index. No corpus ships with this package; set an env var to enable it (below), otherwise it returns an empty result set with a note. |
Honesty about each tool
- Deterministic Decimal compute (1–3): all math flows through the
property-tested
taxbrainai-computelibrary (Hypothesis-verified, cross-checked against the official Income-Tax Dept ITR utilities). The server never authors a number. - Deterministic statute graph (4–5): answered from a vendored snapshot of the
1961↔2025 statute graph (
nodes.csv+edges.csv, shipped inside the package). - Deterministic table / diff (6–7): in the full TaxBrainAI product these are LLM/vision-backed (a model reads the notice / extracts document fields). This standalone server keeps only the deterministic halves — a section/keyword matcher and a field-level reconciliation diff — so no model or key is required.
- Optional retrieval (8):
find_case_lawneeds a case-law index, which is not bundled (third-party data is not redistributed here). It degrades gracefully to an empty result set unless you point it at your own index.
Install
pip install "taxbrainai-mcp[mcp]" # server + FastMCP SDK
pip install taxbrainai-mcp # tool library only (no SDK; importable + testable)
taxbrainai-compute is a hard dependency and is installed automatically.
Run
# installed console script
taxbrainai-mcp
# or the module form
python -m taxbrainai_mcp.server
FastMCP's run() serves stdio by default and also supports Streamable HTTP
(build_mcp_server().run(transport="streamable-http")). No API keys are needed.
Optional: enable case-law search
export TAXBRAIN_MCP_CASELAW_INDEX=/path/to/caselaw.jsonl # JSONL of {"title","court",...}
If your index is derived from Indian Kanoon (indiankanoon.org), attribute it accordingly.
Connect a client (Claude Desktop)
Add to claude_desktop_config.json (mcpServers block):
{
"mcpServers": {
"taxbrain": {
"command": "taxbrainai-mcp"
}
}
}
If the console script is not on PATH, use "command": "python", "args": ["-m", "taxbrainai_mcp.server"].
Use the tools directly (no MCP SDK)
The tool logic is a plain class — handy for tests or embedding:
from taxbrainai_mcp import TaxBrainTools
t = TaxBrainTools()
print(t.compute_tax({"salary_income": 1275000, "regime": "new"})["total_tax"]) # 0 (rebated under Section 87A)
print(t.compare_acts("147")["equivalence"])
Registry manifest
server.json is the MCP-registry manifest (schema 2025-12-11), authored as a
draft for submission. Its _meta block lists the exact pre-publish checklist
(claim/publish the PyPI name, validate against the schema, authenticate the
io.github.harshil-projects namespace). The package runs locally over stdio — there is
no hosted remote endpoint.
Scope & disclaimer
Covers AY 2026-27 / FY 2025-26 for resident individuals / HUF (ITR-1/2/3/4). This is software for estimation, not tax, legal, or financial advice; verify against the official e-filing utility and a qualified professional before relying on any figure.
License
MIT — see LICENSE. Bundled statute graph data is derived from the text of
the Income-tax Act (official statutory text). taxbrainai-compute is MIT-licensed.
mcp-name: io.github.harshil-projects/taxbrainai-mcp
Metadata
Release files for taxbrainai-mcp 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| taxbrainai_mcp-0.1.1.tar.gz | 72.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| taxbrainai_mcp-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 145.9 kB
Release files / taxbrainai_mcp-0.1.1.tar.gz
| Download URL | taxbrainai_mcp-0.1.1.tar.gz |
|---|---|
| Size | 72.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d7404cdf1650ccd136dbf47c584dede7231ddd410977ec5aedbeef96cfe89259
|
|
BLAKE2b-256 checksum How to use checksums |
f986e29407ece3f9be1949ac4ed6bab1daa74b1414d6f202234ae27a70868018
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.6
|
Release files / taxbrainai_mcp-0.1.1-py3-none-any.whl
| Download URL | taxbrainai_mcp-0.1.1-py3-none-any.whl |
|---|---|
| Size | 73.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c3d79807e2041a08de88e2243186e8783c2d320774bc8c7e8c78b78ba163589
|
|
BLAKE2b-256 checksum How to use checksums |
933273866086cfb65ddae1c558d413182a17e79355f9a20acf676ba5099119ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.6
|