Skip to main content
Glama

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
openaccountants/openaccountants
GitHub Stars
249
Server Listing
OpenAccountants

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 22 of 22 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose, from listing and searching to cross-border planning and verification. No two tools overlap in functionality; even similar-sounding ones like compare_jurisdictions and plan_cross_border are explicitly differentiated.

Naming Consistency5/5

All tool names use thorough snake_case with a consistent verb_noun pattern (e.g., get_rates, list_skills, validate_vat_number). There are no deviations or mixed conventions.

Tool Count4/5

22 tools is slightly high but well-scoped for a comprehensive tax and accounting server. Each tool addresses a specific need, and the count supports the server's breadth without feeling bloated.

Completeness5/5

The tool surface covers the full lifecycle: discovery, retrieval, computation, cross-border planning, verification, and professional review. There are no obvious gaps for the domain of tax/accounting assistance.

Available Tools

14 tools
check_audit_exemptionCheck statutory audit exemption (deterministic, cited, verified)
Read-onlyIdempotent
Inspect

DETERMINISTIC check of whether a private limited company qualifies for statutory audit exemption, from aggregate figures any ledger can provide (turnover, balance sheet total, average employees). Returns a determination ('exempt' | 'review' | 'audit_required' | 'cannot_determine'), the per-criterion threshold table showing exactly why, the canonical rule citation it rests on, and the LIVE verification envelope (whether a named accountant has attested the thresholds — surface that status prominently; 'draft' means treat as a source-cited draft). COVERAGE TODAY: MT (Article 185(2) micro thresholds) and GB (small-company thresholds, both pre and post 6 April 2025 eras). Most exemption regimes are two-consecutive-years tests, so pass prior_year figures when available — without them a qualifying year returns 'review', not 'exempt'; that is correct behaviour, not an error. 'cannot_determine' is a first-class outcome (unsupported jurisdiction, wrong currency, entity shapes needing judgment, or the cited fact changed since calibration). Never override the determination with training-data thresholds.

ParametersJSON Schema
NameRequiredDescriptionDefault
currencyYesCurrency of the figures — must match the regime (EUR for MT, GBP for GB); convert first, never guess a rate.
turnoverYesRevenue/turnover for the year, in the jurisdiction's currency.
prior_yearNoPrior-year figures for the two-consecutive-years test.
entity_typeNoOptional. 'private_ltd' (default), 'plc', 'branch'. Non-private shapes route to a human.
group_memberNoOptional. True if the company is part of a group — group thresholds need a reviewer, so this forces 'review'.
jurisdictionYesISO-style code. MT and GB supported today.
employees_averageYesAverage number of employees during the year.
financial_year_endYesISO date the financial year ends, e.g. '2025-12-31'.
balance_sheet_totalYesTotal assets at the balance sheet date.

Output Schema

ParametersJSON Schema
NameRequiredDescription
caveatsNo
escalateNo
next_actionNo
verificationNostatus ('accountant_verified'|'research_verified'|'draft'), verified_by[], last_verified_at, skill_slug, era. Surface the status to the user.
criteria_ruleNo
determinationNo'exempt' | 'review' | 'audit_required' | 'cannot_determine'
rule_citationNoskill_slug, fact_id, canonical_key, statutory_reference, url.
thresholds_appliedNoPer-criterion: threshold vs actual, met true/false.
get_deadlinesUpcoming tax deadlines for a jurisdictionA
Read-onlyIdempotent
Inspect

Upcoming filing/payment deadlines and recurring filing rhythms (monthly VAT, quarterly instalments) for a country or US state, from the OpenAccountants tax calendar. Use it whenever the user asks 'when is X due', mentions a filing date, or when a heads-up about an imminent deadline would help. Signed-in users with a saved home jurisdiction can omit jurisdiction — it fills from their profile (the response marks jurisdiction_source accordingly).

ParametersJSON Schema
NameRequiredDescriptionDefault
horizon_daysNoHow far ahead to look (default 120, max 366).
jurisdictionNoISO code, slug, or name ('MT', 'US-CA', 'Malta'). Optional for signed-in users with a saved home jurisdiction.

Output Schema

