Skip to main content
Glama
ryanduguid

Aus Accounting MCP

List ATO benchmark industries

list_ato_benchmark_industries
Read-onlyIdempotent

Find ATO small-business benchmark industries by name or year, then use the returned names with get_ato_benchmarks for comparison.

Instructions

List ATO small-business benchmark industries from ato-benchmark-compare.

Pass search to filter by name. year is an optional benchmark year such as 2023-24; omit it to use the latest shipped dataset. Use the returned name with get_ato_benchmarks. Optional limit/offset page the filtered results in dataset order. count is the page size; total_count is all matching industries. Continue with next_offset and the returned benchmark_year, keeping search unchanged, until has_more is false. Omit limit to retain the full-list result. Reads bundled data locally; no network or writes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNoBenchmark dataset year in YYYY-YY form, e.g. "2023-24". Omit or null selects the latest shipped dataset, not a live ATO lookup.
limitNoMaximum industries returned, 1 to 100; use 20 for concise discovery. Omit or null returns all remaining matches for compatibility.
offsetNoZero-based position in the filtered results; start at 0, then pass next_offset while has_more is true. Keep search and year unchanged.
searchNoOptional case-insensitive industry-name search; omit to list all industries in the selected shipped dataset.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYesThe review ran; this does not mean compliance or a known verdict.
countYesNumber of industries returned in this page.
engineYesDelegated distribution that produced this result.
offsetYesRequested position in the filtered results.
sourceYesUnmodified engine source metadata and review provenance.
has_moreYesWhether another page of matching industries exists.
industriesYesThis page of matching industries; empty if none remain.
next_offsetYesPass as offset for the next page; null when no matches remain.
total_countYesMatching industries before pagination.
benchmark_yearYesIncome or dataset year in YYYY-YY form.
engine_versionYesInstalled version of that engine.
total_business_typesYesTotal industries in the selected dataset.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.1.13
    • changedInput schema / properties / search / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 120,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / year / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 7,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed1 schema field changedv0.1.10
    • addedInput schema / additionalProperties
      Added value: +false
  3. Changed10 schema fields changedv0.1.9
    • addedInput schema / properties / limit
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 100,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Maximum industries returned, 1 to 100; use 20 for concise discovery. Omit or null returns all remaining matches for compatibility.",
      +  "title": "Limit"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "description": "Zero-based position in the filtered results; start at 0, then pass next_offset while has_more is true. Keep search and year unchanged.",
      +  "minimum": 0,
      +  "title": "Offset",
      +  "type": "integer"
      +}
    • changedOutput schema / properties / count / description
      Previous value: -"Number of industries matching the search."New value: +"Number of industries returned in this page."
    • addedOutput schema / properties / count / minimum
      Added value: +0
    • addedOutput schema / properties / has_more
      Added value: +{
      +  "description": "Whether another page of matching industries exists.",
      +  "title": "Has More",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / industries / description
      Previous value: -"Matching industries; empty if no match."New value: +"This page of matching industries; empty if none remain."
    • addedOutput schema / properties / next_offset
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Pass as offset for the next page; null when no matches remain.",
      +  "title": "Next Offset"
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "description": "Requested position in the filtered results.",
      +  "minimum": 0,
      +  "title": "Offset",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / total_count
      Added value: +{
      +  "description": "Matching industries before pagination.",
      +  "minimum": 0,
      +  "title": "Total Count",
      +  "type": "integer"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "ok",
      -  "engine",
      -  "engine_version",
      -  "benchmark_year",
      -  "count",
      -  "total_business_types",
      -  "industries",
      -  "source"
      -]New value: +[
      +  "ok",
      +  "engine",
      +  "engine_version",
      +  "benchmark_year",
      +  "count",
      +  "total_count",
      +  "offset",
      +  "has_more",
      +  "next_offset",
      +  "total_business_types",
      +  "industries",
      +  "source"
      +]
  4. Changed4 schema fields changedv0.1.8
    • addedOutput schema / $defs
      Added value: +{
      +  "Industry": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "key_ratio": {
      +        "description": "ATO key-ratio identifier for this industry.",
      +        "title": "Key Ratio",
      +        "type": "string"
      +      },
      +      "name": {
      +        "description": "Business-type name accepted by get_ato_benchmarks.",
      +        "title": "Name",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "key_ratio"
      +    ],
      +    "title": "Industry",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / properties
      Added value: +{
      +  "benchmark_year": {
      +    "description": "Income or dataset year in YYYY-YY form.",
      +    "pattern": "^[0-9]{4}-[0-9]{2}$",
      +    "title": "Benchmark Year",
      +    "type": "string"
      +  },
      +  "count": {
      +    "description": "Number of industries matching the search.",
      +    "title": "Count",
      +    "type": "integer"
      +  },
      +  "engine": {
      +    "description": "Delegated distribution that produced this result.",
      +    "title": "Engine",
      +    "type": "string"
      +  },
      +  "engine_version": {
      +    "description": "Installed version of that engine.",
      +    "title": "Engine Version",
      +    "type": "string"
      +  },
      +  "industries": {
      +    "description": "Matching industries; empty if no match.",
      +    "items": {
      +      "$ref": "#/$defs/Industry"
      +    },
      +    "title": "Industries",
      +    "type": "array"
      +  },
      +  "ok": {
      +    "const": true,
      +    "description": "The review ran; this does not mean compliance or a known verdict.",
      +    "title": "Ok",
      +    "type": "boolean"
      +  },
      +  "source": {
      +    "additionalProperties": true,
      +    "description": "Unmodified engine source metadata and review provenance.",
      +    "title": "Source",
      +    "type": "object"
      +  },
      +  "total_business_types": {
      +    "description": "Total industries in the selected dataset.",
      +    "title": "Total Business Types",
      +    "type": "integer"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "ok",
      +  "engine",
      +  "engine_version",
      +  "benchmark_year",
      +  "count",
      +  "total_business_types",
      +  "industries",
      +  "source"
      +]
    • changedOutput schema / title
      Previous value: -"list_ato_benchmark_industriesDictOutput"New value: +"IndustryList"
  5. Changed2 schema fields changedv0.1.7
    • addedInput schema / properties / search / description
      Added value: +"Optional case-insensitive industry-name search; omit to list all industries in the selected shipped dataset."
    • addedInput schema / properties / year / description
      Added value: +"Benchmark dataset year in YYYY-YY form, e.g. \"2023-24\". Omit or null selects the latest shipped dataset, not a live ATO lookup."
  6. First observedv0.1.6

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds important behavioral context beyond those flags: it reads bundled data locally, makes no network calls or writes, and omitting year selects the latest shipped dataset rather than a live lookup. No contradiction exists.

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 compact and front-loaded with the core purpose, followed by filter, year, pagination, and local-data behavior. Nearly every sentence earns its place, though pagination details are dense and partly repeat what the output schema likely already describes.

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 4-parameter read-only tool with a complete input schema and an output schema, the description covers everything needed to invoke it correctly: filtering, default dataset selection, pagination continuation, downstream usage, and side-effect-free local behavior. Nothing important is missing.

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 100%, so the baseline is 3. The description adds value beyond the schema by explaining pagination flow ('start at 0, then pass next_offset'), recommending limit=20 for discovery, and clarifying that omitting limit returns the full filtered list. This is genuinely helpful, if slightly overlapping with schema details.

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: 'List ATO small-business benchmark industries from ato-benchmark-compare.' It also names the intended downstream sibling, get_ato_benchmarks, which distinguishes this listing tool from the retrieval tool without ambiguity.

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 gives clear operational context: how to filter by search, how to select or omit year, and how to route the returned name to get_ato_benchmarks. It does not explicitly list exclusions or when not to use the tool, but the context is strong enough for an agent to select it appropriately.

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