Skip to main content
Glama
ryanduguid

au-tax-mcp-server

australian-accounting

Development home for the Aus Accounting MCP application and six independently released Australian accounting engines. Each component keeps its own distribution name, version, lockfile, tests, release notes, commands and licence. There is no root package, root lockfile, shared runtime library or combined version.

Components

Path

Distribution

Import package

Commands

apps/aus-accounting-mcp/

aus-accounting-mcp

aus_accounting_mcp

aus-accounting-mcp, aus-accounting-mcp-demo

packages/ato-benchmark-compare/

ato-benchmark-compare

atobenchmark

ato-benchmark-compare

packages/payday-super-checker/

payday-super-checker

paydaysuper

payday-super-check

packages/div7a-loan-review/

div7a-loan-review

div7aloan

div7a-loan-review

packages/the-exchequer-tally/

the-exchequer-tally

edwinnixon

the-exchequer-tally

packages/solomons-sword/

solomons-sword

louisgoldberg

solomons-sword

packages/the-wip-tally/

the-wip-tally

wiptally

wip-tally

IMPORTS.md records the source repository, commit and tree of every imported engine. The MCP application is the io.github.ryanduguid/aus-accounting MCP Registry server; it depends on the published ato-benchmark-compare, payday-super-checker and div7a-loan-review distributions, not on the sibling directories.

Related MCP server: Accounting Practice MCP Server

Working in a component

Change into the component directory and use the commands its own README.md, AGENTS.md or CONTRIBUTING.md documents. The root CONTRIBUTING.md routes the common commands and names the root workflow that runs them.

Boundaries

  • The MCP application depends on engines only through their published distributions.

  • Engines never import aus_accounting_mcp or another engine, and no production module uses a relative import that leaves its package; tests/test_boundaries.py proves both.

  • Only the workflows under the root .github/workflows/ are active. Workflow files inside component directories are historical records of the source repositories.

  • No client data, credentials or generated client reports enter this repository.

Releases

Each component is released on its own namespaced tag <component>/vX.Y.Z by its own root workflow .github/workflows/release-<component>.yml, which calls the pinned Release Policy reusable workflow for that component directory only. CONTRIBUTING.md has the table.

Each component's LICENSE applies to that component, and packages/ato-benchmark-compare/NOTICE covers its bundled ATO data. Outputs are review aids, not advice.

Available Tools

7 tools
calc_payday_super_deadlineB

Review one contribution against payday-super-checker.

qe_day is the qualifying-earnings (payday) date. as_at is required. received is fund receipt. remitted is the day money was sent. This tool does not invent clearing-house latency and cannot confirm LCR 2026/1 transition allocation. Without a fund-receipt date the statutory test cannot return ON_TIME. Dates are ISO-8601. Amounts are decimal strings.

ParametersJSON Schema
NameRequiredDescriptionDefault
as_atYes
qe_dayYes
receivedNo
remittedNo
sg_amountYes
db_interestNo
employee_idNomcp-1
out_of_cycleNo
first_to_fundNo
next_standard_qe_dayNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It explicitly discloses important limitations: the tool does not invent clearing-house latency, cannot confirm LCR 2026/1 transition allocation, and cannot return ON_TIME without a fund-receipt date. This is far more transparent than a typical description, though it does not address side effects or authentication.

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 information-dense; each sentence contributes either a parameter definition, a format rule, or a limitation. The main purpose is stated clearly in the first sentence. The ordering could be slightly improved, but there is no padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a domain-specific tool with 10 parameters and no annotations, the description covers required inputs and key behavioral caveats but leaves most optional flags opaque. An agent would need significant outside domain knowledge to correctly set db_interest, out_of_cycle, first_to_fund, next_standard_qe_day, or employee_id. The output schema exists, but the input side is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining parameters. It explains qe_day, as_at, received, and remitted, and notes ISO-8601 dates and decimal strings, but 6 of 10 parameters, including sg_amount, db_interest, out_of_cycle, first_to_fund, next_standard_qe_day, and employee_id, remain effectively unexplained or only given by their schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description has a specific verb and resource: 'Review one contribution against payday-super-checker,' which aligns with the tool name and the statutory/ON_TIME language. It is distinguishable from the unrelated sibling tools. However, 'payday-super-checker' itself is not elaborated, so a non-domain agent is left inferring the exact computation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: assess a contribution against the payday-super deadline. It provides useful input guidance such as as_at being required and received/remitted semantics, but it does not explicitly say when to choose this tool over an alternative or when not to use it.

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