ParametersJSON Schema
NameRequiredDescription
next_actionNo
calendar_urlNo
horizon_daysNo
jurisdictionYes
recurring_rhythmsNo
upcoming_deadlinesYes
jurisdiction_sourceNo
Behavior4/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe read operation. The description adds behavioral context such as jurisdiction auto-fill for signed-in users and the response marking jurisdiction_source, which provides useful transparency beyond the annotations.

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?

The description is composed of three sentences with no extraneous information. The first sentence states the core purpose, the second provides usage cues, and the third explains conditional behavior. It is front-loaded and concise.

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?

Given the presence of annotations and an output schema, the description covers the essential aspects: what the tool returns (deadlines and rhythms), when to use it, and special behavior for configuration. No major gaps are apparent.

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?

The input schema covers both parameters (horizon_days and jurisdiction) with clear descriptions (defaults, max, examples). The description adds additional semantic meaning: jurisdiction is optional for signed-in users with a saved home jurisdiction, and the response indicates how jurisdiction was determined. This supplements the schema meaningfully.

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 clearly states that the tool retrieves upcoming filing/payment deadlines and recurring filing rhythms from the OpenAccountants tax calendar, specifying the scope as a country or US state. This defines a specific verb-resource combination that is distinct from sibling tools like get_rates or compare_jurisdictions.

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?

The description explicitly advises when to use the tool: when a user asks 'when is X due', mentions a filing date, or needs a heads-up about an imminent deadline. It also notes that signed-in users with a saved home jurisdiction can omit the jurisdiction parameter. However, it does not explicitly state when not to use it or mention alternative tools for other types of queries.

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

get_skillGet a tax skillA
Read-onlyIdempotent
Inspect

Fetch a published skill by slug, including its current-version markdown, quality tier, named verifier (where accountant-verified), and a provenance/attribution footer.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesSkill slug, e.g. 'us-schedule-c-and-se-computation'
reasonNoOne sentence on WHY you're making this call, in the user's terms (for routing analysis only). Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillYesThe skill record (slug, name, jurisdiction, tier, etc.)
key_factsNoOptional at-a-glance facts (rates/thresholds/deadlines/verifier/advisory) — present only where the skill carries a structured key_facts block; omitted otherwise.
guardrailsNo
provenanceYes
next_actionNo
verificationNoVerification summary
section_indexNoEvery 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}).
current_versionNoCurrent version. markdown_content holds the compute-core (rates, box maps, rules, worksheet contract); bulky reference sections may be omitted — see section_index.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint false. The description adds behavioral context beyond annotations by specifying the exact fields returned (markdown, quality tier, verifier, footer). No contradictions.

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 description is a single sentence that communicates purpose and output effectively. It is front-loaded with the primary action. However, it could be slightly more structured (e.g., breaking out the list of included fields) to improve scanability.

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?

Given the tool has an output schema (not shown but present), the description does not need to detail return values. It covers the input (slug) and the output content. It could mention error conditions or required authentication, but annotations already indicate read-only access.

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 coverage is 100%, so the schema already describes both parameters (slug and reason). The description mentions 'slug' in the first sentence but adds no semantic detail beyond the schema (e.g., example format). The 'reason' parameter is not elaborated in the description.

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 clearly states the verb 'Fetch' and the resource 'published skill by slug', and lists the included fields (markdown, quality tier, named verifier, provenance footer). It distinguishes from siblings like search_skills which likely return lists, and get_skill_sections which may return different content.

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 description implies use when you need a specific skill by slug, but does not explicitly state when to use this tool vs alternatives like search_skills or get_skill_sections. No 'when not to use' or comparison is provided.

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

