Skip to main content
Glama
ryanduguid

Aus Accounting MCP

Generate a synthetic CTR or BAS fixture

generate_synthetic_sbr_fixture
Read-onlyIdempotent

Create synthetic CTR or BAS test payloads for validating agent integration without lodging real tax returns.

Instructions

Generate fabricated CTR/BAS payloads for testing an agent integration.

revenue_or_sales is an AUD decimal string such as "1000.00": finite, at most 2 decimal places, absolute value at most 1000000000000.00. Use only with synthetic inputs. Fixed demonstration assumptions produce a payload marked synthetic=true and not_a_lodgment=true, not a real tax calculation or production SBR validation. Returns the fixture in memory; no file writes, network calls or lodgements. Not statutory advice.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
form_typeYesFixture type: "CTR" (company tax return) or "BAS" (activity statement), case-insensitive. No other forms are supported.
entity_nameNoFabricated entity label for test output; defaults to "Synthetix Pty Ltd". Do not supply real client data.Synthetix Pty Ltd
revenue_or_salesNoFabricated gross revenue (CTR) or total sales G1 (BAS); defaults to "1000000.00".Other figures use fixed demonstration assumptions.1000000.00

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.1.13
    • addedInput schema / properties / entity_name / maxLength
      Added value: +120
    • addedInput schema / properties / form_type / maxLength
      Added value: +20
    • changedInput schema / properties / revenue_or_sales / description
      Previous value: -"Fabricated gross revenue (CTR) or total sales G1 (BAS); defaults to \"1000000.00\". Other figures use fixed demonstration assumptions. AUD decimal string, e.g. \"1000.00\"; finite, at most 2 decimal places, absolute value at most 1000000000000.00."New value: +"Fabricated gross revenue (CTR) or total sales G1 (BAS); defaults to \"1000000.00\".Other figures use fixed demonstration assumptions."
    • addedInput schema / properties / revenue_or_sales / maxLength
      Added value: +60
  2. Changed1 schema field changedv0.1.10
    • addedInput schema / additionalProperties
      Added value: +false
  3. Changed4 schema fields changedv0.1.8
    • addedOutput schema / $defs
      Added value: +{
      +  "BasFixture": {
      +    "additionalProperties": true,
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "income_statement"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "reconciliation"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "entity": {
      +        "additionalProperties": true,
      +        "description": "Fabricated identity and period fields.",
      +        "title": "Entity",
      +        "type": "object"
      +      },
      +      "form_type": {
      +        "const": "BAS_AU_ACTIVITY_STATEMENT",
      +        "title": "Form Type",
      +        "type": "string"
      +      },
      +      "gst_labels": {
      +        "additionalProperties": {
      +          "description": "Finite engine decimal string, including exponent notation; retain its precision.",
      +          "pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$",
      +          "type": "string"
      +        },
      +        "description": "Synthetic BAS GST labels.",
      +        "title": "Gst Labels",
      +        "type": "object"
      +      },
      +      "not_a_lodgment": {
      +        "const": true,
      +        "description": "Never a lodgment-ready payload.",
      +        "title": "Not A Lodgment",
      +        "type": "boolean"
      +      },
      +      "payg_withholding_labels": {
      +        "additionalProperties": {
      +          "description": "Finite engine decimal string, including exponent notation; retain its precision.",
      +          "pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$",
      +          "type": "string"
      +        },
      +        "description": "Synthetic BAS PAYG labels.",
      +        "title": "Payg Withholding Labels",
      +        "type": "object"
      +      },
      +      "summary": {
      +        "additionalProperties": {
      +          "description": "Finite engine decimal string, including exponent notation; retain its precision.",
      +          "pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$",
      +          "type": "string"
      +        },
      +        "description": "Synthetic BAS total.",
      +        "title": "Summary",
      +        "type": "object"
      +      },
      +      "synthetic": {
      +        "const": true,
      +        "description": "Fabricated test data; never real client results.",
      +        "title": "Synthetic",
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "synthetic",
      +      "not_a_lodgment",
      +      "entity",
      +      "form_type",
      +      "gst_labels",
      +      "payg_withholding_labels",
      +      "summary"
      +    ],
      +    "title": "BasFixture",
      +    "type": "object"
      +  },
      +  "CtrFixture": {
      +    "additionalProperties": true,
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "gst_labels"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "payg_withholding_labels"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "summary"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "entity": {
      +        "additionalProperties": true,
      +        "description": "Fabricated identity and period fields.",
      +        "title": "Entity",
      +        "type": "object"
      +      },
      +      "form_type": {
      +        "const": "CTR_AU_2025",
      +        "title": "Form Type",
      +        "type": "string"
      +      },
      +      "income_statement": {
      +        "additionalProperties": {
      +          "description": "Finite engine decimal string, including exponent notation; retain its precision.",
      +          "pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$",
      +          "type": "string"
      +        },
      +        "description": "Synthetic CTR income figures.",
      +        "title": "Income Statement",
      +        "type": "object"
      +      },
      +      "not_a_lodgment": {
      +        "const": true,
      +        "description": "Never a lodgment-ready payload.",
      +        "title": "Not A Lodgment",
      +        "type": "boolean"
      +      },
      +      "reconciliation": {
      +        "additionalProperties": {
      +          "description": "Finite engine decimal string, including exponent notation; retain its precision.",
      +          "pattern": "^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$",
      +          "type": "string"
      +        },
      +        "description": "Synthetic CTR reconciliation.",
      +        "title": "Reconciliation",
      +        "type": "object"
      +      },
      +      "synthetic": {
      +        "const": true,
      +        "description": "Fabricated test data; never real client results.",
      +        "title": "Synthetic",
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "synthetic",
      +      "not_a_lodgment",
      +      "entity",
      +      "form_type",
      +      "income_statement",
      +      "reconciliation"
      +    ],
      +    "title": "CtrFixture",
      +    "type": "object"
      +  }
      +}
    • removedOutput schema / additionalProperties
      Removed value: -true
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "$ref": "#/$defs/CtrFixture"
      +  },
      +  {
      +    "$ref": "#/$defs/BasFixture"
      +  }
      +]
    • changedOutput schema / title
      Previous value: -"generate_synthetic_sbr_fixtureDictOutput"New value: +"SyntheticFixture"
  4. Changed3 schema fields changedv0.1.7
    • addedInput schema / properties / entity_name / description
      Added value: +"Fabricated entity label for test output; defaults to \"Synthetix Pty Ltd\". Do not supply real client data."
    • addedInput schema / properties / form_type / description
      Added value: +"Fixture type: \"CTR\" (company tax return) or \"BAS\" (activity statement), case-insensitive. No other forms are supported."
    • addedInput schema / properties / revenue_or_sales / description
      Added value: +"Fabricated gross revenue (CTR) or total sales G1 (BAS); defaults to \"1000000.00\". Other figures use fixed demonstration assumptions. AUD decimal string, e.g. \"1000.00\"; finite, at most 2 decimal places, absolute value at most 1000000000000.00."
  5. First observedv0.1.6

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) by disclosing exact behavioral characteristics: "Returns the fixture in memory; no file writes, network calls or lodgements," the payload flags synthetic=true and not_a_lodgment=true, and the disclaimer that it is not a real tax calculation or statutory advice. The annotations cover the safety profile, and the description adds the operational details.

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?

Four sentences, purpose first, then validation, then usage restriction, then return behavior. Each sentence earns its place and the critical 'test-only' framing is front-loaded. Slightly dense in the middle, but nothing is redundant.

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?

Complete for a fixture-generation tool: purpose, input format constraints, usage boundaries, output marking, side-effect guarantees, and the in-memory return behavior. Since an output schema exists, the description need not explain return values. No meaningful gap remains.

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. The description adds real value by specifying the exact validation contract for revenue_or_sales: finite AUD decimal string, at most 2 decimal places, absolute value at most 1000000000000.00 — constraints absent from the schema. This materially helps an agent construct valid input.

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+intent: "Generate fabricated CTR/BAS payloads for testing an agent integration." This immediately differentiates it from the sibling tools, none of which produce test fixtures. The title reinforces the same unambiguous scope.

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?

States clear context: "Use only with synthetic inputs" and "Not statutory advice," which tells an agent this is a test-only tool, not a production calculation path. It doesn't explicitly name an alternative sibling for real calculations, but the exclusion of production SBR validation is explicit enough to route correctly.

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