find_stops
Search train stations, bus stops, wharves and light rail stops by name. Returns stop IDs and the modes served.
limitqueryrequired
io.github.fisher98kimPublished by GitHub account fisher98kimv0.3.1Updated Oct 30, 2026
NSW public transport: trip planning, real-time departures, service alerts, Park&Ride car parks.
NSW public transport server: plan Sydney trips, check real-time departures, service alerts and Park&Ride car park availability.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
MCP servers for NSW Government APIs. Ask Claude (or any MCP client) things like "How do I get from UNSW to Circular Quay right now?", "Any crashes on the M4?", "Is electrician licence 241132C current?" or "Where's the cheapest diesel near Parramatta?" and get live answers.
Each server is a separate subcommand, so you only add the ones you need.
TfNSW Open Data Hub (for transport and roads; one key covers both)
NSW_TRANSPORT_API_KEY.Official guide: https://opendata.transport.nsw.gov.au/developers/userguide
API.NSW (for fuel and licences)
NSW_FUEL_API_KEY / NSW_FUEL_API_SECRET, NSW_TRADES_API_KEY / NSW_TRADES_API_SECRET, ...;
see the licences section for the full list).
The free plan allows 2,500 calls per month per app.Claude Code
For licences, pass the key pair of every register you subscribed to; registers without keys are simply unavailable.
Claude Desktop / Cursor / other clients: add the servers you want to the MCP config file (claude_desktop_config.json, .cursor/mcp.json, etc.):
uvx caches the version it first downloads. To pick up a new release, use uvx mcp-au-nsw@latest ... or run uv cache clean mcp-au-nsw.
lat,lng.YYYY-MM-DD HH:MM in Sydney time.transport serverExample prompts:
roads serverExample prompts:
Toll amounts are estimates from Transport for NSW and may differ from what is actually charged.
licences serverChecks licences on NSW public registers. All registers work the same way: look up a licence number, search by person or business name, and get the full public record.
NSW_X_API_* means NSW_X_API_KEY and NSW_X_API_SECRET.
Example prompts:
Records come straight from the public registers and can include the names, roles and addresses of licence holders and associated people.
fuel serverPrices are in cents per litre.
Example prompts:
To try local changes in Claude Code:
version in pyproject.toml and in every registry/*.json (a test checks they match).v<version>. The workflow publishes to PyPI, then updates the
MCP Registry entries (one per server).MIT. Not affiliated with or endorsed by the NSW Government or Transport for NSW. Data is provided by API.NSW and the TfNSW Open Data Hub under their own terms of use.
Source: README.md at commit 50ffa0d
Search train stations, bus stops, wharves and light rail stops by name. Returns stop IDs and the modes served.
limitqueryrequiredNext departures from a station or stop, with real-time delays and platforms. stop: a stop name (e.g. "Town Hall Station") or stop ID from find_stops. modes: only include these modes (e.g. ["train"]). when: 'HH:MM' or 'YYYY-MM-DD HH:MM' Sydney time; default now.
stoprequiredwhenlimitmodesPlan a public transport journey from A to B, using real-time data where available. origin/destination: a place name (station, address, landmark like "UNSW"), stop ID, or 'lat,lng'. when: 'HH:MM' or 'YYYY-MM-DD HH:MM' Sydney time; default now. arrive_by: treat `when` as the arrival deadline. modes: only use these modes (walking is always allowed).
whenlimitmodesoriginrequiredarrive_bydestinationrequiredCurrent disruptions, trackwork and service changes. Filter by mode, line (e.g. "T1", "L2", "333") and/or stop name. There are usually hundreds of current alerts, so always filter when you can.
linemodestoplimitLive free spaces at Transport Park&Ride car parks (about 40 car parks at stations across Sydney). query: text matched against car park name and suburb (e.g. "Tallawong", "Penrith"). near: a place name, address or 'lat,lng'; only car parks within radius_km are returned, nearest first. With neither, all are listed.
nearlimitqueryradius_kmHow full a Park&Ride car park was through one day: hourly occupancy, the peak, and when it first filled up. facility_id: from get_car_park_availability. date: 'YYYY-MM-DD'. Useful for "what time does it usually fill up?".
daterequiredfacility_idrequired90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
curl -LsSf https://astral.sh/uv/install.sh | shclaude mcp add nsw-transport -e NSW_TRANSPORT_API_KEY=your-tfnsw-key -- uvx mcp-au-nsw transportclaude mcp add nsw-roads -e NSW_TRANSPORT_API_KEY=your-tfnsw-key -- uvx mcp-au-nsw roadsclaude mcp add nsw-fuel -e NSW_FUEL_API_KEY=your-key -e NSW_FUEL_API_SECRET=your-secret -- uvx mcp-au-nsw fuelclaude mcp add nsw-licences -e NSW_TRADES_API_KEY=your-key -e NSW_TRADES_API_SECRET=your-secret -- uvx mcp-au-nsw licences{ "mcpServers": { "nsw-transport": { "command": "uvx", "args": ["mcp-au-nsw", "transport"], "env": { "NSW_TRANSPORT_API_KEY": "your-tfnsw-key" } }, "nsw-roads": { "command": "uvx", "args": ["mcp-au-nsw", "roads"], "env": { "NSW_TRANSPORT_API_KEY": "your-tfnsw-key" } }, "nsw-fuel": { "command": "uvx", "args": ["mcp-au-nsw", "fuel"], "env": { "NSW_FUEL_API_KEY": "your-key", "NSW_FUEL_API_SECRET": "your-secret" } }, "nsw-licences": { "command": "uvx", "args": ["mcp-au-nsw", "licences"], "env": { "NSW_TRADES_API_KEY": "your-key", "NSW_TRADES_API_SECRET": "your-secret", "NSW_PROPERTY_API_KEY": "your-key", "NSW_PROPERTY_API_SECRET": "your-secret" } } }}git clone https://github.com/fisher98kim/mcp-au-nswcd mcp-au-nswuv syncuv run pytest
# run a server locally with keys from .envuv run --env-file .env mcp-au-nsw transportclaude mcp add nsw-transport-dev -e NSW_TRANSPORT_API_KEY=... \ -- uv run --directory /path/to/mcp-au-nsw mcp-au-nsw transport