get_skill_sectionsGet a skill's sectionsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesSkill slug
section_indexNoOptional. Return only this section (matches the `index` from get_skill's `section_index`).
section_indicesNoOptional. Return only these sections.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
versionNo
sectionsYes
key_factsNoOptional at-a-glance facts — present only where the skill carries a structured key_facts block; omitted otherwise.
guardrailsNo
next_actionNo
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, providing strong behavioral transparency. The description adds that output includes heading and markdown content, which is consistent but not a significant addition beyond annotations.

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 sentences, front-loaded with purpose, followed by structure and usage. Every sentence is necessary and concise, with no wasted words.

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?

Covers purpose, usage, and the most important parameter. Minor omission: does not explicitly mention section_indices parameter, but schema handles it. Output schema exists, so return values are documented. Overall sufficient for correct tool selection.

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?

Input schema has 100% description coverage, so baseline is 3. Description adds useful context for section_index (linking to get_skill's section_index) but does not mention section_indices. Overall, it adds marginal value beyond the schema.

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 clearly states it fetches parsed sections of a skill's current version, with each section containing heading and markdown content. It distinguishes from sibling tool get_skill by specifying it retrieves the actual content, not just indices.

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

Usage Guidelines5/5

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

Explicit guidance on when to use section_index (for a specific non-inlined section from get_skill's section_index) and when to omit it (to get all sections). Clearly differentiates use cases.

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

list_jurisdictionsList all jurisdictions coveredA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
next_actionNo
total_skillsNo
jurisdictionsNo
total_jurisdictionsNo
Behavior4/5

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

Description adds valuable context about returned data fields and pre-computed nature, complementing annotations (readOnlyHint, idempotentHint, openWorldHint). Could mention if any latency or caching, but overall sufficient.

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 concise sentences plus a usage sentence. Front-loaded with key information, no redundant words.

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?

With no parameters and an output schema, the description fully covers what the tool does, what it returns, and when to use it. Complete for its complexity.

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?

No parameters in schema, baseline 4. Description implicitly explains that no input is needed since it returns all jurisdictions. No further param detail required.

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?

Clear verb 'Returns' with specific resource 'jurisdictions' and detailed output fields (skill counts, verified counts, lead verifier). Explicitly distinguishes from sibling tool 'list_skills' by noting it avoids pagination.

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

Usage Guidelines5/5

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

Provides explicit when-to-use examples ('which countries does OpenAccountants cover?', 'what's available for [country]?') and tells what to avoid ('Avoids paginating through list_skills').

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

list_rule_facetsList queryable rule facets (no args)A
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
filtersNo
defaultsNo
next_actionNo
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. Description adds value by detailing what facets are returned (live jurisdictions, domains, etc.) and mentioning defaults, providing context beyond annotations.

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 sentences, front-loaded with purpose, no wasted words. Efficient and clear.

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?

Given the tool's simplicity (no params, has output schema), description is complete. It explains what is returned and why to use it, and output schema covers return values.

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?

No parameters (0 params), so baseline is 4. Description does not need to add parameter info, and schema coverage is 100%.

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?

Description clearly states it returns metadata for filtering on search_rules, listing specific facets (jurisdictions, domains, roles, etc.). It distinguishes itself from sibling tools by explicitly tying to search_rules.

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?

Explicitly says 'Call this before search_rules to learn the valid filter values rather than guessing.' This provides clear when-to-use guidance, though no explicit when-not or alternatives are given, but the context is sufficient.

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

list_skillsList tax & accounting skillsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoFilter by pipeline role: foundation, compute, orchestrator, reference.
limitNoMax skills to return (default 100, max 200).
domainNoFilter by accounting domain: income-tax, vat-gst, payroll, bookkeeping, e-invoicing, formation, financial-statements, transfer-pricing, tax-optimization, crypto, cross-border, corporate-tax, estate-wealth-tax, references, sector-guidance, tooling.
offsetNoNumber of skills to skip — use the next_offset from the previous response to page through results (default 0).
categoryNo(Legacy) display label; prefer domain/role.
jurisdictionNoFilter by jurisdiction code, e.g. 'US', 'MT', 'DE'

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNoPage size applied to this response.
totalNoTotal skills matching the filter (across all pages).
offsetNoOffset applied to this response.
skillsYesMatching published skills.
next_actionNo
next_offsetNoPresent when more results remain — pass as offset to fetch the next page.
Behavior4/5

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

Annotations already signal safety, and the description adds pagination details, total catalogue size, and filter suggestions, providing useful behavioral context beyond the annotations.

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 sentences, front-loaded with main purpose, no fluff. Every sentence adds essential 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?

Covers purpose, filters, pagination, and recommendations sufficiently for an agent to use the tool correctly. Output schema exists, so return value details are not needed.

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 100%, but description adds value by noting 'legacy' for category and emphasizing filter recommendations, aiding parameter understanding.

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 clearly states the tool lists published skills with quality tier and verification status, and distinguishes by mentioning optional filters. It contrasts well with sibling tools like search_skills and get_skill.

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?

Provides guidance on pagination and strongly recommends jurisdiction/domain filters for efficient browsing. Does not explicitly compare to alternatives but gives context for when to use filters.

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

list_verifiersList named accountant verifiersA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jurisdictionNoOptional ISO code filter — only return verifiers for this jurisdiction.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNo
verifiersNo
next_actionNo
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, indicating safe, read-only behavior. The description adds context by specifying that it returns 'named licensed accountants', but does not introduce any additional behavioral traits beyond what annotations cover.

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?

The description is concise, consisting of two sentences that front-load the purpose and provide clear usage guidelines. No superfluous information is present.

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?

Given the tool's simplicity (one optional parameter, robust annotations, and an output schema), the description is complete. It covers the tool's purpose, usage context, and restrictions without needing additional elaboration.

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 100%, with the single parameter 'jurisdiction' already described in the schema as 'Optional ISO code filter — only return verifiers for this jurisdiction.' The tool description does not add extra meaning beyond the schema's description, so baseline score of 3 is appropriate.

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 clearly states the verb 'Returns', the resource 'named licensed accountants', and the context 'who have signed off on OpenAccountants jurisdictions'. It distinguishes itself from sibling tools by providing specific usage instructions, such as not using it to check jurisdiction coverage.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use conditions ('when the user explicitly asks to see the verifier network or 'who verified this skill'') and when-not-to-use ('Do NOT use this to check whether a jurisdiction is covered before calling request_accountant_review'). It also gives an alternative action: 'just call request_accountant_review directly'.

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

search_rulesSearch rules across jurisdictionsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoFree-text search over each rule's label, value, and citation.
limitNoMax rules to return (default 200, max 500).
rolesNoSkill roles: foundation | compute | orchestrator | reference.
topicNoFilter by a fact topic.
offsetNoPagination offset — pass the previous response's next_offset.
reasonNoOne sentence on WHY you're making this call, in the user's terms (for routing analysis only). Optional.
statusNoShorthand for `statuses`: 'verified' = accountant- + research-verified only. Default 'all'.
domainsNoAccounting domains, e.g. ['vat-gst','income-tax']. See list_rule_facets.
statusesNoVerification statuses to include. Default = all (each rule is tagged).
tax_yearNoLimit to a tax year, e.g. 2025.
block_typesNoRule kinds to include. Default = all of these (framing prose + workflow steps are excluded).
jurisdictionsNoISO codes to include, e.g. ['MT','US-CA']. Omit for all jurisdictions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNoTotal matching rules (across all pages).
markdownYesThe bundled rule set as markdown — the user saves/runs this locally.
truncatedNo
fact_countYesRules returned on this page.
next_actionNo
next_offsetNo
jurisdictionsNo
accountant_verified_countNo
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds that the tool returns ALL matching rules by default, each tagged with verification status, and mentions the default limit. This enriches understanding without contradiction.

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?

The description is concise, well-structured, and front-loaded with the core purpose. Two paragraphs cover purpose, differentiation, examples, and usage guidance without extraneous 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?

With 12 parameters, 0 required, high schema coverage, and an existing output schema, the description adequately explains the tool's behavior, filtering capabilities, and default outputs. It is complete for an agent to understand and invoke correctly.

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 100% and each parameter has a description. The description adds context on parameter interactions, such as the relationship between status and statuses, and references list_rule_facets for querying valid domains, providing additional value beyond the schema.

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 clearly states that the tool queries tax rules/facts across jurisdictions and returns a bundled markdown set. It distinguishes from sibling get_skill by emphasizing cross-cutting assembly and provides specific examples like 'VAT rates in MT, IE and DE'.

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

Usage Guidelines5/5

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

Explicitly contrasts with get_skill (one whole skill) and advises calling list_rule_facets first. Gives examples of appropriate use cases and explains status filtering options, guiding the agent on when and how to use the tool.

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

search_skillsSearch skills by keywordA
Read-onlyIdempotent
Inspect

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. Set content_type='method' to discover step-by-step METHODS (guided procedures — what you EXECUTE via start()) instead of reference material; each method carries a review_status (accountant-reviewed | source-cited).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term, e.g. 'home office deduction', 'crypto capital gains', 'reverse charge'. With content_type='method', a broad term (or the domain word) lists the available methods.
domainNoOptional accounting domain to limit the search (e.g. 'vat-gst', 'payroll', 'income-tax', 'crypto').
content_typeNoWhat kind of Guide to find. 'method' = step-by-step procedures you EXECUTE via start() (formerly 'workflows'); 'fact' or omitted = reference material (rates/thresholds/rules). A Guide can be either or both.
jurisdictionNoOptional ISO 2-letter country code to limit the search

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
resultsYes
next_actionNo
human_backingNoNamed accountant(s) who review this jurisdiction's guidance (guidance-level, not a per-figure sign-off).
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. Description adds value by explaining that search is across 'published' skills, that content_type='method' returns step-by-step procedures with review_status, and that jurisdiction filtering is optional.

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?

Single well-organized paragraph with front-loaded main action. Every sentence contributes value, though it is somewhat lengthy but appropriate given the guidance provided.

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?

Output schema exists, so return values need not be described. Description covers all relevant aspects: search scope, content type differentiation, jurisdiction limiting, and use cases. Sibling tools like get_skill and list_skills are implicitly distinguished via guidance. Complete given complexity.

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 100%. Description adds meaning beyond schema: provides example query values, explains the effect of content_type='method' vs 'fact', and mentions review_status for methods. This is above baseline 3.

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 clearly states it performs full-text search across published tax and accounting skills, and explicitly says 'Use this when you don't know the exact skill slug' to distinguish from get_skill. This is specific and differentiates from siblings.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance ('when you don't know the exact skill slug'), how to use content_type to find methods vs facts, and includes examples. It implicitly tells when not to use (if you know slug, use get_skill).

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

share_with_openaccountantsShare this with OpenAccountantsA
Read-onlyIdempotent
Inspect

THE one outbound channel — the single place ALL feedback and any review go. OpenAccountants' goal is to give good information and GATHER intelligence to improve it; human review is an OPTIONAL extra the user can take if they want it. At your closing, make ONE warm offer AND give the user a short trigger to reply with (never make them type a long sentence): "Want me to send this back to OpenAccountants to help improve the guidance? It's anonymous — just say 'send it'. Or if you'd like [the reviewing Partner] to review your actual figures before you file, say 'review it'." Then call this ONCE. What it carries: (1) note — an anonymized improvement DIFF (the DEFAULT, low-friction ask): what the loaded guidance covered vs what YOU had to ADD or work around and why (e.g. 'workflow didn't cover the disposal side', 'us-sales-tax wasn't surfaced', 'no state rate for X'). Send whenever the user agrees to help — especially if you augmented. (2) skill_slug (optional) — set it when the note is a bug in a SPECIFIC skill ('the rate in us-sales-tax looks outdated'); this replaces the old submit_feedback. (3) OPTIONAL review — set request_review: true ONLY if the user WANTS a licensed Partner to check their real numbers, and then also pass working_paper (COMPLETE), jurisdiction, scenario, contact_email (ask first). It saves to the user's own queue + returns a booking link; nothing is sent to an accountant until they engage; the professional review is a paid engagement (never say it's free). Review is NEVER mandatory or auto-routed — only when the user asks for it. ANONYMIZE the note hard: NO names, amounts, or PII. Do NOT use any other tool for feedback or review — everything goes through here.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesAnonymized improvement note/DIFF: 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. Send whenever the user agrees to help improve.
scenarioNoReview only: brief description of the situation to review.
tax_yearNoReview only: tax year, if relevant.
skill_slugNoOptional: set when the note is feedback about a SPECIFIC skill (e.g. 'us-sales-tax'). Replaces the old submit_feedback.
contact_nameNoReview only: the user's name.
jurisdictionNoReview only: ISO code or slug for the user's tax jurisdiction (e.g. 'US-CA').
contact_emailNoReview only, REQUIRED when request_review: the user's email. Ask for it first.
working_paperNoReview only: the COMPLETE working paper markdown — every line item and assumption, not a summary.
request_reviewNotrue ONLY if the user WANTS a licensed Partner to review their actual figures. Never mandatory. Requires working_paper + jurisdiction + scenario + contact_email. Omit/false = just the note.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
messageNo
booking_urlNo
note_recordedNo
Behavior1/5

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

The description contradicts annotations: annotations say readOnlyHint: true, but the tool is clearly a write operation (saves to queue, sends data). The detailed disclosure of what it carries and returns is positive, but the contradiction is a critical failure.

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

Conciseness2/5

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

The description is overly long (multiple paragraphs, >300 words). It contains repetitive elements and could be streamlined. While information-rich, it lacks conciseness for quick agent parsing.

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?

Given the tool's complexity (9 parameters, conditional review logic), the description covers all necessary context: parameter purposes, conditional requirements, anonymity rules, and interaction scripts. No gaps.

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 coverage is 100% (baseline 3). The description adds extensive value: explains the meaning of 'note' as a DIFF, conditions for 'skill_slug' vs 'submit_feedback', and detailed conditions for review parameters. It provides examples and clear usage rules.

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 clearly states this is 'THE one outbound channel' for feedback and review, and explicitly distinguishes from siblings: 'Do NOT use any other tool for feedback or review — everything goes through here.' The verb 'share' and resource 'OpenAccountants' establish a clear, unique purpose.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: 'at your closing, make ONE warm offer' and includes a script. States that review is optional and only when user asks, and explicitly forbids using other tools for feedback or review.

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

startStart a tax workflowA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentYesUser intent — REQUIRED. Free text, e.g. 'taxes', 'VAT return', 'set up a company'.
reasonNoOne 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.
acting_asYesREQUIRED. Who the user is: 'self' = a taxpayer handling their OWN taxes; 'client' = a professional (accountant/advisor) working on behalf of a CLIENT. Establish this before calling — if it isn't clear from the conversation, ask the user one short question ('Are these your own taxes, or are you helping a client?'). Never guess.
jurisdictionNoISO 2-letter code or US state code (e.g. 'MT', 'GB', 'US-CA').
taxpayer_typeNoThe 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; otherwise omit — start() only asks for it (status:'needs_clarification', needs:['taxpayer_type']) when the guides for this jurisdiction/intent genuinely split by occupation. 'employee' = W-2 wages only; 'self-employed' = freelance / 1099 / sole-proprietor; 'both' = employed AND self-employed; 'company' = a corporate entity. Don't guess — ask the user one short question if unsure.

Output Schema

ParametersJSON Schema
NameRequiredDescription
needsNo
intentNo
statusNo
guardrailsNo
next_actionNo
expectationsNo
jurisdictionNo
skills_to_loadNo
available_intentsNo
available_jurisdictionsNo
Behavior5/5

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

Annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false) are all consistent with the description. Description adds behavioral details: returns clarification if jurisdiction missing, otherwise a plan with skills to load, and explains how taxpayer_type is handled.

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 paragraphs are well-structured: first defines purpose and required fields, second details return behavior, third provides usage order. Every sentence adds value without redundancy.

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?

Given 5 parameters with 2 required and an output schema, the description fully explains tool behavior, parameter semantics, usage order, and alternative tool. It covers all necessary context for correct invocation.

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 covers all 5 parameters (100% coverage). Description adds crucial context: intent is REQUIRED, acting_as must be predefined, jurisdiction triggers clarification if missing, taxpayer_type has detailed enum meanings and guidance to not guess.

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 clearly identifies the tool as the initial entry point for tax workflows once intent is known, distinguishes it from start_help (for unknown intents), and explains its return values (clarification or plan).

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

Usage Guidelines5/5

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

Explicitly states when to use (after start_help if intent is known) and when not to (use start_help if intent unknown), provides prerequisites (acting_as must be established), and warns against guessing taxpayer_type.

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

start_helpGet tax-workflow scoping guidance (no args)A
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
needsNo
statusNo
next_actionNo
available_intentsNo
available_jurisdictionsNo
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint as true, and destructiveHint as false. The description adds valuable context beyond annotations by detailing conditional behavior: for signed-in approved accountants it returns a personalized orientation; for others it returns scoping questions. No contradictions.

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 description is two sentences, with the key instruction front-loaded. It is efficient and every sentence adds value, though the first sentence is somewhat long. Could be slightly more terse, but overall well-structured.

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?

Given the tool has no parameters and an output schema exists, the description sufficiently covers what the tool returns for two user categories. It provides actionable next step. It lacks details on error handling or non-signed-in user behavior, but is complete enough for a simple scoping tool.

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?

The tool has no parameters, and the description explicitly states 'No-argument front door'. Schema coverage is 100% (trivial). The description adds no further parameter info needed. Baseline 4 for zero parameters.

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 clearly states it is a no-argument front door for scoping guidance, with explicit verb ('get scoping guidance') and resource. It distinguishes from sibling tool list_jurisdictions by stating 'do NOT answer such questions by listing your tools or calling list_jurisdictions'.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use instructions: 'call this FIRST whenever a user asks how can you help me?' It also tells when not to use alternatives and gives next action: 'Once you have an intent, call start(intent, jurisdiction).'

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

validate_vat_numberValidate a business VAT / tax-ID number (live registry lookup)A
Read-onlyIdempotent
Inspect

Check whether a business's VAT / tax-registration number is real and registered, in real time against the official government registry — and return the registered business NAME and ADDRESS when the authority discloses them. This is an authoritative, unfakeable confirmation you cannot get from a knowledge lookup or from training data. Use it whenever a user wants to verify a supplier's or customer's tax ID: before applying a B2B reverse charge, zero-rating a cross-border sale, or onboarding a vendor. COVERAGE TODAY IS EU ONLY — the 27 EU member states plus 'XI' (Northern Ireland), live via the European Commission's VIES registry (use 'EL' for Greece). Other jurisdictions (e.g. UK/HMRC and beyond) are NOT supported yet but are on the roadmap — for a non-EU number, tell the user live validation isn't available for that country yet rather than guessing a verdict. This is a LIVE external lookup — if the registry is temporarily unavailable it says so plainly rather than inventing an answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
vat_numberYesThe VAT number, with or without the country prefix and spaces, e.g. 'IE6388047V', 'IE 6388047V', or '6388047V'.
country_codeNo2-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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validNotrue/false verdict from VIES, or null if the service could not be reached (an availability issue, not a verdict).
sourceNo
addressNo
messageNo
summaryNo
checked_atNo
source_urlNo
vat_numberNo
vies_errorNo
full_vat_idNo
next_actionNo
country_codeNo
business_nameNo
human_backingNoNamed accountant(s) who review that country's VAT guidance (guidance-level, not a per-figure sign-off).
confirm_availableNoWhether the user can ask a named accountant to confirm the VAT treatment via ask_accountant_to_confirm.
Behavior5/5

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

Discloses live external dependency, unfakeability, and that it admits registry unavailability rather than inventing answers. Annotations already indicate read-only and idempotent, and description adds critical behavioral context beyond them.

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?

Description is relatively long but every sentence serves a purpose: purpose, use cases, limitations, behavior. Could be slightly tighter but well-structured and front-loaded with key info.

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?

Given the tool's complexity—live external lookup, EU-only coverage, specific business use cases—the description fully addresses what agents need to know. Output schema handles return values, so description is complete.

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 100%, so baseline is 3. Description adds practical examples, explains optional country_code usage, and clarifies handling of prefixes, enhancing usability beyond schema alone.

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 clearly states the tool checks VAT numbers live against government registries and returns registered business name and address. It distinguishes from siblings by being the only tool for this specific authoritative verification.

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

Usage Guidelines5/5

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

Explicitly tells when to use (before applying B2B reverse charge, zero rating, onboarding vendor) and when not to (non-EU numbers, tells user to inform rather than guess). Provides clear coverage scope.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.