@invaro/opentax 0.1.0 โ 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -0
- package/bundle/http.js +37595 -0
- package/bundle/index.js +36289 -0
- package/bundle/main.js +45281 -0
- package/package.json +16 -14
- package/dist/documents.d.ts +0 -177
- package/dist/documents.d.ts.map +0 -1
- package/dist/documents.js +0 -246
- package/dist/documents.js.map +0 -1
- package/dist/hosted-bundle.d.ts +0 -8
- package/dist/hosted-bundle.d.ts.map +0 -1
- package/dist/hosted-bundle.js +0 -8
- package/dist/hosted-bundle.js.map +0 -1
- package/dist/http.d.ts +0 -15
- package/dist/http.d.ts.map +0 -1
- package/dist/http.js +0 -90
- package/dist/http.js.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -13
- package/dist/index.js.map +0 -1
- package/dist/schema.d.ts +0 -60
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -467
- package/dist/schema.js.map +0 -1
- package/dist/server.d.ts +0 -14
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -509
- package/dist/server.js.map +0 -1
- package/dist/state-return/ca.d.ts +0 -3
- package/dist/state-return/ca.d.ts.map +0 -1
- package/dist/state-return/ca.js +0 -108
- package/dist/state-return/ca.js.map +0 -1
- package/dist/state-return/il.d.ts +0 -3
- package/dist/state-return/il.d.ts.map +0 -1
- package/dist/state-return/il.js +0 -64
- package/dist/state-return/il.js.map +0 -1
- package/dist/state-return/index.d.ts +0 -8
- package/dist/state-return/index.d.ts.map +0 -1
- package/dist/state-return/index.js +0 -38
- package/dist/state-return/index.js.map +0 -1
- package/dist/state-return/money.d.ts +0 -10
- package/dist/state-return/money.d.ts.map +0 -1
- package/dist/state-return/money.js +0 -18
- package/dist/state-return/money.js.map +0 -1
- package/dist/state-return/ny.d.ts +0 -3
- package/dist/state-return/ny.d.ts.map +0 -1
- package/dist/state-return/ny.js +0 -59
- package/dist/state-return/ny.js.map +0 -1
- package/dist/state-return/shape.d.ts +0 -80
- package/dist/state-return/shape.d.ts.map +0 -1
- package/dist/state-return/shape.js +0 -97
- package/dist/state-return/shape.js.map +0 -1
- package/dist/state-return/types.d.ts +0 -17
- package/dist/state-return/types.d.ts.map +0 -1
- package/dist/state-return/types.js +0 -6
- package/dist/state-return/types.js.map +0 -1
- package/dist/state-return/va-worksheets.d.ts +0 -70
- package/dist/state-return/va-worksheets.d.ts.map +0 -1
- package/dist/state-return/va-worksheets.js +0 -116
- package/dist/state-return/va-worksheets.js.map +0 -1
- package/dist/state-return/va.d.ts +0 -3
- package/dist/state-return/va.d.ts.map +0 -1
- package/dist/state-return/va.js +0 -130
- package/dist/state-return/va.js.map +0 -1
- package/dist/state-return.d.ts +0 -4
- package/dist/state-return.d.ts.map +0 -1
- package/dist/state-return.js +0 -3
- package/dist/state-return.js.map +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# @invaro/opentax
|
|
2
|
+
|
|
3
|
+
**The verifiable US tax oracle for AI agents** โ a Model Context Protocol (MCP) server where every answer is computed from a content-addressed corpus of cited tax rules, ships its assumptions, and is independently re-verifiable. Never let a model guess at tax law again.
|
|
4
|
+
|
|
5
|
+
๐ **[opentax.invaro.ai](https://opentax.invaro.ai)** ยท [GitHub](https://github.com/Invaro/opentax-engine) ยท Apache-2.0
|
|
6
|
+
|
|
7
|
+
## Why
|
|
8
|
+
|
|
9
|
+
On [TaxCalcBench](https://github.com/column-tax/tax-calc-bench) TY25, a Claude Sonnet agent using this oracle computes **48/50 complete returns exactly (96%, 98.2% of all lines)** โ versus 58% for the best web-search-equipped frontier model and 6% for the same model unaided. The two remaining cases contain reference-data inconsistencies the engine's line-level reconciliation surfaced ([reported upstream](https://github.com/column-tax/tax-calc-bench/issues/96)).
|
|
10
|
+
|
|
11
|
+
## Use the hosted connector (no install)
|
|
12
|
+
|
|
13
|
+
Paste this URL into Claude.ai (**Settings โ Connectors โ Add custom connector**), ChatGPT, or Cursor:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
https://opentax.invaro.ai/mcp
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Or run it locally (stdio)
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
claude mcp add opentax -- npx -y @invaro/opentax
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Claude Desktop / Cursor config:
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"mcpServers": {
|
|
30
|
+
"opentax": { "command": "npx", "args": ["-y", "@invaro/opentax"] }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The same binary is also the full CLI and the self-hostable connector:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx -y @invaro/opentax eval --status mfj --wages 120000 --kids 2 # terminal CLI
|
|
39
|
+
npx -y @invaro/opentax check --wages 120000 --expect 5746 # verify a claimed number
|
|
40
|
+
npx -y @invaro/opentax lookup standard deduction # citations behind an amount
|
|
41
|
+
npx -y @invaro/opentax mcp-http # self-host /mcp on $PORT
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
One package: run with no arguments from an MCP client and it's the stdio server; give it a command and it's the CLI.
|
|
45
|
+
|
|
46
|
+
## Tools
|
|
47
|
+
|
|
48
|
+
| Tool | What it does |
|
|
49
|
+
|---|---|
|
|
50
|
+
| `calculate_tax` | Any federal target (net tax, AGI, EITC, AMT, SE tax, โฆ) from typed facts |
|
|
51
|
+
| `compute_return` | The full Form 1040 line set from raw document transcriptions (W-2s, 1099-Rs, SSA-1099s) |
|
|
52
|
+
| `compute_state_return` | IL-1040, VA 760, CA 540, NY IT-201 printed-form line sets |
|
|
53
|
+
| `verify_tax_claim` | Gate a claimed number before presenting it: verified / refuted, with the difference |
|
|
54
|
+
| `find_tax_cliffs` | Exact-cent benefit cliffs over an income range |
|
|
55
|
+
| `compare_filing_statuses` | The same facts across all five filing statuses |
|
|
56
|
+
| `list_input_facts`, `explain_rule`, `lookup_tax_parameter` | Discover inputs; read any rule's citation, formula, and validity window |
|
|
57
|
+
| `calculate_business_tax`, `calculate_fiduciary_tax`, `determine_dependent`, `verify_fact`, `is_tipped_occupation` | Form 1120, Form 1041, ยง 152 dependency, proofs, ยง 224 tips |
|
|
58
|
+
|
|
59
|
+
## What "verifiable" means
|
|
60
|
+
|
|
61
|
+
Every computation returns its **assumptions** (documented defaults it relied on), **citations** (statute source, section, URL on every rule), and a **content hash** of the exact rule corpus used (tax years 2025 and 2026, kept current โ e.g. OBBBA amounts, state 2025 legislation). Answers are derivation trees you can re-execute, not model output.
|
|
62
|
+
|
|
63
|
+
The engine refuses rather than guesses: missing facts are named, uncovered situations return "not covered," and dates outside a rule's validity window are errors โ never silent fallbacks to a stale year.
|
|
64
|
+
|