Skip to main content

Aus Accounting MCP

tests PyPI License: MIT Python 3.10+

Local Australian accounting tools for AI assistants. Compare business figures with ATO benchmarks, review Payday Super timing and check limited Division 7A loan terms and repayments. Calculate 6 bounded tax worksheets, search a configured local Markdown library with file and line citations, and search a configured legislation corpus for provisions, rates and thresholds cited to their Act, section and compilation. Includes synthetic CTR/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. See DISCLAIMER.md.

Install

Requires Python 3.10+ and uv:

uvx aus-accounting-mcp

The server waits for an MCP client over stdio. No API key, account or sign-in is required. Installation downloads packages; tool calls then read bundled data and the folders you explicitly configure, locally, without contacting services or changing records. It does not fetch documents from the ATO or the Federal Register, and it does not lodge.

Client integration

For Claude Desktop, Cursor and other clients that support local stdio servers:

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

Add to Cursor or use the client setup guide.

For Codex:

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

For Claude Code:

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

For Gemini CLI:

gemini mcp add -s user aus-accounting uvx aus-accounting-mcp

For VS Code:

code --add-mcp "{\"name\":\"aus-accounting\",\"command\":\"uvx\",\"args\":[\"aus-accounting-mcp\"]}"

Windsurf reads the standard config from ~/.codeium/windsurf/mcp_config.json, and any other host that launches a local stdio server runs it the same way. ChatGPT connectors and the Claude.ai web app accept a remote URL rather than a local command, so they cannot run this server.

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 using the pinned Payday Super checker.
calculate_tax_worksheet Calculate one of 6 worksheets with established scope and period.
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, cited to Act, section, compilation and register page.
read_tax_legislation_section Read one cited provision from that corpus in full.
search_tax_rates Find legislated rate and threshold rows with the provision that sets them.
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.
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.

The 6 worksheets cover bounded GST, resident basic tax, CGT, FBT, first-year depreciation and quarterly SG cases. Read aus-accounting://scope before supplying scope confirmation. Most support 2025-26; see the reference for periods and exclusions.

With the development worksheet engine, aus-accounting://scope also includes engine-owned period dates, required inputs and units, methods, Library example references and fabricated example.facts that can be passed to the worksheet tool. With the published pinned engine, the resource retains its existing scope, source and source-check date fields. The richer catalogue remains unreleased; published dependency pins have not changed. To enable library retrieval, set AUS_ACCOUNTING_LIBRARY_ROOT in the server's environment to an authorised Markdown folder. Returned excerpts enter the calling assistant's context. The package contains no reference library.

Legislation corpus

Set AUS_ACCOUNTING_CORPUS_ROOT to a legislation corpus you have built or obtained and authorise the assistant to read. The three corpus tools then cite every provision to its Act, section, compilation number, compilation date and register page, and carry the corpus licence and attribution with the text.

The package ships no corpus and downloads nothing, so the corpus stays yours: no account, no hosted index and no record of what you searched for. au-tax-legislation-corpus builds one from the Federal Register of Legislation in the expected layout.

A row is a point-in-time copy from one build, not a live lookup, and version_is_current records what was true when the corpus was built. Check the compilation date and the register page before relying on a provision, and treat a rate row as the text of one provision rather than a calculation or a confirmed current figure. Retrieval does not extend what the reviewed engines calculate. The reference covers the layout, fields, bounds and a worked example.

Payday Super needs an explicit assessment date and fund-receipt evidence before it can return ON_TIME. Check the aus-accounting://payday-coverage resource for bundled rate and calendar coverage, and retain the result's caveats.

Division 7A covers the reviewed s 109N/s 109E scope only. It refuses matters such as forming amalgamated loans, s 109R repayment classification, unpaid present entitlements and distributable surplus. The reference covers all exclusions, input rules, prompts, resources and evaluation instructions.

Payday Super evidence pack

In v0.2.3, build_payday_super_evidence_pack accepts the same contributions and explicit as_at as grouped review. It delegates the assessment and all 4 artefacts to the checker. There are no path arguments, fixture-path lookups, filesystem writes or network calls.

The response includes files keyed by report.csv, practitioner-review.md, exceptions.json and decision-log.md. Save the strings as UTF-8 without changing newlines or removing the CSV's initial BOM; the Markdown and JSON bind to those exact report bytes. Source row numbers are one-based positions in the input list. review_exit_code is 2 for any non-ON_TIME row and 0 only when all rows are ON_TIME. An error remains an MCP error. No decision or sign-off is generated.

The default response_detail="full" includes the pack in both text and structured content for client compatibility. Hosts that read structuredContent.files can request response_detail="compact" to replace the duplicate text with a short summary, the disclaimer and caveats. Both modes retain every file byte, hash and review flag. Use full mode if the host only reads text results.

Record decisions and practitioner sign-off in decision-log.md; the included checklist links to that record.

Employee identifiers are omitted from the returned pack. The calling MCP host still receives the input references; use an approved environment and fabricated data for demonstrations. Amounts, dates and warnings remain private workpaper information. Missing receipt dates remain missing.

The 17-column evidence report is for the included checklist. It is not accepted by legacy review-pack or the accounting review pipeline's PaydaySuper.Report Excel importer. Use an ordinary 18-column checker report for that importer.

Published MCP v0.2.3 pins payday-super-checker==0.1.5, which includes the pack builder. Run uvx aus-accounting-mcp==0.2.3 for that version. An installation with checker v0.1.3 returns a feature-unavailable error for this tool; the existing tools continue to work. See the website guide for examples and scope.

30-second proof

From apps/aus-accounting-mcp/ in a repository checkout, run the fabricated example:

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

Static terminal proof 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.

Licence and releases

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

Release files for aus-accounting-mcp 0.2.3

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.3
File Size Uploaded
aus_accounting_mcp-0.2.3.tar.gz 277.7 kB Details

Built distribution (wheel)

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

Total release size: 332.5 kB

Release files / aus_accounting_mcp-0.2.3.tar.gz

Download URL aus_accounting_mcp-0.2.3.tar.gz
Size 277.7 kB
Tags Source
SHA-256 checksum
How to use checksums
fc9ea38541ea6e468077866d27dd712e83654fce2b2ebedc40203b153705738d
BLAKE2b-256 checksum
How to use checksums
309f3176a898760fc560f71dc42f04f47c3e8466ddd17ecd4b9b2db4311c22f7
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 19, 2026.

Transparency log

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

Download URL aus_accounting_mcp-0.2.3-py3-none-any.whl
Size 54.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cb9f99be5cb8a3cdf773293c0e0dc72247191facd61f11e2b9af5ea3e270af83
BLAKE2b-256 checksum
How to use checksums
ca805ec27558196737342a6c4def7c0886a1432d35d0a5f2f8c3a1b256ec7d0a
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 19, 2026.

Transparency log

Release history Release notifications | RSS feed

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

This release

0.2.3 This release

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