generate_synthetic_sbr_fixtureB

Generate a synthetic CTR or BAS fixture. Not a lodgment and not statutory advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
form_typeYes
entity_nameNoSynthetix Pty Ltd
revenue_or_salesNo1000000.00

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It usefully discloses that the output is synthetic and non-lodgment, non-statutory-advice, but it doesn't mention side effects, persistence, or what the returned fixture corresponds to. The disclaimers are valuable but limite d.

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?

Two short sentences, front-loaded with the verb and resource, and no waste. Each sentence earns its place, with the negative disclaimers adding useful boundary information in a compact form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a small tool with an output schema and defaults on two params, the description is mostly adequate for a basic call, but it leaves the meaning of parameters and the intended use scenario implicit. The unexanded acronym CTR and absence of any alternative routing guidance mean a genuinely complete context woul d need more.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. 'CTR or BAS' gives a hint abou t the possible form_ty pe values, but entity_name and revenue_or_sales receive no explanation beyond their names and defaults. The description does not meaningfull y explain the required parameter or the two optional ones.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Generate') and resource ('synthetic CTR or BAS fixture'), so the tool's core purpose is clear. It also adds 'Not a lodgment and not statutory advice', which helps distinguish it from real submission tools, though it doesn't explicitly differentiate among the listed siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for creating synthetic test fixtures and explicitly says it is not a lodgment or statutory advice, providing a useful wnen-not cue. However, it offers no explicit guidance about when to choose this tool over siblings or what workflow it fits into.

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

get_ato_benchmarksA

Compare bucket totals against ATO small-business benchmarks.

Amounts are decimal strings. industry is an ATO business-type name (see list_ato_benchmark_industries). other_income is needed for any ratio: the ATO turnover rule reads it to choose the denominator, so without it every ratio is not_supplied. Pass 0 only where the operator established the business has no other income. This is a comparison, not a finding that anything is wrong. Uses ato-benchmark-compare.

ParametersJSON Schema
NameRequiredDescriptionDefault
w1No
rentNo
yearNo
industryYes
turnoverYes
other_incomeNo
salary_wagesNo
cost_of_salesNo
motor_vehicleNo
other_expenseNo
associated_personsNo
cost_of_sales_labourNo
contractor_commissionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It does this well by disclosing the denominator rule ('without it every ratio is not_supplied'), the special zero-passing caveat for other_income, and the non-judgmental nature ('This is a comparison, not a finding that anything is wrong'). It does not mention rate limits or side effects, but for a comparison tool this is acceptable.

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 front-loaded with the core purpose and each sentence adds useful context. The final sentence 'Uses ato-benchmark-compare' is an implementation detail that adds little for an AI agent, but it is not harmful. Overall the description is dense and efficient without being bloated.

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?

Given 13 parameters and no annotations, the description covers the essential context: purpose, value formats, industry source, the other_income dependency, and the fact that this is a benchmark comparison rather than a finding. An output schema exists, so return-value details are not required. It could be slightly more explicit about year and other optional bucket semantics, but the current level is largely complete for correct invocation.

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 0%, so the description must compensate. It adds meaningful semantics: amounts are decimal strings, industry is an ATO business-type name, and other_income affects ratio calculation. It does not individually explain every bucket parameter, but 'bucket totals' plus the schema titles provides reasonable coverage for the remaining fields.

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: 'Compare bucket totals against ATO small-business benchmarks.' This clearly distinguishes the tool from siblings like list_ato_benchmark_industries, which lists industry names, and get_div7a_benchmark_rate, which deals with a different benchmark. The added note 'This is a comparison, not a finding' further sharpens the purpose.

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 context on when to use the tool and how to prepare inputs, such as referencing list_ato_benchmark_industries for valid industry names and explaining that other_income is required for any ratio. It does not explicitly state when not to use this tool versus alternatives, but no obvious alternative provides the same comparison functionality, so the guidance is sufficient.

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

get_div7a_benchmark_rateA

Return the reviewed s 109N(2) rate for a year, or UNKNOWN.

