pypi taxbrainai-mcpstdioMITupdated 2mo ago
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.
What can you do with TaxBrainAI MCP?
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
Install
Add TaxBrainAI MCP to your client. Pick the one you use.
claude mcp add taxbrainai-mcp -- uvx taxbrainai-mcpcodex mcp add taxbrainai-mcp -- uvx taxbrainai-mcpamp mcp add taxbrainai-mcp -- uvx taxbrainai-mcp{
"mcpServers": {
"taxbrainai-mcp": {
"command": "uvx",
"args": [
"taxbrainai-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"taxbrainai-mcp": {
"command": "uvx",
"args": [
"taxbrainai-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"taxbrainai-mcp","command":"uvx","args":["taxbrainai-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"taxbrainai-mcp": {
"command": "uvx",
"args": [
"taxbrainai-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"taxbrainai-mcp": {
"command": "uvx",
"args": [
"taxbrainai-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"taxbrainai-mcp": {
"command": "uvx",
"args": [
"taxbrainai-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"taxbrainai-mcp": {
"type": "local",
"command": "uvx",
"args": [
"taxbrainai-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"taxbrainai-mcp": {
"command": {
"path": "uvx",
"args": [
"taxbrainai-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
uvx taxbrainai-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance16/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 57 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.1Latest | Jul 6, 2026 |