Skip to main content
Glama
Beeswax Shares MCP Server

Beeswax Shares MCP Server

by steamau

Set a member statement's figures

update_member_statement
Destructive

Create or partially update a fund member's statement for a financial year. Missing statements are created automatically, so you can build a new year field by field.

Instructions

Create or update one member's statement for a financial year. Partial: only the fields you pass change. If the member (identified by fund_member_id from list_member_statements) has no statement for the year yet, one is created with a computed closing balance, so a fresh year can be populated field by field — e.g. set each member's opening_balance, then the contributions, then run allocate_earnings. Amounts are AUD. Rejected if the financial year is closed or lodged, or if creating a statement for an inactive member.

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>",
      "fund_member_id": "<fund_member_id>"
    },
    "name": "update_member_statement"
  }
}

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
lrba_amountNoOutstanding LRBA amount attributable to the member, AUD
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.
account_statusNoMember account status (ATO label: account status)
financial_yearYesFinancial year — the label "2023-24" or its numeric id (from list_financial_years)
fund_member_idYesFund member ID (the fund_member_id from list_member_statements)
closing_balanceNoClosing account balance (S). A number fixes the trustee's figure (basis "entered"); the string "computed" rolls it forward from the other figures on every save. Omit to leave the basis as it is.
opening_balanceNoOpening account balance at 1 July, AUD
personal_injuryNoPersonal injury election (E), AUD
inward_rolloversNoInward rollovers and transfers (P), AUD
lump_sum_paymentNoLump sum payments (R1), AUD
preserved_amountNoPreserved benefits, AUD
contributions_taxNoContributions tax deducted from the member's account (reduces the computed closing balance), AUD
other_third_partyNoOther third-party contributions (G), AUD
outward_rolloversNoOutward rollovers and transfers (Q), AUD
taxable_componentNoTaxable component of the closing balance, AUD
allocated_earningsNoAllocated earnings or losses (O); negative for a loss. Prefer allocate_earnings, AUD
tax_free_componentNoTax-free component of the closing balance, AUD
other_contributionsNoAny other contributions (M), AUD
income_stream_paymentNoIncome stream payments (R2), AUD
downsizer_receipt_dateNoDate the downsizer contribution was received, ISO e.g. "2025-03-01"
employer_contributionsNoEmployer contributions (A), AUD
personal_contributionsNoPersonal contributions (B), AUD
cgt_small_business_15yrNoCGT small business 15-year exemption (D), AUD
downsizer_contributionsNoDownsizer contributions, AUD
assessable_foreign_superNoAssessable foreign superannuation fund amount (I), AUD
retirement_phase_balanceNoRetirement phase account balance (S2/S3), AUD
accumulation_phase_balanceNoAccumulation phase account balance (S1), AUD
spouse_child_contributionsNoSpouse and child contributions (F), AUD
non_complying_contributionsNoContributions from non-complying funds and previously non-complying funds (T), AUD
transfer_reserve_assessableNoTransfer from reserve: assessable amount (K), AUD
non_assessable_foreign_superNoNon-assessable foreign superannuation fund amount (J), AUD
cgt_small_business_retirementNoCGT small business retirement exemption (C), AUD
restricted_non_preserved_amountNoRestricted non-preserved benefits, AUD
transfer_reserve_non_assessableNoTransfer from reserve: non-assessable amount (L), AUD
unrestricted_non_preserved_amountNoUnrestricted non-preserved benefits, AUD

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.8.1

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the write/destructive annotations, the description discloses partial-update semantics, creation behavior with a computed closing balance, sequencing guidance, currency, and rejection conditions. These are meaningful behavioral details an agent needs in order to invoke the tool safely.

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 front-loaded with the create/update purpose, then adds partial-update behavior, creation semantics, example workflow, currency, and rejection rules. Every sentence contributes relevant operational context for this complex tool.

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 37-parameter upsert tool, the description covers the critical write semantics, creation behavior, workflow, and failure conditions. The main remaining gap is that it does not describe what is returned after a successful create or update, and no output schema is provided.

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?

With 100% schema coverage, the schema already documents most parameters. The description adds important meaning not explicit in the schema: only passed fields change, a missing statement is created with a computed closing balance, and amounts are in AUD.

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 states a specific verb and resource: create or update one member's statement for a financial year. It clearly distinguishes this from list_member_statements (used to obtain fund_member_id) and allocate_earnings (referenced as the preferred earnings tool).

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?

It explains when a statement is created versus updated, describes a concrete field-by-field workflow for a new year, and names the related tools list_member_statements and allocate_earnings. It also states explicit rejection conditions for closed/lodged years and inactive members.

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