Skip to main content
Glama
Beeswax Shares MCP Server

Beeswax Shares MCP Server

by steamau

Link a typed balance item to an ATO account

link_balance_item_to_ato

Links a typed balance item to its ATO account and bucket so position matching uses that link rather than the label; set account ID null to unlink.

Instructions

Tie one typed balance item to the ATO account + bucket it stands for, so use_ato_position supersedes it by that link instead of by its label (use when the label doesn't say, or two lines look alike). ato_bucket: "owed" (the account's balance — the ICA, or earlier years' income tax), or for the activity statement "accrued_gst", "accrued_payg_instalment" or another accrued_. Pass ato_account_id: null to unlink. It doesn't change the amount or stop the line counting — run use_ato_position for that. Rejected if the year is closed or lodged.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "fund_id": "<fund_id>",
      "financial_year": "<financial_year>",
      "balance_item_id": "<balance_item_id>",
      "ato_account_id": "<ato_account_id>"
    },
    "name": "link_balance_item_to_ato"
  }
}

Input Schema

NameRequiredDescriptionDefault
fund_idYesFund ID (discover via whoami or list_funds)
reasoningNoWhy you are making this change — recorded on the audit log entry for this write
ato_bucketNoBucket: "owed" (default), "accrued_gst", "accrued_payg_instalment" …
external_refNoYour stable ID for this write (e.g. a statement line or document reference). Repeating a call with the same external_ref replays the first result instead of writing twice.
ato_account_idYesThe ATO account (list_ato_accounts), or null to unlink
financial_yearYesFinancial year — the label "2023-24" or its numeric id (from list_financial_years)
balance_item_idYesBalance item ID (from list_balance_items)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.14.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds real behavioral context on top: it does not change the amount and does not stop the line from counting, and the write is rejected if the year is closed or lodged. It stops just short of saying what happens to a pre-existing link on the same item when re-linking.

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?

Front-loaded with the core action and effect, and every clause carries information. It is dense with nested parentheses and em-dashes, which makes it slightly harder to scan than it needs to be, but nothing is 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?

For a 7-parameter mutation with no output schema, the description covers the effect, the non-effects, the unlink case, and the rejection conditions. The remaining gap is edge-case behavior when a line already has a different link, which an agent would need to infer.

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 the baseline is 3, but the description adds domain meaning the schema lacks: "owed" is explained as the account's balance (the ICA, or earlier years' income tax) and the accrued_gst / accrued_payg_instalment family is contextualized to the activity statement. The null-to-unlink behavior duplicates the schema rather than extending it.

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 specific verb and resource: tie one typed balance item to the ATO account + bucket it stands for. It also explains the effect mechanism (so use_ato_position supersedes it by that link instead of by its label), which distinguishes it from use_ato_position and reclassify_balance_item_to_holding without needing the 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 an explicit triggering condition ("use when the label doesn't say, or two lines look alike") and names the alternative for the adjacent need ("run use_ato_position for that"). It also documents the unlink path (ato_account_id: null), so both the when and the how are covered.

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

Deploy Server

Other Tools