# Australia Wide First Aid courses

> Find first aid and CPR courses, venues and sessions across Australia. Read-only; no sign-in.

- name: com.australiawidefirstaid/courses
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 96/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.australiawidefirstaid%2Fcourses
- tools: https://api.protogrid.dev/v1/servers/com.australiawidefirstaid%2Fcourses/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "courses": {
      "type": "http",
      "url": "https://www.australiawidefirstaid.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-11d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 96/100 (strong)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 7 of 7 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,511 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 7, about 1,511 tokens to load them all
- tool set hash: 673d876c744ab400bcb01a6b69342a6d
- badge: [![protogrid quality](https://protogrid.dev/badge/com.australiawidefirstaid/courses.svg)](https://protogrid.dev/servers/com.australiawidefirstaid/courses)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://www.australiawidefirstaid.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (7)

- `get_course_details`: Full details for one course: what it covers, how it is assessed, the pre-course online work, what to bring, when the certificate is issued, and how long it stays current. Use it to answer whether a course meets a workplace or childcare requirement. course is the id from list_courses; a unit code such as HLTAID011 also works.
- `get_faqs`: Frequently asked questions and answers: which course a job needs, recognition, certificate timing, renewal, online learning, group training, cost, what to wear. Pass a topic to get the most relevant ones; omit it for all.
- `list_courses`: List the nationally recognised first aid and CPR courses Australia Wide First Aid runs, with unit code (HLTAID009/011/012), price in AUD, duration, delivery (including any online pre-course learning) and renewal period. Use this to turn a need like "first aid for work" or "childcare certificate" into a course id for the other tools.
- `list_locations`: List training venues with address, grouped by state. Pass state to narrow to one state, or near (an Australian postcode or suburb the person gives you, such as "4510" or "Caboolture QLD") to get the closest venues with their distance in km. The id of a venue is the location for search_sessions.
- `search_nearby_sessions`: Upcoming sessions of one course across the venues closest to a postcode or suburb, merged soonest first, with each venue's distance in km. near is required: this server can't tell where the person is, so ask them for their postcode or suburb. If a suburb exists in several states the reply lists the candidates: ask which one and retry with the state or postcode.
- `search_sessions`: Upcoming sessions of one course at one venue, soonest first: date, time, venue address, price, seats available (as the site shows them, such as "5+") and a session_id for start_booking. If the person gave a suburb or postcode rather than a venue, use search_nearby_sessions instead.
- `start_booking`: Get the link that books one place in a session found with search_sessions or search_nearby_sessions. Give the link to the person: they open it, confirm, and finish on the enrolment site, where they enter their own details and pay themselves. This tool books nothing, holds no seat and takes no personal or payment details, so don't tell the person they are booked. The link is for one person: for a group, book each person separately or use the corporate enquiry page (/corporate).
