ArcaTax
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., "@ArcaTax Help me prepare my 2026 federal tax return."
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.
ArcaTax
Open-source, local-first US federal tax engine (Form 1040 + Schedules A, B, C, D, E and S-corp K-1 pass-throughs) that Claude drives over the Model Context Protocol. Claude interviews you and enters your documents; deterministic Python does all the math; the result can be written onto the official IRS Form 1040 PDF.
⚠️ Read this first
ArcaTax is not a CPA, enrolled agent, attorney, or tax software vendor, and nothing it produces is tax, legal, or financial advice. It is experimental, unaudited software. Tax law is intricate and several features (AMT, EITC, premium tax credit, education credits, foreign tax credit, state returns, the new 2025-2028 tips/overtime/auto-loan deductions, and more) are not modelled. The 2026 parameters were transcribed from IRS Rev. Proc. 2025-32 and statute, and items marked
[UNV]inrules/2026/federal_1040.yamlwere not independently verified. Have a qualified professional review any return before you file it. You alone are responsible for what you file. The software is provided "as is" under the license, with no warranty.Privacy: all tax data stays on your machine in
user_data/andreturns/, both git-ignored. ArcaTax has no telemetry, no cloud service, and does not store SSNs. The only network call it makes is an optional one-time download of the blankf1040.pdffromirs.gov. Caveat: when you chat with Claude, whatever you type or upload goes to Claude under your Anthropic account's terms. Local-first describes where ArcaTax stores data, not where the conversation goes.
Related MCP server: freelance-tax-mcp
Architecture
You ── chat/upload ──► Claude (skills/tax-interview.md)
│ MCP tool calls (stdio)
▼
src/arcatax/mcp_server.py FastMCP("ArcaTax")
│ │ │
▼ ▼ ▼
schema.py engine.py pdf_filler.py / txf_exporter.py
Pydantic pure, no LLM pypdf → returns/2026_Form1040_Draft.pdf
state JSON math + gap TXF → returns/2026_return.txf
│ questions
▼ ▲
user_data/ rules/2026/federal_1040.yaml (all IRS numbers; edit here, not in code)
return_2026.json rules/2026/f1040_field_map.json (result key → PDF field)Piece | Responsibility |
| Standard deductions, brackets, capital-gain breakpoints, NIIT, payroll/SE, SALT cap, QBI, credits. Each section is tagged with its source. |
| Strict Pydantic v2 models: profile, W-2, 1099-INT/DIV/B/NEC, Schedule C, Schedule E, K-1 (1120-S), itemized deductions, adjustments, payments. Atomic, owner-only (0600) JSON persistence. |
|
|
| Downloads the blank form from irs.gov, resolves AcroForm fields from the JSON map (exact id or tooltip regex), fills numbers only. |
| Exports source documents (W-2, 1099, Schedule C, estimated payments) as TXF v042. |
| Tools: |
Rounding follows the paper form (whole dollars, half up, rounded values carried forward), and income below $100,000 uses the IRS Tax Table midpoint method.
Quick start (non-technical users)
Full walkthrough with screenshots-in-words and troubleshooting: docs/INSTALL.md.
Install Python 3.11+ from python.org (Windows: tick Add python.exe to PATH).
Install ArcaTax:
python3 -m pip install arcatax(Windows:py -m pip install arcatax).Connect it to Claude Desktop:
python3 -m arcatax.installer(Windows:py -m arcatax.installer), then fully quit and reopen Claude Desktop and say "Help me prepare my 2026 federal tax return with ArcaTax."
The setup tool backs up your Claude Desktop config and adds only the arcatax entry; your other servers are left
untouched. Your data lives in ~/ArcaTax (override with --data-dir). --dry-run previews, --uninstall removes it.
Developer install
Requires Python 3.11+.
git clone <this repo> ArcaTax && cd ArcaTax
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/python -m pytest
mcpis pinned<2because 2.x renamedFastMCP.
Claude Desktop (manual configuration)
arcatax-setup does this for you. To do it by hand instead, edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json,
Windows: %APPDATA%\Claude\claude_desktop_config.json), using absolute paths:
{
"mcpServers": {
"arcatax": {
"command": "/absolute/path/to/ArcaTax/.venv/bin/arcatax-mcp",
"args": [],
"env": { "ARCATAX_HOME": "/absolute/path/to/ArcaTax" }
}
}
}Restart Claude Desktop. ARCATAX_HOME is where user_data/, returns/ and templates/ live (defaults to the
repo root in a source checkout, otherwise ~/ArcaTax). Claude Desktop starts servers with an arbitrary working
directory, so set it explicitly. The interview procedure ships inside the server as the tax_interview prompt
(and as server instructions), so no copy-pasting is needed.
Claude Code
claude mcp add arcatax --env ARCATAX_HOME=$PWD -- $PWD/.venv/bin/arcatax-mcpCowork / plugin
plugin.json (mirrored at .claude-plugin/plugin.json) registers the MCP server and the skill.
Claude Code expects skills as skills/<name>/SKILL.md; if the flat skills/tax-interview.md is not picked up
by your client version, move it to skills/tax-interview/SKILL.md.
The IRS PDF
.venv/bin/python -m arcatax.pdf_filler --download # blank f1040.pdf → templates/irs_blank/
.venv/bin/python -m arcatax.pdf_filler --inspect # list real field names + tooltipsIRS rewrites internal field ids every year, and its forms are XFA hybrids whose field descriptions
("1a. Total amount from Form(s) W-2...") live in the XFA template. The field map therefore matches on those
descriptions unless you pin an exact field. It resolves all 37 mapped lines uniquely on the 2025 Form 1040,
but has not been run against a 2026 form: the IRS was still serving the 2025 form when this was written.
ArcaTax refuses to fill a form from the wrong year (it reports why instead of writing 2026 numbers onto 2025
lines). When the 2026 form appears, run --inspect, check the keys_unmatched list that export_filing_packet
returns, and adjust rules/2026/f1040_field_map.json if lines were renumbered.
Name, SSN, address and signature are intentionally left blank.
ArcaTax does not e-file; use IRS Free File, commercial software, or a preparer.
Modelling notes and known gaps
Single-year (2026), federal only. Filing status MFS assumes you lived with your spouse (no passive allowance).
QBI: per-business W-2 wage/UBIA limits, SSTB phase-out, loss netting, REIT/PTP dividends, $400 minimum. Home-office, SE-deduction and retirement adjustments are allocated to businesses pro rata.
Passive losses: simplified Form 8582 ($25k allowance with phase-out); suspended amounts are reported, not tracked.
S-corp K-1: ordinary loss and distribution limits apply only if
stock_basis_start_of_yearis supplied.Capital gains: 0/15/20% only (no 25%/28% collectibles or unrecaptured §1250 rates).
Itemized: SALT cap with high-income phase-down, 7.5% medical floor, 0.5% charity floor; the 37%-bracket limitation is flagged, not computed.
Not computed: AMT, EITC, premium tax credit, education/foreign/energy credits, taxable Social Security, tips/overtime/car-loan deductions, estimated-tax penalty, state taxes.
Layout
rules/2026/ IRS parameters + PDF field map
src/arcatax/ schema, engine, pdf_filler, txf_exporter, mcp_server
skills/ tax-interview.md
templates/irs_blank/ blank IRS PDFs (the only PDFs git will track)
tests/ hand-checked 2026 scenarios
user_data/ returns/ tax_docs/ YOUR data (git-ignored)License
See LICENSE.
Available Tools
11 toolscalculate_1040_returnB
Run the deterministic engine. Returns every Form 1040 line, supporting schedules, warnings, open questions and a ready-to-show Markdown audit table. This is the ONLY source of tax numbers.
Inputs: tax_year. Returns: object
export_filing_packetA
Recalculate, then write returns/2026_Form1040_Draft.pdf (official IRS form, numbers only) and returns/2026_return.txf. Downloads the blank f1040.pdf from irs.gov on first use.
Inputs: tax_year. Returns: object
get_return_statusC
Summarize what is on file for the return and list the open gap-analysis questions.
Inputs: tax_year. Returns: object
remove_documentA
Delete a W-2, 1099, Schedule C, Schedule E or K-1 record by id. Confirm with the user first.
Inputs: document_id (required), tax_year. Returns: object
update_filing_profileA
Set filing status, birth years, blind flags and dependents. Only fields you pass are changed;
passing dependents replaces the whole list (pass [] to record 'no dependents').
Inputs: tax_year, dependents, spouse_blind, filing_status, +5 more. Returns: object
update_other_inputsA
Set itemized deductions, Schedule 1 adjustments, estimated payments, other income, or capital-loss carryovers. Each section you pass REPLACES that section; sections you omit are untouched.
Inputs: itemized, payments, tax_year, carryovers, +2 more. Returns: object
upsert_1099A
Add or replace one or more 1099-INT / 1099-DIV / 1099-B / 1099-NEC records (matched by id).
For 1099-B, send one record per sale or per broker summary line.
Inputs: documents (required), tax_year. Returns: object
upsert_k1_1120sC
Add or replace an S-corporation Schedule K-1 (Form 1120-S): ordinary income, QBI, W-2 wages, UBIA, distributions.
Inputs: k1 (required), tax_year. Returns: object
upsert_schedule_cB
Add or replace a Schedule C business (matched by id): receipts, categorized expenses, home office, mileage.
Inputs: business (required), tax_year. Returns: object
upsert_schedule_eB
Add or replace a Schedule E rental property (matched by id).
Inputs: rental (required), tax_year. Returns: object
upsert_w2A
Add or replace a W-2 (matched by id). Enter boxes exactly as printed; box 12 codes go in box12.
Inputs: w2 (required), tax_year. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Each tool targets a clearly distinct resource or action: per-form upserts (W-2, 1099, Schedule C, Schedule E, K-1) are separated by form type, and calculation/export are unambiguous terminals. The only near-neighbors, update_filing_profile and update_other_inputs, are explicitly scoped to different field sets (profile/taxpayer facts vs. deductions/adjustments/payments).
All names follow a consistent snake_case verb_noun pattern (get_, update_, upsert_, remove_, calculate_, export_) with domain nouns matching real tax forms. The upsert vs. update distinction is applied consistently to mean 'add/replace a record' vs. 'set scalar fields'.
Eleven tools is well within a comfortable range and each earns its place: one per major income document type, plus status, profile, other inputs, delete, calculate, and export. No redundant or filler tools are present.
The surface covers the full prepare-calculate-export lifecycle for a Form 1040, including all common income schedules and cleanup. Minor gaps: no per-record read/inspection tool beyond the summary in get_return_status, and no explicit way to fully clear 'other inputs' or profile fields back to empty.
Maintenance
Related MCP Connectors
Verifiable US tax oracle for AI agents: cited, machine-checkable federal and state tax computation
Exact French tax & payroll calculations for AI agents: income tax (impôt sur le revenu: parts, quotient familial, décote, TMI), micro-entrepreneur URSSAF contributions (ACRE, versement libératoire) with an optional VAT franchise check (franchise en base de TVA: must I charge VAT?), and gross-to-net salary with employer cost — CDI or CDD (prime de précarité, congés payés), full-time or part-time. Missing information? Your agent gets, for free, the exact questions to ask the user (in French, with types and allowed values) in a single round trip. Deterministic, no LLM: matches all 7,095 values of the official DGFiP tax tables, 60 cases from the official simulators and the official worked examples of the tax doctrine (BOFiP). Unsupported cases are refused for free; you pay $0.005 in USDC via x402 only when the calculation succeeds. Free catalogue tool: list_france_calculators.
Deterministic MLP tax engine with IRS citations. 6 tools: basis, §751, estate, projections.
44 calculators for AI agents: US tax, finance, business + an MCP engineering & security suite.
Related MCP Servers
- AlicenseBqualityBmaintenance39 tax tools for US individual taxpayers — federal/state tax calculations, credits, deductions, retirement strategies, audit risk, and tax planning. All calculations run locally, no data leaves the machine. Supports TY2024 and TY2025 (One Big Beautiful Bill Act).45905 npm13MIT
- AlicenseAqualityBmaintenanceEnables users to calculate 2026 US freelancer and sole-proprietor tax figures — quarterly estimated payments with safe harbor, self-employment tax, IRS due dates, mileage deductions, home office deductions, and SEP IRA vs Solo 401(k) contribution limits. Runs entirely locally with no API key, account, or network calls.8153 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables an AI assistant to manage tax documents, run the filing interview, work with forms, and prepare a US federal return locally. It supports the workflow through to printing/mailing or entering the return in IRS Free File Fillable Forms.AGPL 3.0
- AlicenseAqualityBmaintenanceEnables AI assistants to retrieve 2027 and 2026 federal income tax brackets, standard deductions, calculated federal income tax with bracket breakdowns and year-over-year comparisons, and other tax amounts using IRS Revenue Procedure data without network calls or API keys.41MIT