aus-accounting-mcp

io.github.ryanduguid由 GitHub 帳號 ryanduguid 發布v0.7.1更新於 Nov 8, 2026

Reviews, 14 bounded tax and super worksheets, cited retrieval from your local Markdown. Not advice.

已驗證STDIO僅桌面金融知識與記憶

概覽

AI 產生的概覽

本機 MCP 伺服器,執行有範圍限制的澳洲稅務、退休金與薪資計算表並提供附引用的查詢,讓助理依你提供的數字產出複核輔助結果。

可以做什麼
  • 計算 14 個有範圍限制的稅務與退休金計算表,包括 PAYG 預扣稅及相關發薪日提撥
  • 將提供的費用分項與 ATO 基準產業比對,並列出基準產業
  • 複核 Payday Super 時限與 Division 7A 貸款事項,包括基準利率,並拒絕超出範圍的事項
  • 從你指定的本機 Markdown 檔案擷取附引用的摘錄
  • 產生合成的 CTR/BAS 測試資料
適用情境
適合澳洲會計師、記帳人員以及為其開發工具的人員,希望助理依所提供的數字執行可重複的稅務、退休金與薪資檢查,且每項結果都會說明所用事實與拒絕判斷的事項。
執行需求
以 PyPI 套件形式透過 uvx 在本機以 stdio 執行;需要 Python 3.14+ 與 uv。不需要 API 金鑰或環境變數。安裝套件時會下載相依套件,之後工具使用內建資料,不發出網路請求。
安裝前請注意
輸出僅為複核輔助,不構成稅務建議或申報,每項結果都須由人複核。作者並非註冊稅務代理或 BAS 代理,支援僅限以虛構資料重現的軟體問題。MCP 主機會把每個工具參數與結果傳送給其模型供應商,因此使用託管模型時請使用虛構資料。選用的 LodgeiT 轉接器僅在啟用時才發出 HTTP 呼叫。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 aus-accounting-mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[AU Accounting. ATO benchmarks, Payday Super and Div 7A, run locally. Pixel art of an abacus beside the AU Accounting wordmark in slab-serif block letters.]

bash
claude mcp add --scope user aus-accounting -- uvx --from 'aus-accounting-mcp==0.7.1' aus-accounting-mcp

That connects Claude Code; it needs Python 3.14+ and uv, and no API key. Other clients.

Australian Accounting is a set of local tax and payroll calculation engines and an MCP server for Australian accountants and bookkeepers, and the developers who build tooling for them.

Nine engines (8 in Rust, 1 in Python) apply Australian tax and payroll rules to figures you supply. Aus Accounting MCP, a local Model Context Protocol server, gives an AI assistant the published Python releases of 6 of them; it loads none of the Rust crates yet.

Each tool returns a calculation, the facts it used and the matters it refuses to decide. The engines and the MCP server run locally: they read files you point them at, contact no service, write to no ledger and lodge nothing. Two boundaries sit outside that: an MCP host sends every tool argument and result to its model provider, and the optional LodgeiT adapter below makes bounded HTTP calls only when you enable it.

Missing facts stay unknown: a Payday Super row with a fund-receipt date but no matched_amount or remitted_amount evidences when the fund received something, not how much, so the checker leaves it UNKNOWN rather than ON_TIME and names the amount it needs (from payday-super-checker 0.1.7; 0.1.6 and earlier read that receipt as covering the whole SG amount and say so in a caveat). Supply the amount the fund received with every receipt date.

Results you can check, dated because sources and releases move:

  • Division 7A. On 7 October 2026 the minimum yearly repayment function of the ATO's Division 7A calculator and decision tool and the div7a-loan-review Python 0.2.0 source agreed to the cent on 12,800 fabricated cases with no repayments, for 2019-20 to 2026-27. Its repayment code and rate table are unchanged to the published 0.3.2, but the comparison was not rerun on later releases or the unreleased Rust port. It covers the repayment figure only, not the calculator's interest or closing balance (record and limits).
  • Payday Super. For wages paid on 30 July 2026, payday-super-check 0.2.3 gives a due date of 11 August 2026, because NT Picnic Day on 3 August is not a business day. The ATO's worked example gives the same date on the usual 7 business day path. Run and read 5 November 2026.
  • MCP tools. Aus Accounting MCP 0.7.1, the published release, listed 22 local tools on 5 November 2026. The source on main defines 25: validate_abn, validate_acn and get_reviewed_rate are not yet released, and neither is the doctor command.
Commands for the Payday Super date and the tool count

