Skip to main content

asic-mcp

mcp-name: io.ausdata/asic-mcp

PyPI Python License Tests CodeQL Glama MCP server quality

MCP server for Australian Securities and Investments Commission registers. Plain-English access to the Financial Advisers Register, AFS Licensees, AFS Authorised Representatives, Credit Licensees, Banned & Disqualified Persons and Organisations, and Registered Liquidators — every one updated weekly by ASIC and served via data.gov.au.

Hosted access? For cross-source queries, webhooks, an always-on REST API, and a uniform response envelope across all 9 sources, see ausdata.io — free tier available (500 calls/mo, no card).

"Is Jane Smith a registered financial adviser?"
"Find every AFS licensee in NSW with 'Westpac' in the name."
"List all banned persons added since 2024-01-01."
"Who's the registered liquidator for KordaMentha?"
"Which credit licensees were suspended last year?"

Sister to abs-mcp (Australian Bureau of Statistics), rba-mcp (Reserve Bank of Australia), ato-mcp (Australian Taxation Office), apra-mcp (Australian Prudential Regulation Authority), aihw-mcp (Australian Institute of Health and Welfare), and au-weather-mcp (Australian weather). All seven together cover the macro / regulator / health / tax / climate layer of Australian official data.


Install

# Run on demand via uvx (recommended)
uvx --upgrade asic-mcp

# Or install permanently
pip install asic-mcp

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "asic": { "command": "uvx", "args": ["--upgrade", "asic-mcp"] }
  }
}

Why --upgrade? uvx asic-mcp (without the flag) uses whatever wheel is cached and never adopts new PyPI releases on its own. --upgrade makes uvx check PyPI on each launch and pull a newer release if one exists. To verify which version is currently serving you, look at the server_version field on any DataResponse.

Claude Code / Cursor

claude mcp add asic --command uvx --args -- --upgrade asic-mcp

Auto-updating data

Beyond the wheel-level --upgrade, the server has a second auto-update path inside the data layer: every register snapshot on data.gov.au is reissued each week (some monthly) at a stable resource UUID. asic-mcp resolves that UUID via data.gov.au's CKAN API at fetch time and uses the freshest match. Hard-coded YAML URLs are the safe fallback if CKAN discovery fails. You do not need to wait for a new wheel release to get new weekly data — the 24-hour cache TTL means a fresh snapshot lands within a day. Force-refresh by deleting ~/.asic-mcp/cache.db.


What it exposes

Five tools, all plain-English in, structured out:

Tool Purpose
search_datasets Fuzzy-search the curated catalogue by keyword
describe_dataset List a dataset's filterable dimensions and source URL
get_data Query with filters, period range, output format
latest Most recent observation(s) for a dataset (shortcut)
list_curated Enumerate the curated dataset IDs

Every response is the same shape — dataset_id, dataset_name, query, period, unit, row_count, records, source_url, attribution, server_version, stale — across every curated dataset.


Curated datasets (7)

ID What it is Cadence Source slug
ASIC_FINANCIAL_ADVISERS Every individual on the Financial Advisers Register (~21,000 records, 76 columns) Weekly asic-financial-adviser
ASIC_AFS_LICENSEE Every Australian Financial Services Licensee (~6,500 entities) Weekly asic-afs-licensee
ASIC_AFS_AUTH_REP Every AFS Authorised Representative — appointees under each AFSL Weekly asic-afs-authorised-representative
ASIC_CREDIT_LICENSEE Every Australian Credit Licensee (NCCP-regulated lenders, brokers, BNPL providers) Weekly asic-credit-licensee
ASIC_BANNED_PERSONS Persons banned/disqualified from financial services, credit, or managing corporations Weekly asic-banned-disqualified-per
ASIC_BANNED_ORGS Organisations banned/disqualified — companion register to BANNED_PERSONS Weekly asic-banned-disqualified-org
ASIC_LIQUIDATOR Every Registered Liquidator and Official Liquidator (~700 insolvency practitioners) Weekly asic-liquidator

Adding a new dataset is a single YAML drop into src/asic_mcp/data/curated/ — see CONTRIBUTING.md. v0.2 roadmap below adds enforcement statistics, short-position reports, and a streaming-lookup tool for the 373 MB Company Register.


Example queries (paste into Claude)

Cross-source compatibility. The state filter on every register accepts canonical state codes ("NSW"), full names ("New South Wales"), case-insensitive variants ("nsw"), ISO 3166-2 ("AU-NSW"), and 4-digit postcodes ("2000" → NSW). Powered by aus-identity — the same input format works across abs-mcp, ato-mcp, apra-mcp, aihw-mcp, and asic-mcp.

Compliance check: "Confirm whether AFSL 234945 is a current AFS licensee, who the legal name is, and what financial services it's authorised to deal in."

Consumer protection: "Has anyone with the surname 'Smith' been banned by ASIC in the last 5 years? Show the ban type, dates, and the public comment."

Insolvency: "List every Registered Liquidator practising under KordaMentha in NSW and Victoria."

Adviser lookup: "Find financial adviser number 000221137 — current/ceased, licensee, and qualifications."

Credit broker due diligence: "For Australian Credit Licence 219612, give me the licensee name, status, EDR scheme membership, and a summary of the authorisations text."

Each prompt resolves to one get_data (or latest) call. The response includes the source URL and CC-BY 3.0 AU attribution so the agent can cite it back.


Architecture

