OpenAccountants
REMOTE · WWW.OPENACCOUNTANTS.COM
Open-source AI accounting skills verified by licensed accountants (tax, VAT, payroll).
Available components
Last scanned (13 hours ago)
Scores higher than 97% of remote servers
Unreachable for 1 day in a row. Last reached 4 Nov 2026.
Category Finance and Payments
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security11
- TLS not yet verified: we couldn't open a connection to check the certificate. View diagnostics → Unverified
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS not yet verified: we couldn't read the response headers to check for it. View diagnostics → Unverified
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport check failed: declared streamable-http, but we couldn't connect to verify it. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
- Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 5 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Checks we ran (3)
- HTTPS
- DNSSEC
- Transport
Checks we could not complete (8)
These are gaps on our side, not findings about this hosted endpoint. We only credit what we can confirm, so a category made up entirely of them scores 0.
- TLS certificate in Endpoint SecurityTLS not yet verified: we couldn't open a connection to check the certificate.
- Authorization in Endpoint SecurityAuthorisation not yet verified: we couldn't confirm whether this endpoint requires it.
- HSTS header in Endpoint SecurityHSTS not yet verified: we couldn't read the response headers to check for it.
- Schema quality in Schema Quality & AI Usability (scores 0 for this)Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- Stability in Stability & Change Management (scores 0 for this)Stability not yet verified: not enough scan history yet (needs a 30-day window).
- Tool coverage in Tool Coverage (scores 0 for this)Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- Tool safety in Tool Safety (scores 0 for this)Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- Capabilities in Capabilities (scores 0 for this)Capabilities not yet verified: we couldn't read the endpoint's capabilities.
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 0
- Endpoint reachability: reachable → unreachable ▼ security
- HSTS header: fail → unverified ▼ security
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Authorization: pass → unverified ▼ security
- TLS certificate: pass → unverified ▼ security
- Transport: pass → fail ▼ security
- Schema quality: 100 → unverified ▼ functional
- Capabilities: fail → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- 4 Nov 26 0
- “search_skills” reworded the description of “query” cosmetic
- “start” reworded the description of “intent” cosmetic
2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.
- 26 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “check_audit_exemption” rewrote its description, which is the text the model reads security
- 18 Oct 26 0
- Tool “check_audit_exemption” rewrote its description, which is the text the model reads security
- Tool “get_quote” rewrote its description, which is the text the model reads security
- 17 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “get_skill” rewrote its description, which is the text the model reads security
- Tool “list_jurisdictions” rewrote its description, which is the text the model reads security
- Tool “list_skills” rewrote its description, which is the text the model reads security
- Tool “search_rules” rewrote its description, which is the text the model reads security
- Tool “search_skills” rewrote its description, which is the text the model reads security
- Tool “share_with_openaccountants” rewrote its description, which is the text the model reads security
- Tool “start” rewrote its description, which is the text the model reads security
- “search_skills” reworded the description of “content_type” cosmetic
- “share_with_openaccountants” reworded the description of “skill_slug” cosmetic
- Tool “get_skill” changed its title: Read a tax Guide → Read a tax skill cosmetic
- Tool “get_skill_sections” changed its title: Read more sections of a Guide → Read more sections of a skill cosmetic
- Tool “list_skills” changed its title: Browse tax Guides → Browse tax skills cosmetic
- Tool “search_skills” changed its title: Search tax Guides by topic → Search tax skills by topic cosmetic
- 13 Oct 26 0
- New tool “get_quote” functional
- 10 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “check_audit_exemption” rewrote its description, which is the text the model reads security
- Tool “get_deadlines” rewrote its description, which is the text the model reads security
- Tool “get_skill” rewrote its description, which is the text the model reads security
- Tool “get_skill_sections” rewrote its description, which is the text the model reads security
- Tool “list_jurisdictions” rewrote its description, which is the text the model reads security
- Tool “list_rule_facets” rewrote its description, which is the text the model reads security
- Tool “list_skills” rewrote its description, which is the text the model reads security
- Tool “list_verifiers” rewrote its description, which is the text the model reads security
- Tool “search_rules” rewrote its description, which is the text the model reads security
- Tool “search_skills” rewrote its description, which is the text the model reads security
- Tool “share_with_openaccountants” rewrote its description, which is the text the model reads security
- Tool “start” rewrote its description, which is the text the model reads security
- Tool “start_help” rewrote its description, which is the text the model reads security
- Tool “validate_vat_number” rewrote its description, which is the text the model reads security
- Schema quality: 356 → 306 ▲ functional
- Destructive annotations: 100 → pass functional
- “start” reworded the description of “acting_as” cosmetic
- “start” reworded the description of “intent” cosmetic
- “start” reworded the description of “jurisdiction” cosmetic
- Tool “check_audit_exemption” changed its title: Check statutory audit exemption (deterministic, cited, verified) → Check statutory audit exemption cosmetic
- Tool “get_deadlines” changed its title: Upcoming tax deadlines for a jurisdiction → Tax filing deadlines cosmetic
- Tool “get_skill” changed its title: Get a tax skill → Read a tax Guide cosmetic
- Tool “get_skill_sections” changed its title: Get a skill's sections → Read more sections of a Guide cosmetic
- Tool “list_skills” changed its title: List tax & accounting skills → Browse tax Guides cosmetic
- Tool “search_rules” changed its title: Search rules across jurisdictions → Look up tax rates and rules cosmetic
- Tool “search_skills” changed its title: Search skills by keyword → Search tax Guides by topic cosmetic
- Tool “start” changed its title: Start a tax workflow → Answer a tax question (call first) cosmetic
- Tool “start_help” changed its title: Get tax-workflow scoping guidance (no args) → What can you help with? (no args) cosmetic
- Tool “validate_vat_number” changed its title: Validate a business VAT / tax-ID number (live registry lookup) → Validate an EU VAT number (live VIES lookup) cosmetic
- 4 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://www.openaccountants.com/api/mcp
TLS unreached
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of www.openaccountants.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| com. | DS published | 19718 | 13 | Verified |
| openaccountants.com. | No DS | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Inconclusive
We could not reach the endpoint well enough to judge its authorisation posture.
| Result | Inconclusive |
|---|
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://www.openaccountants.com/api/mcp | Unreachable | ||
| http (plaintext) | http://www.openaccountants.com/api/mcp | HTTPS enforced |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
check_audit_exemption Check statutory audit exemption ~386
Answers 'does my company need an audit?' for a private limited company in Malta (MT, Article 185(2) micro thresholds) or the UK (GB, small-company thresholds before and after 6 April 2025). A deterministic check of turnover, balance sheet total and average employees. Returns 'exempt' | 'review' | 'audit_required' | 'cannot_determine', the per-threshold table, the rule citation, and whether a named accountant has confirmed the thresholds ('draft' = no accountant has confirmed them yet; say which). Pass prior_year figures: most regimes are two-consecutive-year tests, so without them a qualifying year returns 'review'. 'cannot_determine' is a valid outcome (unsupported jurisdiction, wrong currency, a shape needing judgment). Use the determination as returned, not thresholds from memory.
| Name | Type | Req | Description |
|---|---|---|---|
| balance_sheet_total | number | yes | Total assets at the balance sheet date. |
| currency | string | yes | Currency of the figures — must match the regime (EUR for MT, GBP for GB); convert first, never guess a rate. |
| employees_average | number | yes | Average number of employees during the year. |
| entity_type | string | – | Optional. 'private_ltd' (default), 'plc', 'branch'. Non-private shapes route to a human. |
| financial_year_end | string | yes | ISO date the financial year ends, e.g. '2025-12-31'. |
| group_member | boolean | – | Optional. True if the company is part of a group — group thresholds need a reviewer, so this forces 'review'. |
| jurisdiction | string | yes | ISO-style code. MT and GB supported today. |
| prior_year | object | – | Prior-year figures for the two-consecutive-years test. |
| turnover | number | yes | Revenue/turnover for the year, in the jurisdiction's currency. |
| Name | Type | Req | Description |
|---|---|---|---|
| caveats | array | – | – |
| criteria_rule | string|null | – | – |
| determination | string | – | 'exempt' | 'review' | 'audit_required' | 'cannot_determine' |
| escalate | boolean | – | – |
| next_action | string | – | – |
| rule_citation | object|null | – | skill_slug, fact_id, canonical_key, statutory_reference, url. |
| thresholds_applied | array | – | Per-criterion: threshold vs actual, met true/false. |
| verification | object|null | – | status ('accountant_verified'|'research_verified'|'draft'), verified_by[], last_verified_at, skill_slug, era. Surface the status to the user. |
No examples provided.
get_deadlines Tax filing deadlines ~145
Filing and payment deadlines for a country or US state: 'when is my tax return due', 'when do I file VAT', 'when is the next instalment'. Returns upcoming dates and recurring filing rhythms (monthly VAT, quarterly instalments) from the OpenAccountants tax calendar. Signed-in users with a saved home jurisdiction can omit `jurisdiction`; the response marks `jurisdiction_source`.
| Name | Type | Req | Description |
|---|---|---|---|
| horizon_days | integer | – | How far ahead to look (default 120, max 366). |
| jurisdiction | string | – | ISO code, slug, or name ('MT', 'US-CA', 'Malta'). Optional for signed-in users with a saved home jurisdiction. |
| Name | Type | Req | Description |
|---|---|---|---|
| calendar_url | string | – | – |
| horizon_days | integer | – | – |
| jurisdiction | string | yes | – |
| jurisdiction_source | string | – | – |
| next_action | string | – | – |
| recurring_rhythms | array | – | – |
| upcoming_deadlines | array | yes | – |
No examples provided.
get_quote Get an OpenAccountants fee estimate ~252
Call only when the user asks what OpenAccountants charges, requests a quote, or asks whether their current fee is fair. Returns the same published plans, service prices, limits, market exceptions and hourly rate as the website, plus the engagement process and contact details. Match the client's scope to the listed prices; incomplete scope means the total is provisional. Separately quoted services must be confirmed by OpenAccountants. This tool does not create an engagement.
| Name | Type | Req | Description |
|---|---|---|---|
| current_fee | string | – | What they pay today, if they said. Logged; useful for the fairness question. |
| entity_type | string | – | What the client is. Logged. |
| jurisdiction | string | – | The client's country (ISO code or name). Logged so we know where demand is; not used to price. |
| monthly_volume | string | – | One line on size: transactions, orders, staff, channels. Logged, and what you scope the fee on. |
| reason | string | – | One sentence on WHY you're making this call, in the user's terms (for routing analysis only). Optional. |
| services | array | – | What they want, e.g. bookkeeping, vat, payroll, tax_return, year_end, formation, relocation. Logged. |
| Name | Type | Req | Description |
|---|---|---|---|
| booking_url | string | – | – |
| contact_email | string | – | – |
| next_action | string | yes | – |
| price_list | object | yes | – |
| pricing_method | array | yes | – |
| rules | array | yes | – |
No examples provided.
get_skill Read a tax skill ~120
Open a skill by slug (from start, search_skills or search_rules) to answer the user's question. Returns the skill's rules and method, its quality tier, the named accountant where one reviewed it, a `section_index` of sections not inlined, and a provenance footer to keep with the answer.
| Name | Type | Req | Description |
|---|---|---|---|
| reason | string | – | One sentence on WHY you're making this call, in the user's terms (for routing analysis only). Optional. |
| slug | string | yes | Skill slug, e.g. 'us-schedule-c-and-se-computation' |
| Name | Type | Req | Description |
|---|---|---|---|
| current_version | object|null | – | Current version. markdown_content holds the compute-core (rates, box maps, rules, worksheet contract); bulky reference sections may be omitted — see section_index. |
| guardrails | array | – | – |
| key_facts | object | – | Optional at-a-glance facts (rates/thresholds/deadlines/verifier/advisory) — present only where the skill carries a structured key_facts block; omitted otherwise. |
| next_action | string | – | – |
| provenance | object | yes | – |
| required_facts | array | – | Intake skills only: the questions a professional asks before computing, verbatim from the skill. Answer from what the user said or data you hold, then ask the rest grouped, before any figure. |
| section_index | array | – | Every section of the skill with {index, heading, level, chars, priority, included}. For any section with included:false, fetch it via get_skill_sections({slug, section_index}). |
| skill | object | yes | The skill record (slug, name, jurisdiction, tier, etc.) |
| verification | object|null | – | Verification summary |
| written_by | object|null | – | The accountant who wrote this skill ({name, profile_url}), when a named approved accountant authored it; null otherwise. |
No examples provided.
get_skill_sections Read more sections of a skill ~109
Follow-up to get_skill: fetch sections it listed in `section_index` as not inlined (for example a supplier-pattern library). Pass `section_index` for one section, or omit it to get every section with its heading and markdown.
| Name | Type | Req | Description |
|---|---|---|---|
| section_index | integer | – | Optional. Return only this section (matches the `index` from get_skill's `section_index`). |
| section_indices | array | – | Optional. Return only these sections. |
| slug | string | yes | Skill slug |
| Name | Type | Req | Description |
|---|---|---|---|
| guardrails | array | – | – |
| key_facts | object | – | Optional at-a-glance facts — present only where the skill carries a structured key_facts block; omitted otherwise. |
| next_action | string | – | – |
| sections | array | yes | – |
| slug | string | yes | – |
| version | integer|number | – | – |
No examples provided.
list_jurisdictions List all jurisdictions covered ~69
Answers 'which countries do you cover?' or 'what is there for [country]?'. Returns every jurisdiction with published skills (countries as ISO 2, US states as US-XX, Canadian provinces) with skill counts, accountant-reviewed counts and the named lead accountant where there is one.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| jurisdictions | array | – | – |
| next_action | string | – | – |
| total_jurisdictions | integer | – | – |
| total_skills | integer | – | – |
No examples provided.
list_rule_facets List queryable rule facets (no args) ~63
Helper for search_rules: lists the values you can filter on (live jurisdictions, domains, roles, rule kinds, statuses, tax years, a sample of topics) and the defaults. Takes no arguments. Use it when unsure of a filter value rather than guessing.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| defaults | object | – | – |
| filters | array | – | – |
| next_action | string | – | – |
No examples provided.
list_skills Browse tax skills ~266
Browse the skills for one jurisdiction or domain (for example every skill for 'MT', or every 'payroll' skill), each with its quality tier and verification status. For a specific topic, search_skills is quicker. Filter by jurisdiction, domain or role ('foundation' | 'compute' | 'orchestrator' | 'reference'). Paginated (default 100, max 200); page with offset/next_offset.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | (Legacy) display label; prefer domain/role. |
| domain | string | – | Filter by accounting domain: income-tax, vat-gst, payroll, bookkeeping, e-invoicing, formation, financial-statements, transfer-pricing, tax-optimization, crypto, cross-border, corporate-tax, estate-w… |
| jurisdiction | string | – | Filter by jurisdiction code, e.g. 'US', 'MT', 'DE' |
| limit | integer | – | Max skills to return (default 100, max 200). |
| offset | integer | – | Number of skills to skip — use the next_offset from the previous response to page through results (default 0). |
| role | string | – | Filter by pipeline role: foundation, compute, orchestrator, reference. |
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Page size applied to this response. |
| next_action | string | – | – |
| next_offset | integer | – | Present when more results remain — pass as offset to fetch the next page. |
| offset | integer | – | Offset applied to this response. |
| skills | array | yes | Matching published skills. |
| total | integer | – | Total skills matching the filter (across all pages). |
No examples provided.
list_verifiers List named accountant verifiers ~67
Answers 'who reviewed this?' or 'which accountants are behind this?'. Returns the named licensed accountants who have signed off on OpenAccountants jurisdictions, with their credentials and the jurisdictions they cover.
| Name | Type | Req | Description |
|---|---|---|---|
| jurisdiction | string | – | Optional ISO code filter — only return verifiers for this jurisdiction. |
| Name | Type | Req | Description |
|---|---|---|---|
| next_action | string | – | – |
| total | integer | – | – |
| verifiers | array | – | – |
No examples provided.
search_rules Look up tax rates and rules ~460
Look up tax rates, thresholds and rules in one or many jurisdictions, such as 'VAT rates in MT, IE and DE', 'income tax brackets for 2025' or 'rules mentioning reverse charge'. Returns a bundled markdown rule set plus each jurisdiction's official source (`official_source`). For one specific figure in one jurisdiction a skill is often more complete (search_skills then get_skill): a figure can sit in a skill without being a separate rule here, and then this returns related guidance instead. Entries tagged `GUIDANCE` are text, not values. Figures are not certified current: confirm each against `official_source` and prefer it when they disagree. By default returns all matching rules, each tagged with its verification status; status:'verified' excludes draft, needs_update and unsure rules; it still includes research-verified (source-cited) rules, so it does not mean accountant-reviewed. list_rule_facets gives the valid filter values.
| Name | Type | Req | Description |
|---|---|---|---|
| block_types | array | – | Rule kinds to include. Default = all of these (framing prose + workflow steps are excluded). |
| domains | array | – | Accounting domains, e.g. ['vat-gst','income-tax']. See list_rule_facets. |
| jurisdictions | array | – | ISO codes to include, e.g. ['MT','US-CA']. Omit for all jurisdictions. |
| limit | integer | – | Max rules to return (default 200, max 500). |
| offset | integer | – | Pagination offset — pass the previous response's next_offset. |
| reason | string | – | One sentence on WHY you're making this call, in the user's terms (for routing analysis only). Optional. |
| roles | array | – | Skill roles: foundation | compute | orchestrator | reference. |
| status | string | – | Shorthand for `statuses`: 'verified' = accountant- + research-verified only. Default 'all'. |
| statuses | array | – | Verification statuses to include. Default = all (each rule is tagged). |
| tax_year | integer | – | Limit to a tax year, e.g. 2025. |
| text | string | – | Free-text search over each rule's label, value, and citation. |
| topic | string | – | Filter by a fact topic. |
| Name | Type | Req | Description |
|---|---|---|---|
| accountant_verified_count | integer | – | – |
| fact_count | integer | yes | Rules returned on this page. |
| jurisdictions | array | – | – |
| markdown | string | yes | The bundled rule set as markdown — the user saves/runs this locally. |
| next_action | string | – | – |
| next_offset | integer|null | – | – |
| total | integer | – | Total matching rules (across all pages). |
| truncated | boolean | – | – |
No examples provided.
search_skills Search tax skills by topic ~286
Find the skill for a specific tax topic by keyword: a deduction, form, regime or rule such as 'home office deduction', 'Schedule C', 'reverse charge', 'crypto capital gains' or 'Beckham regime'. Optionally limit to one jurisdiction or domain. Returns matching skill slugs to open with get_skill. Set content_type='method' to find step-by-step methods (run them via start), each tagged accountant-reviewed or source-cited.
| Name | Type | Req | Description |
|---|---|---|---|
| content_type | string | – | What kind of skill to find. 'method' = step-by-step procedures you EXECUTE via start() (formerly 'workflows'); 'fact' or omitted = reference material (rates/thresholds/rules). A skill can be either o… |
| domain | string | – | Optional accounting domain to limit the search (e.g. 'vat-gst', 'payroll', 'income-tax', 'crypto'). |
| jurisdiction | string | – | Optional ISO 2-letter country code to limit the search |
| query | string | yes | Search term in English, e.g. 'home office deduction', 'crypto capital gains', 'reverse charge'. If the user wrote in another language, translate it and add the local term, e.g. 'VAT return btw-aangif… |
| Name | Type | Req | Description |
|---|---|---|---|
| human_backing | object|null | – | Named accountant(s) who review this jurisdiction's guidance (guidance-level, not a per-figure sign-off). |
| next_action | string | – | – |
| results | array | yes | – |
| total | integer | yes | – |
No examples provided.
share_with_openaccountants Share this with OpenAccountants ~554
Only when the user asks: sends their feedback, or their request for a person to check or do the work, to OpenAccountants. Two modes. (1) `note`: an anonymized note about the guidance (a gap, a workaround you needed, or via `skill_slug` a bug in a specific skill). Anonymize hard: no names, amounts, or PII. (2) `request_review: true`: the user wants a person at OpenAccountants to check or do the work. Typical requests: 'can an accountant check this?', 'can someone file this for me?', 'can someone do this for me?', 'I want an accountant', 'can I talk to a person?'. A question about whether your own answer is right is not such a request; re-check it yourself. Also requires `working_paper` (complete), `jurisdiction`, `scenario`, and `contact_email`. The request is saved with OpenAccountants and the team is notified; the response returns an OpenAccountants booking link. The call is free. The work itself is paid: OpenAccountants does it through its accountants, with what is done and the fee agreed on the call before anything starts. Never describe the work itself as free. Call at most once per user request; not as a routine closing step.
| Name | Type | Req | Description |
|---|---|---|---|
| contact_email | string | – | Review only, REQUIRED when request_review: the user's email, so OpenAccountants can reply. Ask for it first. |
| contact_name | string | – | Review only: the user's name. |
| jurisdiction | string | – | Review only: ISO code or slug for the user's tax jurisdiction (e.g. 'US-CA'). |
| note | string | yes | Anonymized improvement note: what the guidance covered vs what you added or worked around and why, or a bug in a specific skill. No names, amounts, or PII. |
| request_review | boolean | – | true only when the user has asked for a person (an accountant or OpenAccountants) to check their result, file it or do the work. Requires working_paper + jurisdiction + scenario + contact_email. Omit… |
| scenario | string | – | Review only: brief description of the situation to review. |
| skill_slug | string | – | Optional: set when the note is feedback about a SPECIFIC skill, by its slug (e.g. 'us-sales-tax'). Replaces the old submit_feedback. |
| tax_year | integer | – | Review only: tax year, if relevant. |
| working_paper | string | – | Review only: the COMPLETE working paper markdown — every line item and assumption, not a summary. |
| Name | Type | Req | Description |
|---|---|---|---|
| booking_url | string | – | – |
| message | string | – | – |
| note_recorded | boolean | – | – |
| status | string | – | – |
No examples provided.
start Answer a tax question (call first) ~557
Call this first for any tax, VAT/GST, payroll or filing question about a country or US state, such as "how much tax will I pay in Spain", "do I need to register for VAT", "when is my tax return due", "is this deductible", "how is a freelancer or a company taxed in Germany", "sales tax in Texas" or "what changes if I move to Portugal". Pass the user's question as `intent` and the country or US state as `jurisdiction` ('DE', 'US-TX', 'Florida'). If no place is named, start infers one when the question makes it clear and says so in `jurisdiction_source`. Returns the skills to read next (`skills_to_load`, open each with get_skill), or what is still needed, usually the country. Covers 190+ jurisdictions; where no skill exists yet it returns a research_brief naming the official sources.
| Name | Type | Req | Description |
|---|---|---|---|
| acting_as | string | – | Optional. Who the user is: 'self' = a taxpayer handling their own taxes; 'client' = a professional working on a client's behalf. Infer it from the conversation; omit it if unclear. |
| intent | string | yes | Required. The user's question or goal, in English. If the user wrote in another language, translate it and keep the local tax term in brackets, e.g. 'VAT return for a freelancer (btw-aangifte zzp)',… |
| jurisdiction | string | – | Country or US state: ISO 2-letter code, US state code or name (e.g. 'MT', 'GB', 'US-CA', 'Florida'). Omit if the user named none; start infers it when the question makes it clear. |
| reason | string | – | One sentence, in the user's own words, on what they actually asked for here — captured only to improve routing. E.g. 'user sold ETH and wants to know what to report'. Optional but helpful. |
| taxpayer_type | string | – | The taxpayer's occupation, when known. Some return-prep workflows fork by it (an employee's Form 1040 is a different guide from a freelancer's). Pass it if the conversation already makes it clear; ot… |
| Name | Type | Req | Description |
|---|---|---|---|
| available_intents | array | – | – |
| available_jurisdictions | array | – | – |
| expectations | string | – | – |
| guardrails | array | – | – |
| intent | string | – | – |
| jurisdiction | string | – | – |
| needs | array | – | – |
| next_action | string | – | – |
| skills_to_load | array | – | – |
| status | string | – | – |
No examples provided.
start_help What can you help with? (no args) ~84
Call when the user has no tax question yet and opens with 'what can you do?', 'how can you help me?' or 'where do I start?'. Takes no arguments. Returns the two scoping questions plus the available intents and jurisdictions; for a signed-in approved accountant, a short personal `orientation` briefing instead. Once there is a question, call `start`.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| available_intents | array | – | – |
| available_jurisdictions | array | – | – |
| needs | array | – | – |
| next_action | string | – | – |
| status | string | – | – |
No examples provided.
validate_vat_number Validate an EU VAT number (live VIES lookup) ~232
Check live whether an EU VAT number is valid and registered, for example before applying a B2B reverse charge, zero-rating an intra-EU sale or onboarding a supplier. Queries the European Commission's VIES registry and returns the verdict plus the registered business name and address where the authority discloses them. Coverage: the 27 EU member states plus 'XI' (Northern Ireland); use 'EL' for Greece. Other countries, including the UK, are not supported yet: say live validation is not available there rather than guessing. If the registry is down the response says so.
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | string | – | 2-letter EU member-state code of the VAT number, e.g. 'DE', 'IE', 'FR'. Use 'EL' for Greece and 'XI' for Northern Ireland. May be omitted if the country prefix is already part of vat_number. |
| vat_number | string | yes | The VAT number, with or without the country prefix and spaces, e.g. 'IE6388047V', 'IE 6388047V', or '6388047V'. |
| Name | Type | Req | Description |
|---|---|---|---|
| address | string|null | – | – |
| business_name | string|null | – | – |
| checked_at | string | – | – |
| confirm_available | boolean | – | Always true: if the user asks, the VAT treatment can be sent for checking via share_with_openaccountants with request_review. |
| country_code | string|null | – | – |
| full_vat_id | string | – | – |
| human_backing | object|null | – | Named accountant(s) who review that country's VAT guidance (guidance-level, not a per-figure sign-off). |
| message | string | – | – |
| next_action | string | – | – |
| source | string | – | – |
| source_url | string | – | – |
| summary | string | – | – |
| valid | boolean|null | – | true/false verdict from VIES, or null if the service could not be reached (an availability issue, not a verdict). |
| vat_number | string | – | – |
| vies_error | string | – | – |
No examples provided.
How do I install the OpenAccountants MCP server?
OpenAccountants is a hosted endpoint at https://www.openaccountants.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · www.openaccountants.com
claude mcp add --transport http openaccountants-openaccountants 'https://www.openaccountants.com/api/mcp'
What is the OpenAccountants MCP server?
OpenAccountants is an MCP server listed in the public MCP registry as io.github.openaccountants/openaccountants. Open-source AI accounting skills verified by licensed accountants (tax, VAT, payroll). This page covers its hosted endpoint (https://www.openaccountants.com/api/mcp).
Is the OpenAccountants MCP server safe to use?
OpenAccountants scores 89 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the OpenAccountants MCP server expose?
OpenAccountants exposes 15 tools: start, search_skills, get_skill, search_rules, list_skills, and 10 more. Their descriptions and schemas cost roughly 3,650 tokens of context every time the server is loaded.
Does the OpenAccountants MCP server require authentication?
Its publisher declares no required credentials for OpenAccountants. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.
Is the OpenAccountants MCP server still maintained?
OpenAccountants is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the OpenAccountants MCP server?
VerifyMCP ran 3 checks on OpenAccountants, covering HTTPS, DNSSEC and Transport. 8 items could not be completed, a gap on our side rather than a finding about OpenAccountants: TLS certificate, Authorization, HSTS header, Schema quality and 4 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.