Skip to main content
Glama
OpenAccountants

OpenAccountants

Official

OpenAccountants

Open tax skills for AI. Your AI answers tax questions from memory. Add these skills and it answers from the law: every rate, threshold and deadline cited to its official source, for 190+ jurisdictions.

License: AGPL-3.0 PyPI GitHub stars

2,132 AI skills across 249 jurisdictions · 33 accountant-reviewed · 39 named accountants · 6,115 questions answered through connected AIs

Live from openaccountants.com — updated 2026-10-30 by the nightly sync.


Find your country

Browse all countries, by region, with the state of each pack. United States: federal and states.


Related MCP server: calcfi-mcp

Add to your AI

Add this address to Claude, ChatGPT, Cursor, Windsurf or any AI that takes a connector:

https://www.openaccountants.com/api/mcp

Guided setup: openaccountants.com/connect

Then ask a question your AI would otherwise guess at:

"What's the combined sales tax rate in Manatee County, Florida for 2026?"

  • pip MCP server: pip install openaccountants-mcp (mirrors this repo's packages/)

  • Manual: download your jurisdiction's folder from packages/ and upload the files to your AI. Start with your country's main package; index.json is the machine-readable inventory.

Also listed on Smithery and the MCP Registry.


Contribute

Three ways in, all in CONTRIBUTING.md:

  • I can write. Take a country and write its missing skills from the law.

  • I am an accountant. Review a skill and put your name on it.

  • I found a mistake. Open an issue with the source that shows it.


How to read a skill

Every skill shows Built from the law. An approved accountant publishing their own professional work is also its approver; they record their own approval in the original PR. No second accountant or separate approval PR is required. Skill content is source-available under the terms in LICENSING.md.

Each skill has one approval status:

State

Meaning

Approved by [name]

The accountant's approval is recorded with tier: 1, reviewed_by and reviewed_on. The website resolves that name to a current approved accountant account.

Not yet approved

No named accountant approval is recorded. Independent source checking before merge is separate from professional approval.

The definitions: docs/QUALITY-TIERS.md. How skills are built, checked and corrected: docs/ACCURACY-METHODOLOGY.md. Which number to quote and where it is measured: docs/COVERAGE.md.

⚠️ General reference, not advice. Skills may be incomplete, outdated, or wrong for your facts. Have a qualified professional review outputs before filing, payment, or action.


Need the work done?

OpenAccountants also does the bookkeeping, VAT, payroll and tax work for businesses, in the countries they work in. Talk to us. The skills and the AI connection stay free.


How it stays accurate

A tax library is only as good as its worst stale number, so machines re-check this one every night:

  • The maths check re-reads every skill and flags sums that do not add up, tax bands with gaps, totals that do not total, and years that disagree.

  • The source watch visits the official pages the figures came from and raises a hand when a page changes.

  • The refresh engine re-derives the stalest skills from official sources on a fixed monthly budget, refusing to publish any figure without a link.

  • The nightly exam tests whether AIs actually said what the skills say that day, or improvised. Improvisation gets caught, counted and fixed at the source.

GitHub is the source of truth for skill documents. Merged PRs are delivered to the platform and checked against the published content. Generated packages and indexes are refreshed by the scheduled sync. A merge alone does not prove that a skill is live.

The whole story, in plain words: openaccountants.com/how-it-works


For developers

What

Where

Skill source (per jurisdiction)

skills/

Per-country bundles (generated)

packages/

Machine-readable inventory

index.json

LLM entry point

llms.txt

Python MCP server

mcp/ · PyPI

Repo architecture + sync

docs/REPO-LAYOUT.md · docs/WEBSITE-SYNC.md

API and platform integrations: openaccountants.com/for-developers


Independent, open-source review aids and calculation tools that complement the OpenAccountants skill library:

  • payday-super-checker (Apache-2.0): Verifies superannuation contributions against Australian Payday Super deadlines (in force since 1 July 2026) and estimates SG charge exposure on late payments, with all workings and statutory assumptions disclosed.

  • div7a-loan-review (Apache-2.0): Reviews Division 7A loan terms and minimum yearly repayments against the ATO benchmark interest rate, with fabricated inputs and explicit refusal boundaries.

  • xero-trial-balance-export (Apache-2.0): Exports a Xero trial balance to CSV only when month-movement and YTD column pairs both balance exactly.

  • ato-benchmark-compare (Apache-2.0): Evaluates business P&L statements locally against the Australian Taxation Office (ATO) small business performance benchmarks, surfacing variance flags and ratio analyses.

  • OsaBooks (AGPL-3.0): Free bookkeeping for businesses, rental properties and households in Australia, New Zealand, South Korea and the United States, with Xero and QuickBooks imports. Use it as a standard bookkeeping platform, or with several AI features: coding suggestions, year-end checks against the OpenAccountants guides, and an MCP connector so Claude, ChatGPT or another AI app can read your books. Runs on your own computer or online on your own Supabase. Home page and demo.

(External tools provide computational review assistance and do not constitute tax or legal advice.)


License

Contact: info@openaccountants.com · Security policy · Cite this repo

Available Tools

6 tools
get_skillA
Read-only
Inspect

Fetch a skill's full markdown plus a provenance/attribution footer.

Args: slug: Skill slug exactly as returned by list_skills (e.g. "malta-income-tax").

NameRequiredDescriptionDefault
slugYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds that the response bundles a provenance/attribution footer, which is useful behavioral context, but says nothing about size limits, missing-slug errors, or truncation of long markdown.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short pieces with zero waste; the core action and payload are front-loaded before the Args block. The example slug earns its place by disambiguating format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the readOnly annotations cover safety; the description supplies the identification and sourcing of the input. Only the absence of any sibling routing keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the load, and it does: the single slug parameter is explained as coming verbatim from list_skills with a concrete example ('malta-income-tax'). That is meaningfully more than the bare string type in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetch) and resource (a skill's full markdown) plus the secondary payload, a provenance/attribution footer. 'Full markdown' also implicitly separates it from get_skill_sections, though that sibling is never named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the slug must come from list_skills, which hints at the discovery-then-fetch workflow. There is no explicit guidance on when to prefer get_skill over get_skill_sections or search_skills.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_skill_sectionsA
Read-only
Inspect

Fetch a skill parsed into sections (heading + content + level).

Args: slug: Skill slug (e.g. "malta-income-tax").

NameRequiredDescriptionDefault
slugYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the structure of the parsed result but says nothing about behavior an agent could trip over: what happens with an unknown slug, whether sections are ordered, or whether content is truncated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core capability is front-loaded in the first clause, with the return shape in parentheses and the argument note after. It is tight and free of filler, though the Args block largely duplicates what the schema already states.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one required parameter, existing output schema, and annotations covering safety, the description covers what the tool returns and how to identify the target skill. The missing piece is the routing decision against its four sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the slug definition, and it does: it identifies it as a skill slug and supplies a concrete example ("malta-income-tax"). It stops short of saying where a valid slug comes from, which would have closed the loop with list_skills.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ("Fetch a skill parsed into sections") and clarifies the output shape as heading + content + level. It distinguishes the tool implicitly from get_skill by emphasizing the section-parsed form, but never names the sibling it differs from, so the differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and none of the plausible alternatives (get_skill, list_skills, search_skills) are mentioned. An agent can infer that this is the section-structured read rather than the flat read, but the choice must be guessed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_skillsA
Read-only
Inspect

List published skills with their quality tier and verifier.

Args: jurisdiction: Optional jurisdiction code filter, e.g. "MT", "GB", "US-CA". category: Optional category filter, e.g. "international".

Returns: {"skills": [...], "total": n}.

NameRequiredDescriptionDefault
categoryNo
jurisdictionNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real context beyond that: only published skills are returned, and each entry carries quality tier and verifier. It does not mention ordering or whether the list is truncated, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short blocks — summary, Args, Returns — with no filler, and the core purpose is front-loaded in the first sentence. The Returns line partly duplicates the output schema, but it is one line and aids scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-filter read tool with an output schema already defined, the description covers purpose, filter formats, and the result keys an agent needs. Gaps are minor: no ordering, no indication of whether results are paginated despite the total count.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden, and it delivers format examples for both parameters (jurisdiction codes like "MT", "GB", "US-CA"; category like "international"). That is meaningfully beyond the bare string|null schema, though it does not say whether matching is exact or prefix-based.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("List published skills") plus the payload fields it surfaces (quality tier and verifier). It does not, however, distinguish itself from the sibling search_skills or get_skill, so an agent must infer the boundary between listing and searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word "Optional" on both filters implies the default is an unfiltered listing of all published skills, which is a usable cue. But there is no explicit guidance on when to choose this over search_skills, nor any note about prerequisites or result limits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_skillsA
Read-only
Inspect

Search skills by keyword across their markdown content.

Args: query: Search term, e.g. "home office deduction", "reverse charge". jurisdiction: Optional jurisdiction code to limit the search.

Returns: {"results": [...], "returned": n, "truncated": bool, "limit": n, "unreadable_skipped": n, "unreadable_slugs": [...]} — each result has slug, title, jurisdiction, matched_section and snippet.

``returned`` is exactly ``len(results)``. ``total`` is retained as a
backwards-compatible alias of ``returned`` for callers that already
consume it; like ``returned``, it is the count of returned matches, not
a corpus-wide figure, because counting the rest would mean reading
every skill body. ``truncated`` says more matches exist beyond
``limit``; ``unreadable_skipped`` says how many skills could not be
read at all, so a caller can tell an incomplete answer from a complete
one.
NameRequiredDescriptionDefault
queryYes
jurisdictionNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/openWorldHint annotations, the description discloses non-obvious behavior: truncation semantics, the fact that 'total'/'returned' are counts of returned matches rather than corpus-wide totals (because counting everything would require reading every skill), and that unreadable skills are skipped and enumerated so the caller can distinguish a partial from a complete answer. This is exactly the kind of operational context annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in a single sentence, followed by well-organized Args and Returns blocks. The paragraph explaining the 'total' backwards-compatible alias is longer than necessary and discusses a field that is not even listed in the documented result envelope, costing some economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter search tool with an output schema already present, the definition supplies more than enough to call it correctly, including result-field meanings the output schema alone would not explain. The one real gap is the unspecified format of jurisdiction codes, which an agent cannot infer from either the schema or the text.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden, and it does: query is clarified with concrete example terms and jurisdiction is explained as an optional limiting filter. It stops short of 5 because no valid jurisdiction code format or examples are given, leaving ambiguity about what values are accepted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — 'Search skills by keyword across their markdown content' — which is clearly distinguishable from the sibling get_skill (single fetch), list_skills (enumeration) and get_skill_sections (structural retrieval). It does not explicitly name those alternatives, which is the only thing keeping it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the keyword-search framing signals when this tool is appropriate versus the retrieval siblings, but there is no explicit 'use this when...' statement and no exclusion guidance. The jurisdiction parameter's filtering role is mentioned without saying when to supply it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

startA
Read-only
Inspect

Begin a guided session. Ask scoping questions, recommend the skills to load.

Use this as the first call when a user asks for help with anything tax, accounting, or formation-related. It maps the user's intent onto the catalogue, narrows by jurisdiction, and returns either a clarification question or a ready-to-execute plan (which skills to get_skill, what flow to follow, what guardrails to obey).

Args: intent: Free-form description of what the user wants (e.g. "taxes", "VAT return", "set up a company"). jurisdiction: ISO-style jurisdiction code (e.g. "MT", "GB", "US-CA").

Returns: One of three shapes keyed by status:

- ``"needs_input"``    — missing one or both inputs; ``needs`` lists which.
- ``"needs_clarification"`` — intent provided but ambiguous; pick from ``candidates``.
- ``"ready"``          — plan ready: ``skills_to_load``, ``expectations``,
                         ``next_action``, ``guardrails``.
NameRequiredDescriptionDefault
intentNo
jurisdictionNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds meaningful behavior beyond that: it narrows by jurisdiction, asks clarifying questions rather than guessing, and returns one of three status-keyed shapes including guardrails to obey. Missing only things like whether state persists across calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The lead sentence and the 'first call' routing statement are front-loaded, and the Args/Returns blocks are scannable. Some docstring scaffolding ('Args:', 'Returns:') is boilerplate, but the return-shape enumeration earns its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-optional-parameter entry-point tool, the description covers purpose, trigger, parameter meaning, and the three possible response statuses with their key fields. An agent has everything needed to call it and to interpret the outcome without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden, and it does add real meaning with free-form intent examples ('taxes', 'VAT return', 'set up a company') and ISO-style jurisdiction codes ('MT', 'GB', 'US-CA'). However, it never says both parameters are optional or what happens when they are omitted, which is the key semantic the bare anyOf/null schema does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Begin a guided session') and then spells out the concrete outputs (scoping questions, skill recommendations, plan). It distinguishes itself from siblings by explaining that it decides which skills to 'get_skill', so an agent can tell it apart from get_skill or list_skills without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit trigger ('Use this as the **first** call when a user asks for help with anything tax, accounting, or formation-related'), which is strong when-to-use guidance. It does not state when *not* to use it or name an alternative for non-domain requests, so it falls just short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_feedbackA
Read-only
Inspect

Build a pre-filled GitHub New Issue URL the user opens to submit feedback.

The tool does not post to GitHub — it constructs the URL so the user reviews + submits themselves under their own GitHub account (no server-side credentials, no abuse vector, attribution preserved).

Use this whenever a user shares feedback worth capturing — bug reports, skill inaccuracies, missing jurisdictions, suggested improvements. Pair with the skill-feedback prompt for guided skill feedback.

Args: summary: The feedback narrative (markdown is fine). Required. title: Optional explicit issue title. Auto-generated if omitted. skill_slug: Optional slug when feedback targets a specific skill. When set, adds the skill-feedback label. jurisdiction: Optional jurisdiction code (e.g. "MT", "US-CA"). rating: Optional accuracy/quality rating 1-5.

Returns: {"github_url", "title", "body", "labels", "next_action"}. Surface the URL to the user; they open it, review, sign in if needed, and click Submit new issue.

NameRequiredDescriptionDefault
titleNo
ratingNo
summaryYes
skill_slugNo
jurisdictionNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark it readOnlyHint=true and openWorldHint=false, and the description supports that without contradiction: the tool only constructs a URL and never contacts GitHub. Beyond the annotations it discloses the crucial out-of-band behavior — the user must review, sign in under their own account, and click Submit — plus the absence of server-side credentials and preserved attribution. That two-step, human-in-the-loop nature is exactly what an agent could not infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The lead sentence front-loads the key fact and the Args block is dense and scannable with no filler. The Returns block largely restates the existing output schema, which is the only real redundancy; trimming it to a one-line pointer would tighten the definition without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter tool with an output schema and safety annotations, everything an agent needs is present: purpose, trigger conditions, per-parameter meaning, the non-posting behavior, and the required follow-up action of surfacing the URL to the user. Nothing material is left ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does so: summary is required and accepts markdown, title is auto-generated when omitted, skill_slug adds the `skill-feedback` label when set, jurisdiction takes codes like "MT"/"US-CA", and rating is bounded 1-5 — a constraint absent from the schema. Every parameter gains meaning beyond its bare type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb and artifact: 'Build a pre-filled GitHub New Issue URL.' It immediately rules out the misreading that it posts to GitHub, which is the one confusion an agent could plausibly have. No sibling tool does anything similar, so no differentiation is needed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit trigger conditions with concrete examples (bug reports, skill inaccuracies, missing jurisdictions, suggested improvements) and names a companion prompt (`skill-feedback`) for the guided case. It does not state when *not* to use it or contrast with any alternative, but the sibling set contains no competing feedback path, so the practical risk is low.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv2.3.0
    • Removedget_file
    • Addedget_skill
    • Addedget_skill_sections
    • Removedlist_files
    • Removedlist_jurisdictions
    • Addedlist_skills
    • Addedsearch_skills
    • Addedstart
    • Addedsubmit_feedback
  2. 3 tool updatesv2.0.0
    • Addedget_file
    • Addedlist_files
    • Addedlist_jurisdictions

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation4/5

The six tools have largely distinct purposes: discovery (list/search), retrieval (get_skill/get_skill_sections), guidance (start), and feedback. The only mild overlap is between get_skill (full markdown) and get_skill_sections (parsed sections), but their descriptions make the distinction clear.

Naming Consistency4/5

Most tools follow a predictable verb_noun pattern: list_skills, get_skill, get_skill_sections, search_skills, submit_feedback. The only deviation is the bare verb 'start', which is readable but breaks the otherwise consistent convention.

Tool Count5/5

Six tools is well-scoped for a skill catalogue server. Each tool earns its place: listing, searching, fetching full content, fetching sections, guided planning, and feedback.

Completeness4/5

The surface covers discovery, retrieval, parsing, guided workflow, and feedback well. Minor gaps remain around browsing available jurisdictions/categories as metadata and batch retrieval, but agents can work around these using list_skills and search_skills filters.

Maintenance

ActivityNo data
ResponsivenessOutdated data

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    24 free personal-finance and macro tools (mortgage, paycheck, tax, FRED, BLS) for LLM agents. Zero API keys, stdio transport, source-cited from IRS, Federal Reserve, BLS, Treasury, and Freddie Mac.
    -
  • A
    license
    C
    quality
    C
    maintenance
    AI-powered skills for financial professionals. Comprehensive collection of finance, accounting, audit, and compliance skills for AI agents. IFRS/GAAP compliant with industry-specific applications.
    100
    45
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to help compile the Italian Modello 730 income tax return by providing IRPEF calculations, deduction tools, and tax rule guidance.
    12
    25
    -