OpenAccountants

Open-source tax skills for AI across 134 countries — VAT/GST, income tax, social contributions. pip install openaccountants-mcp

OpenAccountants

Open-source tax computation skills for AI. 371 skills across 134 countries.

Upload to Claude, ChatGPT, or any LLM with your bank statement — or connect via MCP so your AI loads the right country's tax skills automatically. Get a working paper ready for your accountant and cut your accounting bill by 80%.

Your accountant charges by the hour. Most of that time is classifying transactions and filling forms. These skills do that work before the meeting. Your accountant reviews and signs off in 20 minutes instead of 3 hours.

Website: openaccountants.com

Two ways to use OpenAccountants

MethodHow it worksBest for
Manual uploadDownload your country's folder, drag .md files into Claude / ChatGPT / any LLMQuick one-off use, any LLM
MCP serverInstall once, add one line of config — your AI discovers and fetches skills automatically, every conversationDevelopers, power users, Claude Desktop / Cursor

Both methods use the same skill files. MCP just removes the manual step. See Quick start for uploads or MCP server for the automated path.

Known limitations

Read this before you trust any output.

  • LLMs hallucinate and misread. These files steer the model; they do not guarantee correct numbers, classifications, or filings. Always have a qualified professional review before you act.
  • Tax law changes. Rates, thresholds, and forms go out of date. The repo is a snapshot; openaccountants.com may be ahead of what you cloned.
  • Verification is tiered, not binary. Most skills are not “battle-tested by a practitioner on real client data.” We publish Q1–Q5 tiers: Q1 is the bar for that; Q2 is research-verified to authority sites but not yet proven on real statements; Q3 is AI-drafted with citations but not independently verified. Many skills are Q3 or below — check the tier for the file you use.
  • Coverage is uneven. Only eight countries ship the full guided stack (VAT + income tax + SSC + walkthrough) in this repo; dozens more have multiple skills without that guided path; many jurisdictions are VAT/GST-only or partial. See Coverage below and each country folder’s README.

Honesty is the point: if you know where the gaps are, you can use the project safely. Skeptics welcome.


Quick start (60 seconds)

1. Find your country

Most countries (130+): everything you need is in one place under packages/. Upload every file in that folder.

packages/
├── malta/           ← 9 files (VAT + income tax + SSC + guided intake)
├── uk/              ← 8 files
├── germany/         ← 7 files
├── australia/       ← 9 files
├── canada/          ← 12 files
├── india/           ← 7 files
├── spain/           ← 7 files
├── ... 126 more countries

United States: there is no packages/us/ folder. US tax work is split across modular skills under skills/ (federal forms, orchestrators that sequence them, and per-state sales tax). That matches how US compliance layers (federal vs 50 states) rather than a single “country bundle” like Malta.

What you needWhere it lives
Federal workflow base (how the AI should work)skills/foundation/us-tax-workflow-base.md
Federal content (Schedule C/SE, QBI, estimated tax, bookkeeping, etc.)skills/federal/ — upload all .md files here
Orchestration (intake, return assembly, cross-form checks)skills/orchestrator/ — include the us-*.md files that match your situation (e.g. us-federal-return-assembly.md; California freelancers also use us-ca-*.md)
State sales / use taxskills/us-states/ — pick your state folder and add those .md files if sales tax applies
Selected states with extra local filesskills/florida/, skills/texas/, skills/newyork/, skills/washington/ when relevant

For a typical US freelance federal return, start with us-tax-workflow-base.md, everything in skills/federal/, and the us-*.md files in skills/orchestrator/ your case needs; add state pieces only if they apply.

Contributors: international packages are generated from skills/international/ via scripts/build-packages.py. US skills are edited directly under skills/ until a single generated US package exists.

2. Upload to your LLM

International: open the folder for your country under packages/. Upload all .md files.

United States: collect the .md files from the paths in the table above (same workflow below).

Upload to:

  • Claude.ai → Create a Project, add files as Project Knowledge
  • ChatGPT → Attach files to a conversation or create a Custom GPT
  • Any other LLM → Attach or paste the files

3. Attach your bank statement and go

Say:

Help me with my 2025 taxes. Here's my bank statement.

