Skip to main content
Glama

Browse tax skills

list_skills
Read-onlyIdempotent

Browse the skills for one jurisdiction or domain (for example every skill for 'MT', or every 'payroll' skill), each with its quality tier and verification status. For a specific topic, search_skills is quicker. Filter by jurisdiction, domain or role ('foundation' | 'compute' | 'orchestrator' | 'reference'). Paginated (default 100, max 200); page with offset/next_offset.

Input 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

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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / skills / items / properties / tier / description
      Previous value: -"1 = accountant-verified, 2 = research-verified"New value: +"1 = accountant-checked, 2 = not independently checked"
  2. Changed7 schema fields changed
    • changedInput schema / properties / domain / description
      Previous value: -"Filter by accounting domain: income-tax, vat-gst, payroll, bookkeeping, e-invoicing, formation, financial-statements, transfer-pricing, tax-optimization, crypto, cross-border."New value: +"Filter by accounting domain: income-tax, vat-gst, payroll, bookkeeping, e-invoicing, formation, financial-statements, transfer-pricing, tax-optimization, crypto, cross-border, corporate-tax, estate-wealth-tax, references, sector-guidance, tooling."
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Max skills to return (default 100, max 200).",
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Number of skills to skip — use the next_offset from the previous response to page through results (default 0).",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / limit
      Added value: +{
      +  "description": "Page size applied to this response.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / next_offset
      Added value: +{
      +  "description": "Present when more results remain — pass as offset to fetch the next page.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "description": "Offset applied to this response.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / total
      Added value: +{
      +  "description": "Total skills matching the filter (across all pages).",
      +  "type": "integer"
      +}
  3. Changed5 schema fields changed
    • changedInput schema / properties / category / description
      Previous value: -"Filter by category, e.g. 'international', 'orchestrator'"New value: +"(Legacy) display label; prefer domain/role."
    • addedInput schema / properties / domain
      Added value: +{
      +  "description": "Filter by accounting domain: income-tax, vat-gst, payroll, bookkeeping, e-invoicing, formation, financial-statements, transfer-pricing, tax-optimization, crypto, cross-border.",
      +  "type": "string"
      +}
    • addedInput schema / properties / role
      Added value: +{
      +  "description": "Filter by pipeline role: foundation, compute, orchestrator, reference.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / skills / items / properties / domain
      Added value: +{
      +  "description": "Accounting domain facet",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / skills / items / properties / role
      Added value: +{
      +  "description": "Pipeline role facet",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  4. Changed1 schema field changed
    • addedOutput schema / properties / next_action
      Added value: +{
      +  "type": "string"
      +}
  5. Changed2 schema fields changed
    • changedInput schema / properties / category / description
      Previous value: -"Filter by category"New value: +"Filter by category, e.g. 'international', 'orchestrator'"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "skills": {
      +      "description": "Matching published skills.",
      +      "items": {
      +        "properties": {
      +          "category": {
      +            "type": "string"
      +          },
      +          "description": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "display_order": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "jurisdiction": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "slug": {
      +            "type": "string"
      +          },
      +          "tier": {
      +            "description": "1 = accountant-verified, 2 = research-verified",
      +            "type": "integer"
      +          },
      +          "verification": {
      +            "description": "Verification status summary",
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "slug",
      +          "name",
      +          "tier",
      +          "jurisdiction"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "skills"
      +  ],
      +  "type": "object"
      +}
  6. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. The description adds useful behavior beyond that: results carry quality tier and verification status, and pagination is bounded (default 100, max 200) with offset/next_offset paging. It does not, however, describe ordering or what happens when no filter is supplied.

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 the core scope, then the routing alternative, then filters and pagination. Every sentence carries new information with no padding.

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?

An output schema exists, so return values need no explanation, and the description covers scope, filters, the sibling alternative, and pagination limits. The only thin spot is not stating behavior when zero filters are passed, but nothing critical for correct invocation is missing.

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%, so all six parameters are already documented, including the legacy-category fallback and role/domain value lists. The description restates the role values and the pagination dance (offset/next_offset) but adds no semantics the schema lacks, so baseline 3 is right.

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?

States a concrete verb and resource ('Browse the skills') with scope narrowed to one jurisdiction or domain, and explicitly names the sibling it is not (search_skills). An agent can distinguish this from search_skills, get_skill, and list_jurisdictions without opening any schema.

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?

Gives the routing rule explicitly: browsing a jurisdiction/domain, use this; 'For a specific topic, search_skills is quicker.' It also names the filter dimensions and the pagination contract, so both when-to-use and when-not-to-use are covered.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.