{"server":{"name":"com.australiawidefirstaid/courses","icons":[{"src":"https://www.australiawidefirstaid.com/static/img/apple-touch-icon.png","sizes":["180x180"],"mimeType":"image/png"},{"src":"https://www.australiawidefirstaid.com/static/img/favicon-1.png","sizes":["64x64"],"mimeType":"image/png"},{"src":"https://www.australiawidefirstaid.com/static/img/australia-wide-first-aid-icon-colours.svg","sizes":["any"],"mimeType":"image/svg+xml"}],"title":"Australia Wide First Aid courses","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://www.australiawidefirstaid.com/mcp","type":"streamable-http"}],"version":"1.0.0","websiteUrl":"https://www.australiawidefirstaid.com","description":"Find first aid and CPR courses, venues and sessions across Australia. Read-only; no sign-in."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-09T15:12:37.025179Z","publishedAt":"2026-10-09T15:12:37.025179Z","statusChangedAt":"2026-10-09T15:12:37.025179Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://www.australiawidefirstaid.com/mcp","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26","2024-11-05"],"stateless":true},"health":{"reachable":true,"uptime_30d":1,"latency_ms_p50":872,"consecutive_failures":0,"last_probe_at":"2026-10-19T12:23:35.772Z","last_ok_at":"2026-10-19T12:23:35.772Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"get_course_details","title":"Get course details","description":"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.","annotations":{"title":"Get course details","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T12:23:35.772Z"},{"name":"get_faqs","title":"Answer common questions","description":"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.","annotations":{"title":"Answer common questions","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T12:23:35.772Z"},{"name":"list_courses","title":"List first aid courses","description":"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.","annotations":{"title":"List first aid courses","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T12:23:35.772Z"},{"name":"list_locations","title":"List training venues","description":"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.","annotations":{"title":"List training venues","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T12:23:35.772Z"},{"name":"search_nearby_sessions","title":"Search course sessions near a place","description":"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.","annotations":{"title":"Search course sessions near a place","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T12:23:35.772Z"},{"name":"search_sessions","title":"Search course sessions at a venue","description":"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.","annotations":{"title":"Search course sessions at a venue","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T12:23:35.772Z"},{"name":"start_booking","title":"Get the booking link for a session","description":"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).","annotations":{"title":"Get the booking link for a session","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T12:23:35.772Z"}],"dev.protogrid/trust":{"score":83,"components":{"hygiene":80,"liveness":100,"freshness":100,"provenance":55},"drivers":["+dns-namespace","+website","+reachable","+uptime-100%","+updated-10d-ago","-no-repository"],"flags":["no-repository"],"blocked":false,"computed_at":"2026-10-19T17:48:51.225Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":96,"label":"strong","components":{"auth":null,"hygiene":100,"protocol":88,"stability":100,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"supports 2026-07-28 (server/discover)","status":"pass","category":"protocol"},{"id":"protocol.stateless","detail":"answers without a session","status":"pass","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"tools/list declares ttlMs 0, so clients re-fetch it on every use","status":"warn","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"7 of 7 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint","status":"pass","category":"hygiene"},{"id":"tools.token_cost","detail":"about 1,511 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"no tool changes in 30 days","status":"pass","category":"stability"},{"id":"stability.rug_pull","detail":"no tool changed its meaning under the same name","status":"pass","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["~protocol.list_ttl"],"flags":[],"tool_count":7,"token_estimate":1511,"tools_hash":"673d876c744ab400bcb01a6b69342a6d","tools_changed_at":null,"computed_at":"2026-10-19T17:57:43.054Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"com.australiawidefirstaid/courses","aliases":[],"alias_count":0,"repository_key":null,"owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/com.australiawidefirstaid%2Fcourses/tools","arguments":{"name":"com.australiawidefirstaid/courses"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/com.australiawidefirstaid%2Fcourses/connection?target=mcpServers","arguments":{"name":"com.australiawidefirstaid/courses","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}