The AI will ask a few questions, classify every transaction, and produce a working paper for your accountant.


What's in each package

Every country folder contains:

FileWhat it doesSame everywhere?
foundation.mdTells the AI HOW to work — conservative defaults, output format, classification contractYes
intake.mdOnboarding questions, refusal checks, document inferenceYes (country name filled in)
[country]-vat.mdVAT/GST/sales tax rules, supplier pattern library, form mappingsNo — country-specific
[country]-income-tax.mdIncome tax brackets, deductions, transaction patternsNo — country-specific
[country]-ssc.mdSocial security / pension contributionsNo — country-specific
[country]-guided-intake.mdFull guided experience with detailed inference (if available)No — 8 countries have this
[country]-return-assembly.mdCross-checks between VAT, IT, and SSC (if available)No — 8 countries have this

Not every country has every file. Some have only VAT. Some have VAT + income tax + SSC. Eight countries have the full guided experience. Check the README inside each country folder.


Coverage

Full guided experience (8 countries)

Upload all files, say "help me with my taxes," and the AI walks you through everything:

CountryWhat you get
MaltaVAT + TA24 income tax + Class 2 SSC + provisional tax
United KingdomVAT100 + SA103/SA100 + NIC + student loan
GermanyUStVA + Einkommensteuer + Sozialversicherung
AustraliaBAS + ITR + super + Medicare levy
CanadaGST/HST + T1/T2125 + CPP/EI
IndiaGST + ITR-3/4 + advance tax
SpainIVA + IRPF + RETA
United States (CA)1040 + Schedule C/SE + CA 540

Multi-skill countries (27 countries)

VAT + income tax + social contributions. No guided intake, but the AI uses the universal intake flow:

Austria, Belgium, Brazil, Chile, Colombia, Czech Republic, Denmark, France, Greece, Hungary, Ireland, Italy, Japan, Kenya, Mexico, Netherlands, New Zealand, Nigeria, Norway, Poland, Portugal, Romania, Singapore, South Africa, South Korea, Sweden, Switzerland

VAT/GST only (99 countries)

Consumption tax classification with country-specific supplier pattern libraries. From Albania to Zimbabwe.


How the skills work

The supplier pattern library

Every country skill contains a lookup table of local vendors. When the AI sees "BANK OF VALLETTA" or "DEUTSCHE TELEKOM" or "STRIPE PAYMENTS UK LTD" on your bank statement, it already knows the classification — no guessing.

Three outcomes per transaction

OutcomeWhat it meansWhat happens
ClassifiedDocuments carry enough infoApplied automatically, no flag
AssumedData missing, conservative default appliedFlagged for your reviewer with the assumption disclosed
Needs InputCan't proceed without asking youOne targeted question

Conservative defaults

When uncertain, the system always assumes MORE tax, never less. Your accountant can override a conservative position. They can't easily undo an aggressive one.


Quality tiers

Skills are partially verified at best unless you confirm the tier. Q1 means practitioner sign-off on real data; most files are not Q1. Full definitions (including Q4/Q5): docs/QUALITY-TIERS.md.

TierWhat it means
Q1 — Battle-testedRun against real bank statements. Multiple iterations. Practitioner signed off.
Q2 — Research-verifiedEvery rate verified against tax authority websites. Not yet tested on real data.
Q3 — AI-draftedFull structure and citations. Not independently verified.

MCP server

Instead of uploading files by hand, connect your AI client to OpenAccountants via the Model Context Protocol. Install once, configure once — every future conversation can pull the right country's skills automatically.

How it works

You:    "Help me with my Malta taxes. Here's my bank statement."
          ↓
Claude: calls list_jurisdictions → sees "malta"
Claude: calls list_files("malta") → foundation.md, malta-vat.md, …
Claude: calls get_file("malta", "foundation.md") → full skill loaded
          ↓
Claude: processes your bank statement with the correct tax rules

Install

git clone https://github.com/openaccountants/openaccountants.git
cd openaccountants
pip install ./mcp          # requires Python 3.10+

Connect

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "openaccountants": {
      "command": "openaccountants-mcp"
    }
  }
}

Cursor — add to .cursor/mcp.json or via Settings > MCP:

{
  "mcpServers": {
    "openaccountants": {
      "command": "openaccountants-mcp"
    }
  }
}

Full setup details, uv instructions, and environment variables: mcp/README.md.


For developers

Clone the repo

git clone https://github.com/openaccountants/openaccountants.git

Repo structure

openaccountants/
├── packages/              ← Ready-to-use jurisdiction packages (START HERE for non-US)
│   ├── malta/
│   ├── uk/
│   ├── germany/
│   └── ... 130 more
├── skills/                ← Source files (for contributors); START HERE for United States
│   ├── foundation/        ← Universal workflow base + us-tax-workflow-base.md
│   ├── federal/           ← US federal income tax / Schedule C / SE / QBI / etc.
│   ├── international/     ← Country-specific content (feeds build-packages.py)
│   ├── orchestrator/      ← Intake + assembly (incl. us-federal-return-assembly, us-ca-*)
│   ├── us-states/         ← US state sales & use tax skills
│   ├── cross-border/      ← Reverse charge, WHT, PE risk
│   ├── intelligence/      ← Deadlines, thresholds, optimisation
│   └── patterns/          ← Global vendor patterns
├── scripts/               ← Build tools
│   └── build-packages.py  ← Generates packages/ from skills/
└── docs/                  ← Planning docs, architecture, roadmaps

Rebuild packages after editing skills

python3 scripts/build-packages.py

Contribute

Your country needs you

These countries have AI-drafted skills (Q3) waiting for a human to verify the rates. No tax expertise required — if you can check your tax authority's website, you can help. Pick yours:

CountryWhat needs checkingIssue
FranceVAT, income tax, social contributions#4
ItalyVAT, income tax, INPS contributions#5
NetherlandsVAT, income tax#6
BrazilVAT, income tax, INSS, Simples Nacional#7
JapanConsumption tax#8
MexicoIVA#9
South KoreaVAT#10
IrelandVAT, income tax, PRSI#11
SwitzerlandVAT#12
SingaporeGST#13
NigeriaVAT#14
South AfricaVAT#15
PolandVAT, ZUS contributions#16
BelgiumVAT#17
SwedenVAT#18

Don't see your country? Open an issue and we'll create one.

Think your country's skill is wrong? Prove it.

Use Claude's deep research to verify rates against your tax authority's website. If you find an error — and you will — submit a PR. We've found errors in every single country we've verified. Yours probably has some too.

Prompt for deep research:
"Search [your country] tax authority website for the current VAT/GST rate,
registration threshold, and filing deadline. Compare against this skill file."

Build a skill for your country

Most countries have VAT but no income tax skill. Here's how to add one:

  1. Open any existing income tax skill (e.g., skills/international/malta/malta-income-tax.md)
  2. Follow the same structure — quick reference, transaction pattern library, tier 1/tier 2 rules
  3. Add your country's local bank patterns (how do transactions appear on YOUR bank statement?)
  4. Submit a PR — your name goes on the skill as the author
  5. An accountant verifies it → it goes live on openaccountants.com

Improve the supplier pattern library

Know how your local bank formats statements? Know what "ENERGA SA" or "COUPANG" looks like on a bank CSV? That one line you add saves every user in your country from a misclassification.

Get credited

Every skill you write, verify, or improve — your name is on it publicly. Contributors build a profile at openaccountants.com.

See CONTRIBUTING.md for the full guide.

Pull requests: contributions are accepted under the Contributor License Agreement (CLA.md). You explicitly agree by ticking the CLA box in the pull request template when you open a PR.


Disclaimer

All skills and outputs are for informational and computational purposes only. Not tax advice. Not a replacement for professional judgment. All outputs must be reviewed by a qualified professional before filing.

The most up-to-date, verified version is maintained at openaccountants.com.

Contact

[email protected]

License

Dual-licensed: AGPL-3.0 for open-source use, commercial license for proprietary products.

Contributions are licensed to the project under the Contributor License Agreement; see CONTRIBUTING.md and the PR template for how you opt in.

Related Servers

NotebookLM Web Importer

Import web pages and YouTube videos to NotebookLM with one click. Trusted by 200,000+ users.

Install Chrome Extension