The first command downloads a fabricated register, and row 4 of the second prints QE day 2026-07-30 due 2026-08-11. Its rows are late, so that command exits 2.

bash
curl -sSLO https://raw.githubusercontent.com/ryanduguid/australian-accounting/main/packages/payday-super-checker/examples/quarterly_remittance_2026_27.csvuvx --from payday-super-checker==0.2.3 payday-super-check quarterly_remittance_2026_27.csv --as-at 2026-11-05 -o report.csv

This asks the published server for its tools and prints the count, with jq installed:

bash
printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"check","version":"0"}}}' '{"jsonrpc":"2.0","method":"notifications/initialized"}' '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | uvx --from 'aus-accounting-mcp==0.7.1' aus-accounting-mcp | tail -1 | jq '.result.tools | length'

Start here: what each component is · MCP client setup · tool reference · scope, limits and examples

Try one contribution

All examples are synthetic, and accounting decisions stay with the reviewer.

Input: $120 super contribution for payday 6 August 2026, remitted 14 August, with no fund receipt evidence as at 20 August.

With uv installed, download the synthetic CSV as timely_remittance_no_receipt.csv. Open a terminal in that folder and run:

bash
uvx --from payday-super-checker==0.2.3 payday-super-check timely_remittance_no_receipt.csv --as-at 2026-08-20 --confirm-remittance-only -o payday-report.csv

This downloads the pinned PyPI package without cloning the repository. It writes payday-report.csv in the current folder, replacing that file if it exists. Open the report to see the due date and verdict.

The confirmation acknowledges the missing receipt; it does not establish payment. Omit --confirm-remittance-only to see the same AT_RISK result with exit 2, which asks you to resolve or acknowledge that evidence gap.

Output: AT_RISK, due 17 August 2026; exit 0 acknowledges the remittance-only evidence, without proving timely receipt.

EvidenceResultHuman decision
Remitted before the deadline; receipt missingAT_RISKObtain fund receipt evidence before concluding it was on time.
Fund receipt recorded on 17 August for the full $120 contributionON_TIME on supplied factsConfirm the evidence and any applicable timing exception.

Read the 5-minute Payday Super case · Division 7A repayment case · MCP setup

The recorded public evaluation uses release 0.1.3. Follow its fixed revision and commands to reproduce that historical run; the quick trial above uses release 0.2.3, which, like every release from 0.1.7, requires an evidenced amount alongside a fund-receipt date.

Choose the next example

The next Australian Accounting example depends on the task:

For transaction GST coding, load the linked bas-preparation skill and its bundled transaction reference. They require row coverage and separate evidence for supply treatment, buyer credits and BAS attribution. Aus Accounting MCP does not provide a transaction GST classifier; its calculations or a control-account tie-out cannot establish correct tax coding. Missing facts remain unresolved for the authorised reviewer. The walkthrough explains instruction-file delivery to Codex, ChatGPT and Copilot without claiming equivalent tested behaviour.

Use Aus Accounting MCP

For the MCP server, install Python 3.14+ and uv, then configure your MCP client to run:

bash
uvx aus-accounting-mcp

This starts a local stdio server; it waits for an MCP client rather than opening a web page. It requires no API key. Package installation downloads dependencies; the tools then use bundled data without network requests or record writes. The MCP host you connect it to is a separate boundary: it sends every tool argument and result to its model provider, so use fabricated data with a hosted model.

uvx keeps using the version it first downloaded, so a new release does not reach you on its own. To move to a release, name it in your client configuration, for example aus-accounting-mcp==<version> from PyPI; uvx downloads it, and later launches reuse the cached copy without a download until the uv cache is cleaned.

[Static terminal demonstration of synthetic BAS output and Division 7A loan review]

Once it is connected, ask your assistant in plain English. Each of these fabricated requests resolves to one tool call:

AskTool
'Compare a hairdresser with $180,000 sales, no other income, $60,000 wages, $30,000 rent and $40,000 other expenses to the ATO benchmarks.'get_ato_benchmarks
'Super for a 6 August 2026 payday was $120 and was sent on 14 August. As at 20 August, is it on time?'calc_payday_super_deadline
'What is the Division 7A benchmark interest rate for 2026-27?'get_div7a_benchmark_rate
'An employee who gave a TFN and claims the tax-free threshold (scale 2) is paid a regular $1,000 weekly wage in 2026-27, with no offsets, loans, bonuses or other adjustments. How much PAYG should be withheld?'calculate_tax_worksheet