Years use the YYYY-YY form, such as 2026-27. The delegated engine fails closed outside its reviewed frozen table and does not read the network. response_detail defaults to summary; pass full for the complete provenance and statutory trace.

ParametersJSON Schema
NameRequiredDescriptionDefault
year_of_incomeYes
response_detailNosummary

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses fail-closed behavior, frozen reviewed data, no network access, the UNKNOWN sentinel, and response_detail options. These traits help an agent predict execution context and trust boundaries.

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?

Three sentences with no fluff. The purpose is front-loaded, followed by essential format guidance and behavior details. Every sentence earns its place and the structure is easy to scan.

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 two-parameter rate lookup, the description is complete: it states the returned value, year format, failure mode, network isolation, and response_detail behavior. Since an output schema exists, detailed return-shape documentation is not required here.

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 0%, so the description must compensate. It explains the required year format with an example (YYYY-YY, e.g., 2026-27) and clarifies the response_detail enum semantics: summary is default, full returns provenance and statutory trace. Both parameters receive meaningful explanation.

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: 'Return the reviewed s 109N(2) rate for a year, or UNKNOWN.' This precisely identifies the tool's function and distinguishes it from sibling tools like get_ato_benchmarks or list_ato_benchmark_industries by referencing the specific statutory rate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear input-format guidance and behavioral context, but does not explicitly state when to prefer this tool over alternatives or mention any exclusion cases. Usage is implied rather than directly contrasted with sibling tools.

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

list_ato_benchmark_industriesA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
searchNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are present, so the description must carry the behavioral burden. It discloses the data source and the default behavior when year is omitted, but it does not characterize read-only status, side effects, error cases, or result handling beyond what the output schema already covers.

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 compact: a one-sentence purpose followed by two short parameter-behavior notes. Every sentence adds value and the core action is front-loaded.

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?

The tool is simple, has an output schema to describe return shape, and the description covers source, purpose, and parameter behavior. It could briefly point users toward get_ato_benchmarks for retrieving actual benchmark values, but that is not necessary to invoke this tool correctly.

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 0%, so the description must compensate. It does explain both parameters: search filters by name, and year is an optional benchmark year with a concrete example and fallback behavior. It could be more precise about accepted year formats, but it is sufficient for correct invocation.

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?

Description states a specific verb ('List'), resource ('ATO small-business benchmark industries'), and data source ('ato-benchmark-compare'). It is clearly differentiated from the sibling get_ato_benchmarks by focusing on the industries list rather than benchmark values.

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?

Clear context is provided for both optional parameters: search filters by name, and year selects a benchmark year with a defined default when omitted. The description does not explicitly name alternatives or exclusions, but for a simple list operation the usage intent is obvious.

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

refuse_div7aB

Refuse Division 7A matters outside the reviewed loan/MYR scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_fyNo
borrower_nameYes
loan_principalYes
is_secured_25_yearNo
lender_entity_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of explaining behavior, but 'refuse' is ambiguous: does it return a rejection, raise an error, or record a refusal? It also does not explain what happens to in-scope matters or what 'MYR' means. The operational effect is under-specified.

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 a single, front-loaded sentence with no filler. It is concise and to the point, though the cryptic 'MYR' slightly hurts precision. Overall it earns its place without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given five parameters, no annotations, and zero schema description coverage, this description is not enough for reliable tool use. It provides a useful scope rule, but the agent still needs to infer what 'refuse' does, what the parameters mean, and how this connects to the reviewed loan workflow. The presence of an output schema helps but does not fill these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no information about any of the five parameters. It does not clarify 'loan_principal' format, the meaning of 'start_fy', or how 'is_secured_25_year' affects the refusal decision. The description completely fails to compensate for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Refuse Division 7A matters') and a clear scope condition ('outside the reviewed loan/MYR scope'). It distinguishes itself from likely sibling review_div7a_loan by implying this is the negative decision path, though 'MYR' and 'reviewed loan' are not defined.

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 phrase 'outside the reviewed loan/MYR scope' gives an explicit condition for when this tool should be used: when a Division 7A matter falls outside the already-reviewed scope. It does not explicitly name alternative tools, but the scope condition effectively separates it from review_div7a_loan.

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

review_div7a_loanA

Review one operator-supplied amalgamated Division 7A loan.

