Claude skills and MCP servers for US tax analysis

A skill is a SKILL.md file telling an agent when a workflow applies and which tools to call; the tools are 39 commands across 9 MCP servers, and the figures come from tested Python rather than from the model. Every result carries the method it used, the rule pack it was pinned to, what is still missing and whether coverage was complete, for a licensed professional to review.

The servers

Federal income tax

US federal tax calculations over figures you supply.

7 commands: calculate_federal, calculate_capgains, calculate_niit, calculate_amt, calculate_qbi, calculate_loss, get_federal_capabilities

Estate and gift tax

Federal estate tax, gift exclusions and fiduciary income tax.

4 commands: calculate_estate_tax, calculate_gift_exclusion, calculate_fiduciary_tax, get_estate_capabilities

Cross-border tax

Foreign earned income exclusion and foreign gift reporting.

3 commands: calculate_feie, calculate_foreign_gift, get_international_capabilities

Business entity tax

Section 179 expensing and C corporation versus pass-through.

3 commands: calculate_section_179, calculate_entity_comparison, get_business_capabilities

Penalties and safe harbours

Late filing and payment penalties, and the estimated tax safe harbour.

4 commands: calculate_filing_penalty, calculate_entity_penalty, calculate_safe_harbour, get_compliance_capabilities

Municipal bonds

Municipal bond yields, market discount and premium amortization.

4 commands: calculate_muni_yield, calculate_muni_discount, calculate_muni_premium, get_muni_capabilities

State and local tax

The federal cap on deducting state and local tax.

3 commands: calculate_salt_cap, calculate_state_coverage, get_salt_capabilities

Portfolio lots and harvesting

Account-scope lot analysis: gain and loss, wash-sale screening, loss-harvest scenarios.

9 commands: check_holdings, review_rebalance, review_lots, optimize_harvest, review_harvest, resolve_subject, get_run_status, get_scenario, get_capabilities

Household and UMA coordination

Household and UMA-sleeve coordination over one shared budget per tax unit.

2 commands: optimize_household, coordinate_household

The skills that use them

16 skills, each read from its own SKILL.md frontmatter at build time.

SkillWhat it is forServer
entity-reviewCompute section 179 expensing with both of its limits, and compare federal tax on the same income inside a C corporation against passing it through. Produces arithmetic over supplied rates, never an entity-choice recommendation.Business entity tax
estate-reviewEstimate federal estate tax against the unified credit, including the effect of lifetime gifts and a deceased spouse's unused exclusion. Use when someone asks what an estate would owe. Never values property and never decides what is in the gross estate.Estate and gift tax
expat-reviewCompute the foreign earned income exclusion and housing amount for a US taxpayer working abroad, and check whether a gift from a foreign person must be reported. Never establishes eligibility and never compares against the foreign tax credit.Cross-border tax
gain-loss-reviewCalculate realized and unrealized gain and loss at lot level, split by holding period, from a frozen snapshot. Use when the user asks what they would realize by selling, where they stand on gains this year, or how a sale splits between short and long term.Portfolio lots and harvesting
gift-planningWork out how much of a gift the annual exclusion covers, including gift splitting between spouses and the separate figure for a non-citizen spouse. Use for annual gifting questions. Produces an exclusion calculation, not a recommendation to give.Estate and gift tax
harvest-reviewReview tax-loss harvesting opportunities in one taxable account, with wash-sale screening and an explicit gain budget. Use when the user asks about harvesting losses, offsetting gains, or raising cash tax-efficiently. Produces scenarios for professional review, never a trade instruction.Portfolio lots and harvesting
household-coordinationCoordinate harvesting and cash raising across a household's accounts or a UMA's sleeves under one shared gain budget, with cross-account and cross-sleeve wash-sale prevention. Use when a request spans more than one account or manager, or when a UMA overlay must stop one sleeve from washing another's loss.Portfolio lots and harvesting, Household and UMA coordination
lot-reviewCheck tax-lot completeness and integrity before any tax calculation — basis, acquisition dates, quantities, duplicates and position reconciliation. Use when lots have just been imported, a transfer arrived, or another skill reported blocked calculations.Portfolio lots and harvesting
muni-reviewCompare a municipal bond against a taxable alternative, and work out how a discount or premium will be taxed. Use for muni yield questions, de minimis market discount, and bond premium. Does not decide whether a bond is a private activity bond and does not look up any state's treatment.Municipal bonds
penalty-reviewCompute late filing and late payment additions to tax, and partnership or S corporation late-filing penalties. Use when a return or payment is late. Interest is never included, so the figure is always lower than what is owed.Penalties and safe harbours
rebalance-reviewRebalance one account toward advisor-supplied target weights within a gain budget, showing the tax cost and the drift that remains. Use when the user asks what rebalancing would cost, or wants to compare acting now against leaving the drift.Portfolio lots and harvesting
salt-reviewCompute the federal cap on deducting state and local tax, including its phase-down, and report what this deployment can say about an individual state's own tax. No state's own income tax is computed in this release.State and local tax
tax-intakeTurn uploaded statements and exports into source-cited, normalized tax facts with a missing-information register. Use at the start of any engagement, or when new documents arrive and no snapshot exists yet.Portfolio lots and harvesting
tax-profileEstablish the household scope, tax units, account classifications and stated assumptions that every other tax skill depends on. Use before the first analysis of an engagement, or when ownership, registration or residency is unclear.Portfolio lots and harvesting
tax-review-packAssemble a source-bound review package for a completed analysis — scope, assumptions, results, validation, limitations and version pins — for the responsible professional. Use when the user wants something to review, file, sign off, or hand to a CPA.Portfolio lots and harvesting
wash-sale-reviewScreen proposed or completed loss sales for wash sales under IRC section 1091, across the accounts available, with explicit coverage gaps. Use when the user asks whether a loss is allowed, about the 30-day rule, or about repurchasing a security they sold at a loss.Portfolio lots and harvesting

How to use them

Install the plugin and the servers are registered from .mcp.json. Each one starts on its own, so a deployment runs only what it needs and a server that is not installed cannot be called by mistake.

git clone https://github.com/ai-theories/tax-skills
cd tax-skills/tax-agent
python3 -m pytest tests/ -q          # the whole suite, no network needed
python3 scripts/serve_dashboard.py   # the console on 127.0.0.1:4180

9 further operations are real code but run only as steps inside a workflow template, and are declared internal rather than offered as tools: telling a host it can call something it cannot is the failure the registry exists to prevent.