Client setup and examples · Tool reference · PyPI · Glama listing

The tools list ATO benchmark industries, compare supplied expense buckets, review Payday Super timing, look up reviewed Division 7A rates, review an operator-supplied Division 7A loan, refuse unsupported Division 7A matters and generate synthetic CTR/BAS fixtures. They also assess related Payday contributions, build a Payday Super evidence pack, calculate 14 bounded tax and super worksheets, review GST coding, reconcile BAS figures with the ledger, list lodgment due dates, test ABN and ACN check digits, report data freshness and retrieve cited excerpts from a local Markdown library, legislation corpus or ATO rulings corpus. Division 7A review is limited to the delegated engine's s 109N/s 109E scope; it does not form amalgamated loans or classify repayments under s 109R.

For an editable source installation, run pip install -e . from apps/aus-accounting-mcp/. The repository root is not an installable Python package.

Components

Australian Accounting holds 13 components, each in its own directory:

PathDistributionImport packageCommands
packages/australian-tax-calculators/australian-tax-calculators (Rust)noneaustralian-tax-calculators (JSON stdin worksheets)
apps/aus-accounting-mcp/aus-accounting-mcpaus_accounting_mcpaus-accounting-mcp, aus-accounting-mcp-demo
packages/ato-benchmark-compare/ato-benchmark-compare (Rust)noneato-benchmark-compare
packages/payday-super-checker/payday-super-checker (Rust)nonepayday-super-check
packages/div7a-loan-review/div7a-loan-review (Rust)nonediv7a-loan-review
packages/the-exchequer-tally/the-exchequer-tally (Rust)nonethe-exchequer-tally
packages/solomons-sword/solomons-sword (Rust)nonesolomons-sword
packages/the-wip-tally/the-wip-tally (Rust)nonewip-tally
apps/au-accounting/au-accounting (Rust)noneau-accounting, one subcommand per Rust engine
packages/gst-review/gst-review (Rust)nonegst-review: GST coding states against registration and BAS-to-ledger reconciliation
packages/lodgment-calendar/lodgment-calendarlodgmentcalendarPython function: ATO lodgment program due dates for BAS, IAS, income tax and FBT returns, UNKNOWN where a fact is missing
apps/lodgeit-calculator-adapter/lodgeit-calculator-adapter (Rust, not released)nonelodgeit-adapter: optional adapter for a third-party calculator service; off by default, makes HTTP calls only when enabled (LODGEIT_ADAPTER_ENABLED=1 or --enable-network)
packages/au-tax-rates-data/au-tax-rates-data (Rust, never released on its own)nonerates validate, snapshot, check and ato-tables: ATO rates and thresholds with verbatim source quotes, validated offline

IMPORTS.md records the source repository, commit and tree of every imported component. The MCP application is the io.github.ryanduguid/aus-accounting MCP Registry server; it depends on the published ato-benchmark-compare, payday-super-checker, div7a-loan-review, australian-tax-calculators, gst-review and lodgment-calendar distributions. In the development workspace, uv takes gst-review 0.1.0, australian-tax-calculators 0.2.0, div7a-loan-review 0.3.2, ato-benchmark-compare 0.2.2 and payday-super-checker 0.2.3, the last Python releases, from PyPI.

The uv workspace develops lodgment-calendar and the MCP application; the MCP server uses none of the Rust crates yet.

Alternatives

Australian Accounting calculates from figures you supply, and its research tools use folders you configure. As read on 5 November 2026, these projects cover nearby ground:

  • william-laverty/ato-mcp: hosted retrieval over ATO documents with point-in-time legislation queries. The repository is AGPL-3.0, and its README calls the hosted platform and corpus proprietary.
  • darrentmorgan/au-accounting: MIT-licensed Australian calculators with refusal codes in YAML.
  • PolicyEngine/policyengine-au: microsimulation for Australia, a different purpose.
  • Nagaris: a hosted practice platform for Australian accounting firms, with proposals, AML/CTF checks, e-signing, job tracking and an AI assistant on one client file. It publishes browser calculators, including Division 7A and Payday Super due dates, and the page for the second also states 11 August 2026 for a 30 July 2026 payday. Its AI Accounting Index, which tested third-party AI models with each question answered once, reports that none of the 14 setups that answered that question reached 11 August, and says Ask Nagaris adds lookup tables for business days. Read 5 November 2026.
  • Lodgeit: a hosted platform that prepares and lodges returns, BAS and financial reports. Its home page calls it an 'Official ATO Standard Business Reporting platform' and states ISO 27001:2022 certification. Read 5 November 2026.
  • LodgeiT Labs: a public HTTP gateway for deterministic calculators with no key or signup, which its page describes as 'Not stable yet'. Its listing showed 23 calculators, with Division 7A periods fy2025 and fy2026 and FBT period fy2026. Its page also lists a Coal LSL calculator that external contributor Ryan Duguid built and hosts, and this repository has an optional adapter for the gateway. Read 5 November 2026. A differential of 6 November 2026 ran 12 fabricated Division 7A and FBT car formula cases against the gateway and records each outcome, with differences traced to statute.