The tool runs the s 109N gate and then the s 109E minimum yearly repayment. Unknown facts may be omitted or passed as null; they remain UNKNOWN and are never coerced to false or zero. Amounts and rates are decimal strings. response_detail defaults to summary; pass full for the complete engine audit.

ParametersJSON Schema
NameRequiredDescriptionDefault
loan_idNomcp-div7a-1
year_loan_madeNo
year_of_incomeYes
response_detailNosummary
written_agreementNo
maximum_term_yearsNo
remaining_term_yearsNo
security_coverage_at_first_madeNo
payments_applied_during_the_yearNo
terms_in_place_before_lodgment_dayNo
interest_rate_for_years_after_year_loan_madeNo
amalgamated_loan_unpaid_at_end_of_previous_yearNo
secured_by_registered_mortgage_over_real_propertyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does meaningful work: it discloses that unknown facts remain UNKNOWN and are never coerced to false or zero, that amounts and rates are decimal strings, and that `response_detail` defaults to summary unless `full` is requested. This adds valuable behavioral context beyond anything the schema provides, though it does not mention side effects or authorization expectations.

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 concise and well-structured: the primary purpose is front-loaded, followed by the engine behavior, then the crucial data-handling conventions, then the response-detail option. Every sentence earns its place and there is no filler.

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 domain-specific tool with 13 parameters and an output schema, the description covers the most important non-obvious details: unknown/null handling, decimal string types, and the `full` audit option. It does not explain the exact input format for `year_of_income` or clarify how the engine gates affect results, but the output schema and parameter titles reduce the missing surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It provides cross-cutting semantics useful across many parameters: null means unknown, amounts/rates are decimal strings, and `response_detail` has a default and a `full` alternative. However, it does not explain individual parameter formats such as `year_of_income` or `loan_id`, leaving some burden on titles and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/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: 'Review one operator-supplied amalgamated Division 7A loan.' It clearly names the tool's core function and scope, and the mention of 'one' loan distinguishes it from list or benchmark tools. However, it does not explicitly contrast itself with the closely named sibling `refuse_div7a`, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by describing what the tool does and the engine steps it runs ('s 109N gate' and 's 109E minimum yearly repayment'). However, there is no explicit statement about when to use this tool versus alternatives such as `refuse_div7a` or the benchmark tools, and no exclusions or prerequisites are provided.

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

TDQS

A3.7/5.0
Disambiguation4/5

The benchmark pair (list industries vs get benchmarks) is clearly separated, and the super deadline, Division 7A refusal, and synthetic fixture tools occupy distinct niches. There is minor potential for confusion between list_ato_benchmark_industries and get_ato_benchmarks, but the descriptions resolve it.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: list, get, calc, refuse, generate. The style is predictable and readable across the set.

Tool Count4/5

Five tools is a reasonable count for a focused server, but one tool is explicitly a refusal placeholder and another generates synthetic fixtures, so the effective functional surface is a bit thinner than the count suggests.

Completeness2/5

The set covers a few isolated AU-tax scenarios but is not a coherent tax surface. The most obvious gap is Division 7A, which is explicitly refused, and there are no broader tax calculation or lodgment workflows to support the server's apparent domain.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    Enables comprehensive Excel operations and financial calculations including investment analysis, rental property management, expense tracking, and automated financial reporting. Supports creating Excel workbooks with advanced financial formulas, cash flow projections, and tax calculations for accounting and finance workflows.
    100
    5
  • F
    license
    Not graded
    quality
    D
    maintenance
    Automates comprehensive accounting workflows including bookkeeping, tax planning, payroll processing, sales tax compliance, and client management. Integrates with QuickBooks and processes financial documents with AI-powered transaction categorization and compliance monitoring.
    1
  • A
    license
    A
    quality
    B
    maintenance
    Offers plain-English access to Australian Taxation Office statistics including personal tax by postcode, company tax by industry, corporate transparency for $100M+ entities, super contributions by age, and the ACNC charity register.
    7
    MIT
  • F
    license
    Not graded
    quality
    F
    maintenance
    Enables carbon emission calculations for Australian electricity and gas consumption using official National Greenhouse Accounts 2024 data, supporting all states and territories.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ryanduguid/australian-accounting'

If you have feedback or need assistance with the MCP directory API, please join our Discord server