Same shape as the sister packages — client → cache → parsing → shaping → server:

  • client.py wraps httpx with a SQLite-backed disk cache and an in-flight dedup so a burst of latest() calls fans into one HTTP request. Sends a polite User-Agent — data.gov.au's CDN blocks the default httpx UA.
  • parsing.py reads CSV via pandas, with delimiter auto-sniffing because ASIC labels every file ".csv" but ships some as tab-separated (Financial Advisers, AFS Auth Rep, Banned Orgs) and some as comma-separated (AFS Licensee, Credit Licensee, Banned Persons, Liquidator).
  • curated.py loads dataset specs from data/curated/*.yaml — each one declares its dimensions, dimension-value enums, source/download URLs, and CKAN discovery hints.
  • discovery.py resolves the freshest CKAN resource URL at query time; falls back to the YAML default on any failure.
  • shaping.py transforms the parsed DataFrame into DataResponse (records / series / csv). For register data (no measure columns) it emits one Observation per row with all dimensions populated.
  • server.py is the FastMCP entrypoint — five tools, full input validation with helpful "Try X" hints on error.

Cache lives under ~/.asic-mcp/cache.db. ASIC registers refresh weekly, so the byte cache TTL is 24 hours and the CKAN catalogue cache is 1 hour.


Attribution

Source: Australian Securities and Investments Commission, licensed under Creative Commons Attribution 3.0 Australia (CC BY 3.0 AU). Data accessed via data.gov.au. © Commonwealth of Australia. The MCP server is MIT-licensed; the underlying register data carries the CC-BY 3.0 AU licence, which is echoed verbatim in every response's attribution field.


Sister MCPs (Australian Public Data portfolio)

Want all 9 sources behind one REST API? The hosted gateway at ausdata.io adds cross-source joins, full history, webhooks, and HMAC-signed responses on top of these MCPs — free tier (500 calls/mo, no card).

  • abs-mcp — Australian Bureau of Statistics (CPI, unemployment, ERP, building approvals)
  • rba-mcp — Reserve Bank of Australia (cash rate, lending stats, exchange rates)
  • ato-mcp — Australian Taxation Office (tax stats, ACNC charities)
  • apra-mcp — Australian Prudential Regulation Authority (banking, insurance, super)
  • aihw-mcp — Australian Institute of Health and Welfare
  • asic-mcp — this one. Financial advisers, AFS / credit licensees, banned persons & orgs, liquidators.
  • aemo-mcp — Australian Energy Market Operator (NEM dispatch, spot prices, generation)
  • au-weather-mcp — Open-Meteo (Bureau of Meteorology aggregator)
  • wgea-mcp — Workplace Gender Equality Agency
  • aus-identity — Postcode / state / ABN normalisation helper used by all sisters

The portfolio is designed to compose: an agent can ask for "current financial adviser in postcode 2000, paired with the AFS licensee's parent firm and the regulator's banning history" and one shot fans out across two or three MCPs.


Roadmap

  • v0.2: ASIC_REGISTERED_AUDITOR, ASIC_CREDIT_REPRESENTATIVE, ASIC_SMSF_AUDITOR. Streaming-lookup tool for the 373 MB Company Register (look up by ACN/ABN instead of bulk-loading).
  • v0.3: Insolvency Series 3.x XLSX from asic.gov.au (apra-mcp-style landing-page scrape). Short-position reports (daily CSV).
  • v0.4: Hosted version with x402 per-call paywall; programmatic SEO pages; MCPay + Apify listings.

CHANGELOG tracks every release.


Development

git clone https://github.com/Bigred97/asic-mcp.git
cd asic-mcp
uv sync --extra dev
uv run pytest                  # ~229 unit tests
uv run pytest -m live          # ~9 live tests against data.gov.au

Issues, ideas, and contributions welcome: github.com/Bigred97/asic-mcp/issues.

Release files for asic-mcp 0.6.21

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

Source distribution (sdist)

Source distribution for asic-mcp 0.6.21
File Size Uploaded
asic_mcp-0.6.21.tar.gz 253.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for asic-mcp 0.6.21
File Interpreter ABI Platform
asic_mcp-0.6.21-py3-none-any.whl Python 3 none any Details

Total release size: 333.3 kB

Release files / asic_mcp-0.6.21.tar.gz

Download URL asic_mcp-0.6.21.tar.gz
Size 253.4 kB
Tags Source
SHA-256 checksum
How to use checksums
fd4996efe78e6c545ff0944b765ab6b8d3f9a7fbc7aec814ea473b09117cf16f
BLAKE2b-256 checksum
How to use checksums
397185d030f015ab97b6734d3664badbd178ca896deb7562d87d5f84b5966d4d
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 Aug 15, 2026.

Transparency log

Release files / asic_mcp-0.6.21-py3-none-any.whl

Download URL asic_mcp-0.6.21-py3-none-any.whl
Size 79.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4609a1cd3b8a828a5631c694bdd067374836a0e4c2dbf12a8ae2b62cc73a94ca
BLAKE2b-256 checksum
How to use checksums
d92c65ec7d1569a6502c8c32fc8d904389485a5de9957358892dcee265f3bc58
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 Aug 15, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.22

2 release files

This release

0.6.21 This release

2 release files

0.6.18

2 release files

0.6.17

2 release files

0.6.16

2 release files

0.6.15

2 release files

0.6.14

2 release files

0.6.13

2 release files

0.6.12

2 release files

0.6.11

2 release files

0.6.10

2 release files

0.6.9

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

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