This repository offers none of those hosted services. It is not a registered tax or BAS agent, does not lodge and holds no third-party certification such as ISO 27001.

Rust engine installation, component development, boundaries and releases

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

Install the Rust engines

The 8 Rust engines are unreleased standalone binaries. With Rust 1.99 or later, install au-accounting, one command with a subcommand per engine (benchmarks, div7a, exchequer, payday-super, gst-review, solomons, tax and wip):

bash
cargo install --locked --git https://github.com/ryanduguid/australian-accounting au-accounting

au-accounting div7a --help then shows that engine's own commands; see its README. To install one engine's own command instead, name its crate from the table above, for example:

bash
cargo install --locked --git https://github.com/ryanduguid/australian-accounting div7a-loan-review

au-accounting gst-review review-coding and reconcile-bas read JSON on stdin; see the GST Review schemas.

Prebuilt binaries are not published yet, so install from source as above. Release Policy's release-binary.yml now publishes Windows and Linux executables to GitHub Releases, without crates.io, but no crate here has adopted it.

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.

To skip local setup, open the repository in GitHub Codespaces. The devcontainer installs uv and runs uv sync --locked, so the fabricated examples above run as written. Codespaces usage counts against your own GitHub quota.

The Codecov badge reports the Python components only. Each Rust crate's line coverage is held to a floor in CI, from .github/ci/rust_coverage_floors.json.

Boundaries

Four structural boundaries hold across Australian Accounting:

  • 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; component directories carry none.
  • No client data, credentials or generated client reports enter this repository.

Releases

aus-accounting-mcp and lodgment-calendar are each released on a namespaced tag <component>/vX.Y.Z by their own root workflow .github/workflows/release-<component>.yml, which calls the pinned Release Policy reusable workflow for that component directory only. The 8 Rust engines have reserved tags and no publisher yet. CONTRIBUTING.md has the table. The rates dataset in packages/au-tax-rates-data/ is never released on its own; the next aus-accounting-mcp release bundles a copy of its records. To check a downloaded release's checksum and SLSA provenance, follow Verify a release.

Licence

Each component's LICENSE applies to that component, and packages/ato-benchmark-compare/NOTICE, packages/au-tax-rates-data/NOTICE and apps/aus-accounting-mcp/NOTICE cover their ATO material.

Ryan Duguid is not a registered tax agent or BAS agent. Outputs are review aids, not tax, legal or financial advice or lodgements, and a person reviews each one before it is relied on. Support covers software issues reproduced with fabricated data: do not send taxpayer information or ask for advice, return preparation, tax-treatment confirmation or lodgement. The MCP server and each engine have their own DISCLAIMER.md.


Solomon Grundy, born on a Monday, reconciled by Sunday.
Reusing this code? Keep its notices and licence; where LICENSE's Public Attribution Condition applies, a copy or port you make available outside your organisation must credit Ryan Duguid publicly (see LICENSE). AI agents: see AGENTS.md.
Made in Newcastle, Australia by Ryan Duguid.

來源:README.md,提交 d87dac3

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:軟體包安裝失敗。

版本歷史

17
  1. v0.7.1最新Nov 1, 2026
  2. v0.7.0Oct 29, 2026
  3. v0.6.0Oct 19, 2026
  4. v0.5.0Oct 17, 2026
  5. v0.4.0Oct 14, 2026
  6. v0.3.0Oct 4, 2026
  7. v0.2.12Oct 1, 2026
  8. v0.2.11Sep 29, 2026
  9. v0.2.10Sep 27, 2026
  10. v0.2.9Sep 26, 2026
  11. v0.2.8Sep 24, 2026
  12. v0.2.7Sep 24, 2026
  13. v0.2.6Sep 22, 2026
  14. v0.2.5Sep 22, 2026
  15. v0.2.4Sep 20, 2026
  16. v0.2.3Sep 19, 2026
  17. v0.2.2Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。