opentax
io.github.Invaro/opentaxVersion 0.2.1Verifiable US tax oracle for AI agents: cited, machine-checkable federal and state tax computation
Status
Responds228 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:38 UTC
- Latency
- 228 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 21:12 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://opentax.invaro.ai/mcpResponds228 msNo sign-in
Claude Code
claude mcp add --transport http opentax https://opentax.invaro.ai/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: opentax
Remote MCP server URL: https://opentax.invaro.ai/mcpCursor
{
"mcpServers": {
"opentax": {
"url": "https://opentax.invaro.ai/mcp"
}
}
}VS Code
code --add-mcp '{"name":"opentax","type":"http","url":"https://opentax.invaro.ai/mcp"}'Streamable HTTP
npm: @invaro/opentax 0.2.1Package only
npm (npx)
claude mcp add opentax -- npx -y @invaro/opentax@0.2.1Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
17 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
calculate_business_taxCompute US federal BUSINESS-ENTITY tax from the same cited corpus: check-the-box entity classification, Form 1120 corporate income tax (§ 179/168(k)/174A/163(j)/DRD/NOL, § 250, GBC/FTC/BEAT), S-corp entity taxes, corporate estimates, the § 4501 buyback excise, AET and PHC taxes. Individual returns → calculate_tax. Unknown keys are rejected; unmodeled territory refuses loudly with the reason. | Not declared | Not declared | Not declared | Not declared |
calculate_fiduciary_taxCompute US federal income tax for an ESTATE or TRUST (Form 1041): the § 1(e) compressed brackets and § 642(b) exemption. Input is taxable income before the exemption, after the §§ 651/661 distribution deduction. Retained capital gains refuse loudly (§ 1(h) trust breakpoints not modeled). Grantor trusts belong on the grantor's individual return via calculate_tax. | Not declared | Not declared | Not declared | Not declared |
calculate_taxCompute US federal INDIVIDUAL income tax (or balance due if withholding is given) from a content-addressed corpus of cited rules. NEVER estimate tax yourself — call this, and report ONLY numbers returned by oracle calls made with the real facts (never hand-check or approximate a line the oracle can compute: your recalled parameters may be stale). Negative result = refund. Returns the answer, every assumption made, and hashes that let anyone re-verify the full derivation offline. Facts are grouped (filing, income, retirement, credits, …) — fill the groups that apply; unknown keys are rejected, and the engine names any missing fact the target needs. When source documents CONFLICT on a value, do not silently pick one: compute both branches, disclose the conflict and your choice; an interview/confirmation answer (rollover, conversion, taxable-amount screens) usually reflects taxpayer intent better than a payer form's box code — prefer it and disclose. That heuristic covers FACTS only: LEGAL classifications (qualifying child vs other dependent, filing status, SSTB) follow the statute's tests, not intake checkbox labels — a generic 'claim dependent credit' flag does not convert a qualifying child into an ODC dependent. TRANSCRIBE documented amounts as given even when they look anomalous (e.g. state withholding in a no-income-tax state): disclose the anomaly, never delete or 'correct' a documented number from outside knowledge. If you believe an oracle result is wrong, report the ORACLE's number and note your dissent — never substitute your own: the corpus is primary-source-verified and your recollection is not. Business entities → calculate_business_tax; estates/trusts → calculate_fiduciary_tax; § 152 dependency → determine_dependent. | Not declared | Not declared | Not declared | Not declared |
compare_filing_statusesCompute the answer under every filing status for the same facts — e.g. to answer 'should we file jointly or separately?'. Statuses that need more facts report their error instead of guessing. | Not declared | Not declared | Not declared | Not declared |
compute_form_2210Form 2210 — the estimated tax underpayment penalty (26 U.S.C. § 6654) for tax years 2025-2027, composed from the printed form: Part I (the required annual payment: 90% of this year's tax, or 100% / 110% of last year's — pass priorYearTax and priorYearAGI in facts, or noPriorYearReturn), Part III Section A (underpayment per installment) and the Section B penalty worksheet (payments applied to the earliest underpayment first; each quarter's § 6621 underpayment rate, by days). Pass `payments`: EVERY estimated tax payment with its date (include last year's overpayment applied to this year, dated April 15, and any payment with the return, dated the earlier of filing and April 15); withholding (facts.federalTaxWithheld) is treated as paid one-fourth on each due date unless you pass `withholdingByDate` (box D). Pass `periods` to also run Schedule AI, the annualized income installment method (box C): the CUMULATIVE amounts from January 1 through March 31, May 31 and August 31 for every income, deduction and credit amount that is nonzero for the year (same fact ids as facts; the tool lists any it needs). Each Schedule AI column is the whole return computed on the period's amounts × 4, 2.4, 1.5 and 1, with the standard deduction in full, so every income type, deduction and credit the engine models is annualized; the columns refuse, with the reason, where the form doesn't settle the period treatment (foreign earned income exclusion, prior-year carryovers, premium tax credit, kiddie tax, household employment taxes, a dependent filer, the SALT cap binding in a period). The tool reports both methods and the lower penalty. A penalty that would run into a quarter whose rate the IRS hasn't announced is refused, with Section A still shown. Report the lines and notes verbatim. | Not declared | Not declared | Not declared | Not declared |
compute_form_4562Form 4562 — depreciation for an individual's businesses and rentals, tax years 2025-2027 (calendar year): § 179 expensing with the dollar limit, phase-out, married-filing-separately split, business income limitation and carryover; the § 168(k) special allowance (100% for property acquired after January 19, 2025; 40% in 2025 and 20% in 2026 for property acquired earlier; the TY2025 40% election; election out by class); MACRS with the printed Publication 946 tables (half-year, mid-quarter by the 40% test, mid-month for buildings; 150% DB, straight-line and ADS elections); dispositions during the year; listed property and the § 280F passenger automobile limits (2025 and 2026); and Rev. Proc. 87-56 asset classes for cost segregation (assetClass, e.g. '57.0', '00.11', '00.3'). Give EVERY asset in service: current-year assets with cost, placedInService and acquiredOn (the binding-contract date, which sets the bonus percentage); earlier assets also with convention (HY/MQ), section179Taken and specialAllowanceTaken. section179BusinessIncome is required when § 179 is elected or carried over (taxable income from actively conducted businesses including wages, without § 179, the half-SE-tax deduction or any NOL). Returns the form's lines, each asset's schedule, and the deduction by activity (Schedule C line 13, Schedule E line 18) — subtract each activity's amount from that business's income before depreciation. Situations the sources don't settle (short years, general asset accounts, 100% bonus on a passenger car, § 280F recapture, a disposition in the last recovery year) refuse with the reason. Report the lines and notes verbatim; dollars in, whole dollars out. | Not declared | Not declared | Not declared | Not declared |
compute_returnCompute the COMPLETE Form 1040 bottom-line set in one call — the lines that determine the return (1a, 9, 10, 11, 12e, 15, 16, 17 AMT, 19, 20, 22, 23, 24, 25d, 27a, 28, 32, 33, 34/37), each whole-dollar rounded by the engine, plus the modeled Schedule 3 credits (schedule3), in a loss year a losses block (Schedule 1 line 8a NOL deduction and 8p § 461(l) excess business loss, the Form 172 NOL and next year's pre-2018 and post-2017 NOL carryovers), when energy_credits inputs are given, the printed Form 5695 line set (forms['5695']), with passive_activities the Form 8582 lines (forms['8582']: Part I, the special allowance, line 11, and each activity's Schedule E/C/F result and unallowed loss to carry forward), with business property sales, installment sales or like-kind exchanges Form 4797 (forms['4797']: the net § 1231 amount, the lookback, the Schedule D line 11 and Schedule 1 line 4 amounts, unrecaptured § 1250 gain and each property's gain, recapture and § 1231 part; line numbers follow the year's form, renumbered in 2026), Form 6252 (forms['6252']: each sale's recapture, gross profit, contract price, installment income and unrecaptured § 1250 gain) and Form 8824 (forms['8824']: each exchange's realized, recognized and deferred gain, recapture and basis of the property received), and with business credits Form 8582-CR (forms['8582-CR']: the tax on net passive income, the special allowances, each activity's allowed and carried credit) and Form 3800 (forms['3800']: the § 38(c) limit, the credit allowed on Schedule 3 line 6a and the unused credit). Takes the SAME input as calculate_tax (prefer the documents block: transcribe W-2/1099-R/SSA-1099 boxes and dependent birth dates — SSA-1099s are first-class, box 5 and box 6 are summed for you; the tool derives ages, classifications, Part IV withholding, and penalties deterministically). Never assemble return lines by hand — this tool is the return. TRANSCRIPTION CONVENTIONS: (1) a PRIOR-YEAR Form 1040 in the file supplies C | Not declared | Not declared | Not declared | Not declared |
compute_state_returnCompose a STATE return's printed-form line set deterministically (2025 IL-1040 / VA 760 / CA 540 / NY IT-201 / PA-40 / NJ-1040 / OH IT 1040 / NC D-400 / GA 500 / MD 502 / MO-1040 / WI Form 1 / MN M1 / SC1040 / AL Form 40 / OR-40 / OK Form 511 / CT-1040 / KS K-40 / AR AR1000F / NM PIT-1 / NE 1040N / ID Form 40 / WV IT-140 / ME 1040ME / HI N-11, RI-1040, MT Form 2, DE PIT-RES, ND-1, VT IN-111) — correct line NUMBERS from the printed forms and whole-dollar rounding, with the state tax computed by the oracle targets internally. DE filing status 4 (married filing combined separate) is TWO returns on one form: pass filingStatus 'mfs' with deCombinedSeparate plus the deSpouse* column-A inputs, and each column gets its own $3,250 deduction and its own bracket climb. MT starts from FEDERAL TAXABLE INCOME and has no standard deduction, personal exemption or Social Security subtraction of its own, so mtFederalDeductions (federal Form 1040 lines 12e and 13b) is REQUIRED and the composer refuses without it; long-term capital gains are taxed separately at 3%/4.1% on the page 2 worksheet. NC and GA start from federalAGI: NC runs the AGI-tiered child deduction, the independent itemize-vs-standard selection, and the Bailey/military/SS auto-subtractions; GA FORCES itemizing for federal itemizers (pass gaFederalItemized), runs the per-spouse retirement exclusion and Low Income Credit targets, and caps total credits at the line 16 tax. PA is CLASS-BASED and NJ is CATEGORY-BASED: transcribe the pa*/nj* class-or-category fields (PA: Box 16 compensation, per-spouse loss classes; NJ: the line 15-26 category nets — a category loss is suppressed per the printed rule, and the composer runs the pension-exclusion, Worksheet H deduction-vs-credit, EITC/CTC/CDCC targets itself) — federalAGI is NOT the PA or NJ base. OH starts from federal AGI: pass federalAGI + ohBusinessIncome and the composer runs the Business Income Deduction, MAGI-tiered exemptions, and the Schedule of Credits ordering (retir | Not declared | Not declared | Not declared | Not declared |
determine_dependentDetermine whether ONE candidate person is the taxpayer's § 152 dependent — qualifying child or qualifying relative, including multiple-support agreements and the divorced-parents release — as a proof-backed yes/no with citations. Feed the result into calculate_tax's credits group (qualifyingChildren / otherDependents). | Not declared | Not declared | Not declared | Not declared |
explain_ruleGet a tax rule in full: statutory citation with its verbatim excerpt, validity window, parameters, the formula and applicability guard (the rule IR — rules are data), the rules and facts it depends on, and its content hash. Use to quote and explain the actual law behind an answer. Pass asOf to see only the version in force on that date. | Not declared | Not declared | Not declared | Not declared |
find_tax_cliffsFind exact dollar amounts where one more cent of an input costs MORE than a cent of tax (marginal rate over 100%) — e.g. the EITC investment-income kill switch, CTC phase-out steps. Every probe is a real evaluation. | Not declared | Not declared | Not declared | Not declared |
is_tipped_occupationDetermine whether a job is on the Treasury Tipped Occupation list (Treas. Reg. § 1.224-1, final Apr 2026) for the § 224 'no tax on tips' deduction. Fuzzy-matches the job name; returns the official listing (name, TTC code, category) or a definitive 'not listed'. | Not declared | Not declared | Not declared | Not declared |
list_input_factsDiscover every input the tax corpus understands: id, type, whether required, and its documented default. Call this if unsure what information to collect from the user. | Not declared | Not declared | Not declared | Not declared |
lookup_tax_parameterLook up the current-law dollar amounts behind a question ('standard deduction', 'CTC phase-out threshold', 'tips deduction cap') with their statutory citations and validity windows. Use this to fact-check ANY tax number before stating it — your training data likely predates the OBBBA. | Not declared | Not declared | Not declared | Not declared |
search_tax_rulesFull-text search over the encoded tax-law corpus ('kiddie tax', 'NIIT threshold', 'california renters credit'). Returns matching rules: id, title, statutory citation, effective window, and a verbatim excerpt of the law text. A hit means the engine computes this; zero hits means it is outside the corpus — say so rather than guessing. Follow up with explain_rule for a hit's full formula, or lookup_tax_parameter for its dollar amounts. | Not declared | Not declared | Not declared | Not declared |
verify_factFact-check a claimed dollar amount about tax law ('the 2026 MFJ standard deduction is $32,200', 'CTC is $2,000 per child') against the corpus. Returns verified / refuted (with the correct value and citation) / unknown. Never states a verdict it cannot ground. | Not declared | Not declared | Not declared | Not declared |
verify_tax_claimVerify a claimed tax amount (yours, a user's, or another tool's) against the law. Returns verdict 'verified' or 'refuted' with the correct value. Use this as a self-check before presenting any tax number. Put asOf (and target, if any) INSIDE the facts object — e.g. facts: {..., "asOf": "2025-12-31"} — otherwise the claim is checked under today's law. | Not declared | Not declared | Not declared | Not declared |
Details
- Registry status
- Active
- Published
- Jul 23, 2026
- Updated
- Jul 23, 2026
- Website
- Not given
- Repository
- Not given
- Categories (suggested)
- Finance and paymentsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared