Skip to main content
Glama
ryanduguid

au-tax-mcp-server

au-tax-mcp-server

+----------------------------------------------------------------------+
|                          au-tax-mcp-server                           |
+----------------------------------------------------------------------+
|                 MCP server for AU tax review engines                 |
+----------------------------------+-----------------------------------+
| DR  what it gives you            | CR  what it needs                 |
+----------------------------------+-----------------------------------+
| MCP tools for AU tax review      | an MCP capable host client        |
| delegates to reviewed engines    | uv or uvx to install it           |
| synthetic SBR test fixtures      | -                                 |
+----------------------------------+-----------------------------------+

tests Python Model Context Protocol MCP Registry Glama License: MIT

MCP 门面,封装经过审查的澳大利亚计算会计引擎。兼容 Claude Desktop、Claude Code、Cursor、Codex 和 Antigravity。

Payday Super 是实验性审查(非合规性判定)。Division 7A 被拒绝——没有还款计算器。SBR 载荷是合成夹具。

[!WARNING] 非税务建议。 此服务器返回结构化结果、拒绝和引用。它不进行申报,也不能替代注册代理。参见 DISCLAIMER.md

这是一个计算型 MCP,而非托管的 ATO 文档库。它对操作者提供的数字应用法定测试(Payday Super 时间、ATO 小企业基准比率),并拒绝 Division 7A。如需查找裁定,请使用文档检索 MCP。对比:面向 AI 代理的澳大利亚税务工具

此服务器重新实现税法。Payday Super 和 ATO 小企业基准委托给:

Division 7A 在存在经过审查的引擎之前被拒绝。SBR 载荷是合成夹具,而非申报。

30 秒证明

合成 BAS 输出和 Division 7A 拒绝的动画终端证明

在不启动 stdio 服务器的情况下运行虚构演示:

uvx --from aus-accounting-mcp aus-accounting-mcp-demo

已检查的文本记录 是动画的可访问事实来源。其注册的 MCP 调用返回一个合成 BAS 夹具,其中 synthetic 为 true,not_a_lodgment 为 true,然后返回一个故意的 Division 7A 拒绝,错误码为 ERR_POLICY_DIV7A_REFUSED。

预期的结构化成功:

synthetic: true
not_a_lodgment: true
form_type: BAS_AU_ACTIVITY_STATEMENT
summary.total_payable_to_ato: "42500.00"

预期的结构化拒绝:

code: ERR_POLICY_DIV7A_REFUSED
available: false
reviewed_engine: false

该示例是虚构的,不是申报,不是税务建议,并且在进行任何后续会计操作前需要人工审查。它既不使用客户数据,也不联系外部服务。

名称映射:仓库 au-tax-mcp-server;Python 发行版 aus-accounting-mcp;stdio MCP 可执行文件 aus-accounting-mcp;演示可执行文件 aus-accounting-mcp-demo;MCP Registry 标识 io.github.ryanduguid/aus-accounting。

规范发布和兼容性参考:CIv0.1.6 发布PyPI 0.1.6MCP Registry 0.1.6compatibility.json。仅当目标解析并匹配兼容性记录后,才将版本视为已发布。该记录链接引擎维护的源代码和发布;运行时 law_content_date 和 source 仍归引擎所有。

Related MCP server: Accounting Practice MCP Server

安装

Python 3.10+ 和 uv。此服务器及其引擎发布到 PyPI;服务器将其审查过的引擎固定到精确版本:

使用 CITATION.cffv0.1.6 发布记录 获取版本化来源;在依赖之前验证目标。

uvx aus-accounting-mcp

克隆并 pip install . 在需要本地可编辑树时仍然有效。

客户端集成

标准配置适用于运行本地 stdio MCP 服务器的主机:

{
  "mcpServers": {
    "aus-accounting": {
      "command": "uvx",
      "args": [
        "aus-accounting-mcp"
      ]
    }
  }
}

现成的副本位于 clients/

Cursor

添加到 Cursor

或将标准配置放入 ~/.cursor/mcp.json

Claude Desktop

将标准配置粘贴到 claude_desktop_config.json(Windows 上为 %APPDATA%\Claude\,macOS 上为 ~/Library/Application Support/Claude/)。

Claude Code

claude mcp add aus-accounting -- uvx aus-accounting-mcp

Codex

codex mcp add aus-accounting -- uvx aus-accounting-mcp

工具

工具

职责

引擎

list_ato_benchmark_industries

列出或搜索随附的 ATO 业务类型

ato-benchmark-compare

get_ato_benchmarks

将操作者提供的桶总额与 ATO 范围进行比较

ato-benchmark-compare

calc_payday_super_deadline

根据 Payday Super 时间审查一笔缴款

payday-super-checker

refuse_div7a

返回拒绝。未接入经过审查的 Div 7A 引擎

none

generate_synthetic_sbr_fixture

用于代理测试的合成 CTR/BAS(synthetic: true

local fixture

calc_payday_super_deadline 需要 as_at。它不会虚构清算所延迟,也无法确认 LCR 2026/1 过渡分配。仅凭汇款日期无法产生 ON_TIME。省略的 ATO 费用桶为 not_supplied,而非零。

金额是十进制字符串,有限,最多两位小数,且不大于 AUD 1,000,000,000,000.00。日期为 ISO-8601。Payday Super 使用 payday-super-checker 的国家 SGAA 1992 s 6(1) 日历。

询问代理:

Compare these P&L buckets to the ATO small-business benchmarks for this industry. Omit buckets I have not supplied. Do not treat missing as zero.
Review this Payday Super contribution. QE day, remitted date, and fund-receipt date are in the CSV. as_at is today. Do not invent an SGC charge.

许可证

MIT 许可证。由 Ryan Duguid 创建。边界声明:DISCLAIMER.md。发现副本:docs/DISCOVERY.md。引用:CITATION.cff

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