# OpenAccountants MCP server

Open-source AI accounting skills verified by licensed accountants (tax, VAT, payroll).

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-openaccountants-openaccountants
- Repository: https://github.com/openaccountants/openaccountants

## Install
- Endpoint: https://www.openaccountants.com/api/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://www.openaccountants.com/api/mcp

## Tools
- list_skills (List tax & accounting skills) - List published OpenAccountants skills with their quality tier and verification status. Optionally filter by jurisdiction (e.g. 'US', 'MT', 'DE', 'GB'), domain (the accounting area, e.g. 'vat-gst', 'payroll', 'income-tax'), or role ('foundation' | 'compute' | 'orchestrator' | 'reference'). Results are paginated (default 100, max 200 per call) — unfiltered browsing of the full ~1,100-skill catalogue requires paging via offset/next_offset, so jurisdiction/domain filters are strongly recommended. Endpoint: https://www.openaccountants.com/api/mcp
- get_skill (Get a tax skill) - Fetch a published skill by slug, including its current-version markdown, quality tier, named verifier (where accountant-verified), and a provenance/attribution footer. Endpoint: https://www.openaccountants.com/api/mcp
- get_skill_sections (Get a skill's sections) - Fetch the parsed sections of a skill's current version. Each section has a heading and its markdown content. Use this to pull a specific section that get_skill listed in `section_index` as not inlined (e.g. a supplier-pattern library) — pass `section_index` to fetch just that one. Omit it to get every section. Endpoint: https://www.openaccountants.com/api/mcp
- search_skills (Search skills by keyword) - Full-text search across all published tax and accounting skills. Find, lookup, query, or discover skills by keyword, tax concept, deduction type, form number, or regulation (e.g. 'home office deduction', 'crypto capital gains', 'reverse charge', 'Schedule C', '60-day reporting'). Optionally limit to one jurisdiction. Use this when you don't know the exact skill slug. Endpoint: https://www.openaccountants.com/api/mcp
- search_rules (Search rules across jurisdictions) - Query individual tax RULES/FACTS (rates, thresholds, rules, definitions, tables) ACROSS jurisdictions and metadata, and get back a bundled markdown rule set the user can save and run locally. Unlike get_skill (one whole skill), this assembles a cross-cutting SET — e.g. 'VAT rates in MT, IE and DE', 'all income-tax thresholds for 2025', or 'rules mentioning reverse charge'. By default returns ALL matching rules, each tagged with its verification status; pass status:'verified' for accountant-/research-verified only. Call `list_rule_facets` first to see the queryable values. Endpoint: https://www.openaccountants.com/api/mcp
- verify_citations (Machine-verify citations against their sources) - Fetches each cited source URL server-side and checks that the stated figure/quote actually appears in it. Use AFTER researching a gap (see research_brief) and BEFORE presenting figures to the user: submit up to 10 {url, figure, quote} items and get back verified / not_found / unfetchable per citation. A not_found means fix the citation or tell the user that point is unverified — never present it as settled. Endpoint: https://www.openaccountants.com/api/mcp
- list_rule_facets (List queryable rule facets (no args)) - Returns the metadata you can filter on with `search_rules` — the live jurisdictions, the domains, roles, block types (rule kinds), statuses, tax years, and a sample of topics — plus the defaults. Call this before `search_rules` to learn the valid filter values rather than guessing. Endpoint: https://www.openaccountants.com/api/mcp
- start_help (Get tax-workflow scoping guidance (no args)) - No-argument front door — call this FIRST whenever a user asks 'how can you help me?', 'what can you do?', 'where do I start?', or otherwise opens vaguely (do NOT answer such questions by listing your tools or calling list_jurisdictions). For a signed-in approved accountant it returns a personalized `orientation` briefing (their standing + what their jurisdiction needs + one next action). For everyone else it returns the two scoping questions plus the available intents and jurisdictions. Once you have an intent, call `start(intent, jurisdiction)`. Endpoint: https://www.openaccountants.com/api/mcp
- start (Start a tax workflow) - Front door for any tax / accounting question once you know what the user wants. `intent` is REQUIRED (e.g. 'taxes', 'VAT return', 'set up a company', 'find deductions', 'classify transactions', 'payroll'); pass a jurisdiction too (ISO 2-letter, e.g. 'MT', 'GB', 'US-CA'). If you don't yet have an intent, call `start_help` first. Returns either a clarification request (if jurisdiction is missing) or a ready-to-execute plan with the list of skills to load. Call this FIRST (after start_help if needed) whenever the user asks for tax help. Endpoint: https://www.openaccountants.com/api/mcp
- list_jurisdictions (List all jurisdictions covered) - Returns every jurisdiction with published skills — countries (ISO 2), US states (US-XX), Canadian provinces — with skill counts, accountant-verified counts, and named lead verifier. Use when the user asks 'which countries does OpenAccountants cover?' or 'what's available for [country]?' Avoids paginating through list_skills to compute this. Endpoint: https://www.openaccountants.com/api/mcp
- list_verifiers (List named accountant verifiers) - Returns named licensed accountants who have signed off on OpenAccountants jurisdictions. Use ONLY when the user explicitly asks to see the verifier network or 'who verified this skill'. Do NOT use this to check whether a jurisdiction is covered before calling request_accountant_review — just call request_accountant_review directly, it routes to the right person regardless. Endpoint: https://www.openaccountants.com/api/mcp
- get_rates (Get current-year indexed tax rates) - Returns the machine-readable annual rates for a given jurisdiction + tax year. Covers federal brackets, Social Security wage base, retirement plan limits (401(k), IRA, HSA), FEIE cap, gift/estate exemptions, 1099-K thresholds, mileage rates, supplemental wage rates, capital gains brackets, CTC. Currently US federal for tax years 2025 and 2026. Use this when the user asks specific dollar amounts that change yearly (e.g. '2025 401(k) limit', 'this year's Social Security wage base'). Endpoint: https://www.openaccountants.com/api/mcp
- compare_jurisdictions (Compare tax across jurisdictions) - Quick SIDE-BY-SIDE loader. Loads the income-tax skills for 2–5 jurisdictions as independent blocks so the agent can produce a static comparison (effective rates at a given income level, headline differences, entity-choice implications). It does NOT sequence events or bridge treaties. Use for 'should I incorporate in X or Y?', 'compare tax in MT vs IE', or any standalone side-by-side. NOTE: if the person's facts actually INTERACT across borders (a US person abroad, a residence change, a foreign trust/company, an expatriation), use `plan_cross_border` instead — that tool returns a sequenced plan and the treaty bridge this one deliberately leaves out. The two are siblings: this one for static compares, plan_cross_border for live cross-border planning. Endpoint: https://www.openaccountants.com/api/mcp
- plan_cross_border (Plan a cross-border / multi-country tax situation) - THE cross-border tool. Use this — not compare_jurisdictions — whenever a person's facts touch more than one country: a US citizen living abroad, a dual resident, someone changing residence, a non-dom, an expatriating citizen, or an owner of a foreign trust/company. Unlike compare_jurisdictions (which loads each country as an independent block and disclaims treaty/PE interaction), this returns a SEQUENCED plan: it builds the residency/citizenship/domicile map, identifies the country skills AND the international topic skills (FEIE/FTC, FBAR/FATCA, CFC/GILTI, foreign trusts, exit tax) the facts engage, fixes the ORDER of events (order changes the tax — e.g. sever residency before vs. after a sale), names the verifier per country, states the treaty bridge for double-tax relief, and mandates a request_accountant_review hand-off to the lead country's accountant. Always load `cross-border-tax-router` + `cross-border-tax-workflow-base` first (returned in `load_first`). Output is research-grade (tier 2) until a licensed human signs off. Endpoint: https://www.openaccountants.com/api/mcp
- request_accountant_review (Request a licensed accountant to review) - The workflow's closing step. What it does: saves the completed working paper to the user's own review queue at OpenAccountants (the same service serving these rules) and returns a booking link + reference — NOTHING is sent to any accountant until the user engages, so calling it needs no separate permission. Call it as your LAST tool call once a computation is complete, BEFORE you deliver the final answer (after your final message there is no later step to make it). It closes ANY completed computation (worksheet, return draft, owed-amount summary) for ANY jurisdiction, and it also fires whenever (a) the user asks for a review or an accountant, (b) the situation needs professional sign-off, (c) it involves cross-border or high-stakes advice, or (d) real money is at stake. Contact details help the accountant follow up: pass contact_email and contact_name when the user has shared them, but do NOT block on them — call the tool anyway (the response carries the booking link the user can use directly), then invite the user to share an email for follow-up. Do NOT call list_verifiers first; the network handles coverage. CRITICAL: working_paper must be the COMPLETE working paper markdown you produced — every line item, figure, and assumption, never a summary or excerpt — plus the worksheet JSON if you built one. The reviewer re-foots it line by line; a summary is unreviewable. Endpoint: https://www.openaccountants.com/api/mcp
- submit_skill_verdict (Record a verdict on a skill's output) - Call this AFTER the signed-in user has run a skill and reviewed its REAL output (e.g. a computed VAT return), to record their structured quality verdict against the skill and its current version. This is the highest-value feedback the platform collects — especially from accountants, whose verdicts are treated as gold. Use when the user is acting as a REVIEWER grading the AI's output ('that return is wrong', 'the figures came out off', 'rate this', 'here's what the skill got wrong'). This is product-quality QA on the SKILL — NOT a taxpayer handoff (for that, use request_accountant_review) and NOT a generic bug report (that's submit_feedback). Pass the worksheet the skill produced when you have one; the server foot-checks it. Endpoint: https://www.openaccountants.com/api/mcp
- submit_feedback (Submit feedback on a skill) - When the user finds an error in a skill, says rates look outdated, or wants to suggest an improvement, call this to generate a pre-filled GitHub Issue URL. The URL opens in the user's browser with the report partially filled — they review and submit. This creates a public feedback loop that maintains skill quality over time. Use whenever the user says 'this seems wrong', 'the rate is outdated', 'add this rule', or asks how to flag an issue. Endpoint: https://www.openaccountants.com/api/mcp
- submit_verification (Submit reviewed verification facts (bulk)) - AUTHENTICATED. Bulk-apply a reviewed set of facts as the 'submission' JSON (the reviewed rows — Status / Corrected value / Source / Notes filled in), carrying each sheet's slug + base_version_id. It's validated (rows reviewed, known/published skill, base version still live), then applied IN-PROCESS: reconciled by fact_key, judged by an advisory reviewer, and the document is regenerated deterministically from facts — no markdown is rewritten by an LLM and nothing touches a git repo. A skill with a live base applies immediately; the reviewer's pushback comes back as non-blocking `warnings`. For a single fact or a quick spot-fix, prefer submit_fact_verification (no base_version bookkeeping). Requires sign-in and completed onboarding. Endpoint: https://www.openaccountants.com/api/mcp
- list_workflows (List guided tax workflows) - List published OpenAccountants workflows — guided, multi-step procedures (e.g. 'Prepare a Malta VAT return') built from skills. Optionally filter by jurisdiction (e.g. 'MT'), workflow_type ('self-employed' | 'vat' | 'payroll' | 'corporate' | 'cross-border' | 'capital-gains' | 'crypto'), or a free-text query. Paginated. Endpoint: https://www.openaccountants.com/api/mcp
- get_workflow (Get a guided workflow) - Fetch a workflow by slug with its ordered nodes (guided steps) and the skills it's built from. Public callers see published content only; verified accountants/admins also see draft nodes for workflows in their jurisdiction (use this to review before publishing). Endpoint: https://www.openaccountants.com/api/mcp
- inspect_workflow (Inspect a workflow (visual + health)) - Return a VISUAL map (Mermaid flowchart) of a workflow's nodes wired to their skills, colour-coded by health (green = published + wired, yellow = draft, red = unwired or flagged), plus a structural lint: unwired nodes, tier mismatch (tier-1 workflow on unverified skills), wired skills that are unpublished or wrong-jurisdiction, trigger collisions, and empty published workflows. Use before publishing or licensing a workflow. RENDER the `mermaid` field as a diagram for the user, then summarise the findings. Endpoint: https://www.openaccountants.com/api/mcp
- create_workflow (Create a workflow from skills) - Design a NEW guided workflow for a jurisdiction + type, optionally seeding it with the skills it's based on. Creates a DRAFT (not public until publish_workflow). Create-or-adopt: if a workflow for that (jurisdiction, workflow_type) already exists it is returned for editing instead of duplicated. Verified accountants only, in their approved jurisdictions. Endpoint: https://www.openaccountants.com/api/mcp
- update_workflow (Edit workflow metadata) - Update a workflow's title, description, or trigger phrases. Jurisdiction, type, and slug are immutable (create a different workflow instead). Verified accountants (in-jurisdiction) + admins. Endpoint: https://www.openaccountants.com/api/mcp
- add_workflow_skill (Add a skill to a workflow) - Attach a published skill (same jurisdiction) to a workflow's ordered skill set. Recomputes the workflow tier. Verified accountants (in-jurisdiction) + admins. Endpoint: https://www.openaccountants.com/api/mcp
- remove_workflow_skill (Remove a skill from a workflow) - Detach a skill from a workflow's skill set and recompute tier. Verified accountants (in-jurisdiction) + admins. Endpoint: https://www.openaccountants.com/api/mcp
- add_workflow_node (Add a workflow node (step)) - Add a guided step (node) to a workflow. Creates a DRAFT node. Optionally wire it to the skill that performs its computation (skill_slug). Verified accountants (in-jurisdiction) + admins. Endpoint: https://www.openaccountants.com/api/mcp
- update_workflow_node (Edit / implement a workflow node) - Edit a node's content, wire it to a skill (skill_slug), or reorder it (position). Editing a PUBLISHED node returns it to draft until re-published. Verified accountants (in-jurisdiction) + admins. Endpoint: https://www.openaccountants.com/api/mcp
- archive_workflow_node (Archive a workflow node) - Soft-delete a node. Refused if it would leave a published workflow with no published nodes. Verified accountants (in-jurisdiction) + admins. Endpoint: https://www.openaccountants.com/api/mcp
- publish_workflow_node (Publish a workflow node) - Promote a draft node to published (visible on the site). Restricted to the node's creator or an admin. Endpoint: https://www.openaccountants.com/api/mcp
- publish_workflow (Publish a workflow) - Make a workflow live on the site. Preconditions: at least one published node, and every wired skill is published and in the same jurisdiction. Restricted to the workflow's creator or an admin. Endpoint: https://www.openaccountants.com/api/mcp
- start_skill_draft (Start drafting a new skill) - AUTHENTICATED. Begin authoring a BRAND-NEW skill to contribute to the OpenAccountants directory (skills are markdown playbooks that teach an AI agent to do a bounded task with cited rules — they need not be tax/accounting). Pass the user's `intent` in natural language. Returns a ready-to-execute `authoring_prompt`: run it directly — its first step interviews the user for the specifics this skill needs (scope, jurisdiction/domain, the exact rules/computations, and the source for each claim), its second authors `skill.md` following the guidelines. Then call submit_skill. This tool does NOT write the skill and does NOT check for duplicates (the reviewer agent dedups on submit). Requires sign-in and completed onboarding. Endpoint: https://www.openaccountants.com/api/mcp
- submit_skill (Submit a new skill for inclusion) - AUTHENTICATED. Submit an authored `skill_markdown` (the full skill, frontmatter + body) for inclusion in the OpenAccountants directory. It's lint-checked (parseable frontmatter, required sections, well-formed slug not colliding with an existing skill, reasonable size); malformed input is rejected synchronously with the reason. Otherwise the skill is CREATED immediately at Q2 (source-cited draft) and published: the prose is deconstructed into facts so the skill enters the same keyed model as a verified one, and the served document is generated from those facts. There is NO human review gate — you are liable for the skill you author; it's clearly marked unverified until a CPA/EA verifies it to Q1. Requires sign-in and completed onboarding. Endpoint: https://www.openaccountants.com/api/mcp
- retract_skill (Retract a skill you created) - AUTHENTICATED. Unpublish a skill YOU created (e.g. a submit_skill draft you want to take back). Pass the `slug`. It's hidden from the directory immediately; its facts are kept and an admin can re-publish. You can only retract a skill you contributed (admins can retract any). Requires sign-in and completed onboarding. Endpoint: https://www.openaccountants.com/api/mcp
- list_verification_targets (List facts that need your verification) - AUTHENTICATED (approved accountants). Find what needs your review. Call with NO slug for a TRIAGE summary of skills in YOUR approved jurisdiction(s) — each with counts of verified vs. unverified facts, most-unverified first — so you can pick one. Call with a `slug` to get that skill's facts in CHUNKS (default 40) — each fact has a stable `row` number (use it to reference facts in chat) and a `key` (pass to submit_fact_verification). The response includes a `sections` breakdown; for a large skill, review one section at a time by passing `topic`, and page with `offset`. This is the in-chat replacement for exporting a verification workbook. Always scoped to your approved jurisdictions. Endpoint: https://www.openaccountants.com/api/mcp
- submit_fact_verification (Verify or correct a skill's facts) - AUTHENTICATED (approved accountants). Attest or correct one or more individual facts of a skill — directly, no workbook. Pass the skill `slug` and `rows`: one entry per fact you're acting on, each with its `fact_key` (from list_verification_targets) and a `status` — 'correct' (attest as-is), 'needs-correction' (fix the value and/or citation; a `source` is REQUIRED), or 'needs-context' (flag as unsure with a `note`, no fix). Your change applies IMMEDIATELY and the served skill is regenerated from its facts — you carry the liability. An automated reviewer checks each correction; any concern comes back as a non-blocking `warning` and the change STILL applies. Call preview_fact_verification first if you want the reviewer's take before committing. Scoped to your approved jurisdictions. Endpoint: https://www.openaccountants.com/api/mcp
- preview_fact_verification (Preview a fact verification (no write)) - AUTHENTICATED (approved accountants). Dry-run of submit_fact_verification — IDENTICAL arguments, but writes NOTHING. Returns whether the change would apply and any reviewer `warnings`, so you can see the automated reviewer's take (e.g. 'that citation looks like a placeholder') before committing. Then call submit_fact_verification to apply. Endpoint: https://www.openaccountants.com/api/mcp
- list_my_verifications (Your verification history) - AUTHENTICATED (approved accountants). Your OWN recent verification submissions, newest first — each receipt records which skill(s) you touched, whether the change applied, the fact count, the jurisdiction, and the date. Read-only; not scoped to one jurisdiction (you see all your own work). Endpoint: https://www.openaccountants.com/api/mcp

## Resources
Not captured

## Prompts
- skill-review - Load a skill's sections and apply its rules to a specific tax scenario. Arguments: skillSlug, scenario
- tax-return - Complete tax return workflow — intake interview, transaction classification, working paper generation. Arguments: country, tax_year, entity_type
- vat-check - Classify transactions for VAT/GST treatment and produce a VAT return working paper. Arguments: country, period
- find-deductions - Review expenses and identify deductions the taxpayer might be missing. Arguments: country, entity_type
- skill-feedback - Collect structured feedback on a skill after the agent has used it. Arguments: skill_slug, country
- compare-jurisdictions - Compare tax treatment across two or more countries for cross-border planning. Arguments: countries, income, entity_type
- cross-border-intake - THE prompt for any complex multi-country tax situation. Takes the user's messy description and runs a structured 8-step intake: classify the event, identify jurisdictions, ask the right questions, request the right documents, build an issue map per country, produce an advisor-ready brief, route to the lead accountant. Use this — not plan_cross_border directly — when the user's situation is still unstructured (e.g. 'I'm selling my company while moving to Malta'). plan_cross_border is called internally once the facts are gathered. Arguments: situation
- uk-self-employed - Full 6-phase workflow for a UK sole trader / self-employed person. Takes the user's facts and produces a complete SA103 working paper: income, expenses, Class 2 + Class 4 NIC, payments on account schedule, and SA100 income tax computation. Flags the payments-on-account trap (the most common first-year shock), MTD obligations, and the home-office / vehicle method choice. Always routes to the UK verifier at the end. Use this for any UK freelancer, contractor, sole trader, or self-employed person. Arguments: situation, tax_year
- us-schedule-c - Full 6-phase workflow for a US self-employed person / sole proprietor filing Schedule C. Produces a complete working paper: gross income, expense deductions, net profit, SE tax (Schedule SE), QBI deduction (§199A), self-employed health insurance and retirement deductions, and estimated tax schedule. Flags the SE tax surprise (15.3%), the S-corp election threshold, and the home-office exclusive-use test. Use this for any US freelancer, 1099 contractor, gig worker, or sole proprietor. Arguments: situation, tax_year
- south-africa-income-tax - Full 6-phase workflow for a South African individual taxpayer filing an ITR12. Built on the only fully-verified income tax skills in the OA library (za-income-tax + za-provisional-tax, verified by Werner Britz CA(SA)). Produces a complete tax computation: gross income, exempt income, deductions (RA, donations, home office), rebates (primary/secondary/tertiary), medical tax credits, CGT, and provisional tax schedule. Flags the provisional tax penalty trap (Aug/Feb deadlines), travel allowance logbook requirement, and CGT annual exclusion. Always routes to Werner Britz CA(SA). Arguments: situation, tax_year
- portugal-self-employed - Full 6-phase workflow for a Portugal self-employed person (trabalhador independente) under the simplified regime or organised accounting. Covers IRS Modelo 3 / Anexo B, social contributions (TSU), and VAT if registered. Critical flag: NHR/IFICI application deadline (March 31 of year following first tax residence — cannot be backdated). Covers simplified regime coefficients (0.75 for most services), social contributions on 70% of gross, and VAT registration threshold (€14,500). Use for any Portugal freelancer, digital nomad, NHR holder, or self-employed professional. Arguments: situation, tax_year
- uk-capital-gains - Full 6-phase workflow for a UK individual with capital gains to report on SA108. Covers shares (section 104 pool), crypto (HMRC pool-averaging rules — NOT FIFO), residential property (60-day reporting), and other assets. Flags the 30-day bed-and-breakfast matching rule, the rate change from Oct 30 2024 Budget (18%/24% across all assets), the £50k proceeds reporting obligation, and the rate band trap where gains straddle the basic-rate boundary. Use for any UK taxpayer who has sold shares, property, crypto, or other chargeable assets. Arguments: situation, tax_year
- malta-freelancer - Full 6-phase workflow for a Malta self-employed person or part-time freelancer. Critical flag: the TA22 part-time rules 10% flat rate on the first €12,000 of net part-time SE profit (file + pay by 30 April) — if main employment (or pension / full-time study) exists, this saves significant tax vs progressive rates. Covers income tax (progressive or TA22 10% flat — confirm current values against malta-income-tax), SSC Class 2 self-occupied (€51.07/week — the most commonly missed obligation), and VAT (mandatory at €20,000 turnover). Covers both full-time self-employment and part-time side income. Always routes to Michael Cutajar CPA Malta. Arguments: situation, tax_year

## Metadata
- Owner: io.github.openaccountants
- Version: 1.0.0
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: May 20, 2026
- Source: https://registry.modelcontextprotocol.io
