Skip to main content
Glama
ryanduguid

Australian Accounting MCP

Read a cited legislation section

read_tax_legislation_section
Read-onlyIdempotent

Retrieve the full text of a cited tax provision using its row_id, with pagination for long sections and optional neighbouring provisions for context.

Instructions

Read one cited provision in full from the configured corpus.

Pass row_id exactly as search_tax_legislation returned it; other strings are refused. Returns the same citation fields as search plus up to 12000 characters of the stored text from start; total_chars reports the whole length. When more text follows, next_start is where the next part begins: pass it back as start to keep reading, and null means the provision is complete. Set neighbours from 1 to 5 when a subsection refers to the provisions around it; each neighbour is cited and truncated like a search match. Preserve the citation and the attribution. Local reads only, not a confirmation of current law.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
startNoCharacter to read from. Pass the previous read's next_start to continue a long provision.
row_idYesrow_id returned by search_tax_legislation, such as 'C2004A05138:0421:40-25'.
neighboursNoProvisions to return on each side of the cited one, in the title's document order, at search length. 0 returns the provision alone.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
afterYesUp to neighbours provisions after the cited one in document order, nearest first, at search length.
startYesCharacter of the stored provision this part starts at.
beforeYesUp to neighbours provisions before the cited one in document order, nearest last, at search length.
corpusYesCorpus-level source, retrieval date and licence terms from the operator's configured corpus; empty when the corpus ships no manifest.
noticeYes
sectionYes
next_startYesWhere the next part begins; pass it as start to continue. null when this part reaches the end of the provision.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.1.16
    • addedInput schema / properties / start
      Added value: +{
      +  "default": 0,
      +  "description": "Character to read from. Pass the previous read's next_start to continue a long provision.",
      +  "maximum": 320000000,
      +  "minimum": 0,
      +  "title": "Start",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / next_start
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Where the next part begins; pass it as start to continue. null when this part reaches the end of the provision.",
      +  "title": "Next Start"
      +}
    • addedOutput schema / properties / start
      Added value: +{
      +  "description": "Character of the stored provision this part starts at.",
      +  "minimum": 0,
      +  "title": "Start",
      +  "type": "integer"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "section",
      -  "before",
      -  "after",
      -  "corpus",
      -  "notice"
      -]New value: +[
      +  "section",
      +  "start",
      +  "next_start",
      +  "before",
      +  "after",
      +  "corpus",
      +  "notice"
      +]
  2. Addedv0.1.13

TDQS

A4.7/5.0
Behavior5/5

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

The annotations already mark this as read-only and idempotent, but the description adds substantial behavioral detail: chunked responses capped at 12000 characters, next_start/null pagination sentinels, neighbour truncation like search matches, strict row_id validation, and a local-reads-only caveat. Nothing contradicts 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?

About 120 words, with the primary action in the first sentence and each following sentence covering a discrete behavior: row_id validation, chunking, pagination, neighbours, preservation, and legal status. There is no filler or redundant restatement of the title.

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 3-parameter read operation with an output schema, the description covers validation, pagination, neighbour behavior, attribution preservation, and the safety caveat. Anything an agent needs to call this correctly is present, and the output schema handles return-shape documentation.

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 the schema already explains start, row_id, and neighbours. The description adds value by tying those parameters to the workflow: the next_start handshake, 'other strings are refused', and when neighbours are appropriate. The marginal semantic gain over the schema is meaningful but not large.

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?

Opens with a specific verb–resource pair: 'Read one cited provision in full from the configured corpus.' It is clearly distinct from the search sibling because it requires a row_id from search_tax_legislation and returns stored text rather than query results. Although it does not name read_accounting_library, the tax-legislation and row_id coupling disambiguate it.

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 concrete guidance: use row_id exactly as returned by search_tax_legislation (other strings refused), paginate via next_start, and request neighbours only when a subsection references surrounding provisions. It also states a limitation: 'Local reads only, not a confirmation of current law.' It does not explicitly say when the search sibling should be preferred over this read tool, so it stops short of a full when/when-not statement.

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