Skip to main content

Aus Accounting MCP

tests PyPI License: MIT Python 3.10+

Australian accounting tools for Claude, Cursor, Codex and other MCP clients. The server runs on your machine over stdio, needs no API key or account, and makes no network calls once installed.

  • ATO small business benchmarks: compare a business's P&L figures with the benchmark ranges for its industry.
  • Payday Super: review contribution timing for one payday or a whole employer, and build a 4-file evidence pack for a practitioner's workpaper.
  • Division 7A: get the benchmark interest rate and review s 109N loan terms and s 109E minimum yearly repayments for one loan. Matters outside that scope are refused.
  • 10 tax and super worksheets: GST, resident basic tax, CGT, FBT, first-year depreciation, quarterly SG, Schedule 1 PAYG withholding, super contribution caps, account-based pension minimums and study and training loan repayments, each within a stated period and scope. A source checkout serves the tenth now; an installed server gets it only after the next australian-tax-calculators release and the aus-accounting-mcp release that moves its engine pin.
  • Cited research: search your own Markdown library, or a local copy of federal tax legislation, with every result cited to its file and line, or its Act, section and compilation.
  • Test data: generate synthetic CTR and BAS fixtures for integration testing.

Not tax advice. Payday Super and Division 7A reviews are experimental and need human review before consequential accounting action. Fixtures are not a lodgement. Ryan Duguid is not a registered tax agent or BAS agent. Project support is limited to software issues reproduced with fabricated data. Do not send taxpayer information or request advice, return preparation, tax-treatment confirmation, or lodgement. See DISCLAIMER.md.

Install

Requires Python 3.10+ and uv:

uvx aus-accounting-mcp

The server waits for an MCP client over stdio. Tool calls read bundled data and any folders you configure. They do not contact the ATO or the Federal Register, change records or lodge. Your MCP host still sends tool arguments and results to its model provider, so use fabricated data with a hosted model.

uvx keeps the version it first downloaded. To upgrade, name the release in your client configuration, for example aus-accounting-mcp==<version>.

Client integration

For Claude Desktop, Cursor, Windsurf and other hosts that run local stdio servers:

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

Add to Cursor, or from a terminal:

claude mcp add --scope user aus-accounting -- uvx aus-accounting-mcp
codex mcp add aus-accounting -- uvx aus-accounting-mcp

The client setup guide covers Gemini CLI, VS Code, Zed and others. ChatGPT connectors and the Claude.ai web app accept only remote servers, so they cannot run this one.

Example requests

Ask in plain English. Each of these fabricated requests resolves to one tool call:

Ask Tool
"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

Tools

Tool Use
list_ato_benchmark_industries Find a business type in the bundled ATO dataset.
get_ato_benchmarks Compare supplied P&L figures with ATO benchmark ranges.
calc_payday_super_deadline Review timing for one super contribution.
review_payday_super_contributions Review related contributions together for one employer.
build_payday_super_evidence_pack Return 4 review files in memory for a practitioner's workpaper.
calculate_tax_worksheet Calculate one of 10 worksheets with established scope and period.
get_div7a_benchmark_rate Get a reviewed Division 7A benchmark rate, or UNKNOWN.
review_div7a_loan Review s 109N terms and s 109E minimum yearly repayments for one supplied amalgamated loan.
refuse_div7a Explain unsupported Division 7A matters. Call without arguments.
search_accounting_library Search a configured local Markdown library.
read_accounting_library Read cited lines from that library.
search_tax_legislation Find provisions in a configured local legislation corpus, best match first.
read_tax_legislation_section Read one cited provision in full, in parts when it is long.
define_tax_term Find an expression's statutory definitions in that corpus.
search_tax_rates Find legislated rates and thresholds with the provision that sets them.
generate_synthetic_sbr_fixture Generate fabricated CTR/BAS test data.

Missing figures remain unknown. Preserve UNKNOWN, REFUSED, not_supplied and null results; ok: true means the tool ran, not that a review passed. Supply an explicit assessment date and fund-receipt evidence, both the date and the amount received (received with matched_amount), before reading a Payday Super result as ON_TIME.

The research tools need a folder you supply: set AUS_ACCOUNTING_LIBRARY_ROOT to an authorised Markdown folder, AUS_ACCOUNTING_CORPUS_ROOT to a legislation corpus, or AUS_ACCOUNTING_RULINGS_ROOT to ATO rulings runs, such as those built by au-tax-legislation-corpus. The package ships none of them. A corpus or rulings row is a point-in-time copy, not a live lookup, and an edited version of private advice cannot be relied on by anyone. Point the library at reference material, or at one engagement at a time, never at a folder of mixed client files: every match enters the assistant's context, whichever client it came from.

The reference covers every exclusion, input rule, prompt, resource, the evidence pack format and the evaluation suite. The website guide has further examples. For the supplier information a firm needs for its AI register, and answers to the questions buyers put to tax-research tools, see For a firm assessing this server.

30-second demonstration

From apps/aus-accounting-mcp/ in a repository checkout, run the fabricated example. It shows the tools running on synthetic data; it is not evidence that a review passed:

uv run --locked aus-accounting-mcp-demo

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

The checked text transcript and proof and provenance record the expected output, limitations and asset source.

Conformance cases

conformance/cases.json holds eight Payday Super and Division 7A calls with the results this server returns, including the cases it leaves UNKNOWN or refuses. Another implementation can replay them; see conformance/README.md.

Licence and releases

MIT License. Created by Ryan Duguid. Release notes, v0.2.12 release record, CITATION.cff.

Metadata

Release files for aus-accounting-mcp 0.2.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aus-accounting-mcp 0.2.12
File Size Uploaded
aus_accounting_mcp-0.2.12.tar.gz 332.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aus-accounting-mcp 0.2.12
File Interpreter ABI Platform
aus_accounting_mcp-0.2.12-py3-none-any.whl Python 3 none any Details

Total release size: 405.9 kB

Release files / aus_accounting_mcp-0.2.12.tar.gz

Download URL aus_accounting_mcp-0.2.12.tar.gz
Size 332.7 kB
Tags Source
SHA-256 checksum
How to use checksums
5fb0edee9c4020cee6e10fa6920298e5c7c059b0ecf216e91c8953520a13edf6
BLAKE2b-256 checksum
How to use checksums
b629006581b4014725a8c36050c35434438e53f22ddf1b31d6a35c6498906150
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / aus_accounting_mcp-0.2.12-py3-none-any.whl

Download URL aus_accounting_mcp-0.2.12-py3-none-any.whl
Size 73.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b064a748eaeb2efb9272f5da2c000bc193393d58147339f6a8669ef9d4eaa30c
BLAKE2b-256 checksum
How to use checksums
4e9ab730236ea01710f5180fd2841bec8b5e42dfae9bc6c86abe365f07f9a94c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.0

2 release files

This release

0.2.12 This release

2 release files

0.2.11

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page