@pipeworx/ip-australia
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/ip-australia’s. Install: one-click buttons
Connect to just the @pipeworx/ip-australia pack
https://gateway.pipeworx.io/ip-australia/mcp — only @pipeworx/ip-australia’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 5
Australian patent, trade mark and design search, plus patent legal status, from IP Australia (the Australian Government’s IP office).
Tools
au_search_trade_marks(query, limit?)- trade mark search.au_trade_mark(number)- full public record of one Australian trade mark.au_search_designs(query, limit?)- registered design search.au_design(number)- full public record of one Australian design.au_patent(number)- full public record of one Australian patent, including itsipRightStatusEventhistory (FILED / OPI / ACCEPTED / SEALED with dates).
Built but not served (see “What is not shipped, and why” below):
au_search_patents, au_legal_status.
Auth
Platform key with BYO override. The platform client is a free IP Australia OAuth2 client held by Pipeworx; the gateway supplies it as _apiKey (“clientId:clientSecret”). A caller may pass their own pair in the same form.
Each API product is subscribed separately on the IP Australia developer portal, and a client that is not subscribed to one gets HTTP 403 Invalid Client on it with a perfectly valid token. So an entitlement failure looks nothing like an auth failure, and the refusal names the environment and the status rather than guessing.
What is not shipped, and why
Measured through the deployed gateway on 2026-10-27T01:31Z with a valid production token. Two tools are held in deferredTools, and the two failures are different in kind:
| Tool | Live result | What it means |
|---|---|---|
au_legal_status | HTTP 403 Invalid Client | Entitlement. The production client is not subscribed to the Legal Status API product. Nothing in this repo fixes it. |
au_search_patents | HTTP 400 Bad request | Our request body. Patent Search is subscribed — au_patent returns a full record through the same product and the same token. The patent quick-search body shape is undocumented and the shapes differ per API (trade marks need filters: {quickSearchType: ['WORD']}; designs answer HTTP 500 if any filters object is present), so this needs body shapes tried against the live endpoint. |
Before anyone buys the Legal Status product: au_patent already carries ipRightStatusEvent — the filing, open-to-public-inspection, acceptance and sealing events with their dates — so most of the legal-status question is already answered by the patent record.
IP Australia is a government register: zero results come back with an explicit note, and an upstream error or an unparsable body is raised, never returned as an empty list.
Personal data: no individual addresses
The Australian registers are public, and many trade marks and designs are held by natural persons rather than companies — for those the owner record carries a home address: street, suburb, state and postcode.
Bruce ruled no-individual-addresses on this pack (2026-10-26), on the same terms he set for sos-entities and exec-changes under names-and-roles (2026-10-08). So:
- Names are served. Owner, applicant, designer and inventor names come through as the register publishes them, with the publisher and dataset named in every response’s
source. - An address is served only for a party positively identified as an ORGANISATION. Positive identification means one of: a registered-business identifier on the party (ABN, ACN or ARBN); a legal-entity or firm designator as a whole word in the name (
Pty,Ltd,Limited,Inc,LLC,GmbH,SARL,University,Council,Patent Attorneys,Intellectual Property, and so on); or a dotted/slashed legal abbreviation in the name (N.V.,B.V.,S.A.,A/S,L.L.C.). - Every other party loses its street address. The name and the COUNTRY survive — a country is a jurisdiction, not a place a person can be found at — and the street, suburb, state/territory and postcode do not.
- A designer or inventor never gets an address, designator in the name or not, because the register records that party as a natural person by definition.
Which way the line fails, and why it is drawn there
The test is “is this positively an organisation”, not “does this look like a person”. Those are not the same rule and they fail in opposite directions.
A name-shape heuristic was tried first and, measured against the live register while building this, read Societe Pour La Transformation Des Matieres Plastiques Stamp — a real company — as a person. The two errors are not symmetric:
- A false positive (a company read as possibly-a-person) withholds a business address a caller could have had. It costs one field that the register itself still publishes.
- A false negative (a person read as a company) serves a named individual’s home address. That is the exact thing the ruling forbids, and once served it cannot be recalled.
So the default is to withhold, and only a positive organisation signal serves. The consequence is deliberate and worth stating plainly: a company whose name carries no designator we recognise keeps its name and loses its address. That is the price of never getting the other error.
For the same reason no designator shorter than three letters is used. The obvious list also holds NV, BV, SA, AG, AB, AS, OY, KK, CO, PT — and each of those is also a word in somebody’s transliterated name (Nguyen Van Co, Tran Thi Sa). Those suffixes are recognised only in their dotted form, which a personal name does not carry.
It is announced, never silent
A withheld address and a register record that never held one must not look the same to a caller. So the party carries address_withheld: "<why>", and the response carries addresses_withheld: <n> plus a privacy_note. Nothing is quietly dropped.
Removal list
Names are withheld on request, as the ruling requires. The list is src/removals.ts; it ships with the package, so it holds wherever the pack runs, including a standalone install with no database. A removal may be scoped to one record number or apply to every record this pack serves. Requests go to [email protected].
Data sources
- IP Australia, Australian patent, trade mark and design registers, and the patent legal-status service. Search is live per request; nothing is copied. No fee applies to read access (IP Australia states there is no fee to connect to its APIs).
The IP Australia API portal publishes request shapes for the trade mark and design searches; the patent search and legal-status request/response shapes are not publicly documented, so those tools pass the register’s JSON through unmodified — after the personal-data filter, which walks the whole payload rather than a list of known field paths precisely because those shapes are undocumented.
That caution earned itself on the first live patent record: the patent register names its parties with legalEntityName rather than name (applicant, inventors and representatives are all name-only objects), which a field-path filter written against the trade mark and design shapes would not have recognised as parties at all. None of them carried an address on the records read, so nothing leaked — but the filter now reads every name key the registers use, rather than the two we happened to see first.
Tools
- au_search_trade_marks — Search Australian trade marks on the IP Australia register by word. Returns the match count first, then trade mark numbers (feed one to au_trade_mark for the full record).
- au_trade_mark — Get the full public record of one Australian trade mark by trade mark number: words, kind, status, key dates, owner and address for service.
- au_search_designs — Search Australian registered designs on the IP Australia register by keyword. Returns the match count first, then design numbers (feed one to au_design for the full record).
- au_design — Get the full public record of one Australian design by design number, including product names and statements of newness.
- au_patent — Get the full public record of one Australian patent by application number, as published by IP Australia.
Tools
au_design— Get the full public record of one Australian design by design number, including product names and statements of newness.au_patent— Get the full public record of one Australian patent by application number, as published by IP Australia.au_search_designs— Search Australian registered designs on the IP Australia register by keyword. Returns the match count first, then design numbers (feed one to au_design for the full record).au_search_trade_marks— Search Australian trade marks on the IP Australia register by word. Returns the match count first, then trade mark numbers (feed one to au_trade_mark for the full record).au_trade_mark— Get the full public record of one Australian trade mark by trade mark number: words, kind, status, key dates, owner and address for service.