Skip to main content
Glama

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 20 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 7 tools

Disambiguation4/5

Each tool targets a distinct resource (courses, locations, sessions, booking link, FAQs), and the two session-search tools are explicitly differentiated: search_sessions is one course at one venue, search_nearby_sessions is one course across venues near a postcode. Descriptions even cross-reference when to use which, so overlap is minimal; the only mild fuzziness is between get_course_details and get_faqs on course requirements.

Naming Consistency5/5

All seven names follow a clean verb_noun snake_case pattern (get_course_details, list_courses, list_locations, search_sessions, start_booking, etc.). The convention is uniform and self-explanatory throughout.

Tool Count5/5

Seven tools is well-scoped for a course-discovery and booking-referral server. Each tool covers a distinct step in the flow (explore courses -> find venues -> find sessions -> get booking link), with no redundant entries.

Completeness4/5

The surface covers discovery, venue lookup, session search (venue-specific and nearby), course details, FAQs, and a booking handoff link. Since booking, payment, and enrolment are deliberately delegated to the external site, the main gap is the absence of any manage/cancel/reschedule capability, but the stated purpose is well covered.

Available Tools

7 tools
get_course_detailsGet course detailsA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
courseYesThe course's id, unit code, workshops course id or name.

Output Schema

NameRequiredDescription
idYesThe course's slug, such as first-aid. Every other endpoint accepts it as course.
urlYesThe course's page on the site.
codeYesThe national unit code, such as HLTAID011.
nameYesThe course's short name.
contentNoWhat the course covers.
renewalNoHow often the certificate should be renewed.
summaryNoA one-line summary.
deliveryNoHow the course is delivered, including any e-Learning pre-work.
durationNoHow long the course takes, as the site describes it.
headlineNoThe course page's headline.
price_audNoThe standard price in Australian dollars, GST included.
assessmentNoHow the course is assessed.
key_pointsNoThe course's key points.
certificateNoHow and when the certificate is issued.
official_nameNoThe unit's official name.
price_displayNoThe price as the site shows it, such as $97.
what_to_bringNoWhat to bring on the day.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds genuinely useful behavioral context about the scope of returned data (assessment method, certificate issue timing and currency period), which tells the agent what questions this call can answer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the payload summary front-loaded, then the use case, then the parameter hint. No filler, no repetition of the title, and each sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return structure need not be spelled out, yet the description still conveys the semantic content of the response. For a single-parameter read tool with full annotations, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description goes beyond the schema by clarifying that the value is the id obtained from list_courses and that a unit code such as HLTAID011 is also accepted. That resolves the ambiguity of an undocumented identifier format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Full details for one course') and then enumerates the exact payload (coverage, assessment, pre-course work, what to bring, certificate issuance and currency). This clearly distinguishes it from the sibling list_courses, which only lists courses rather than detailing one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case ('answer whether a course meets a workplace or childcare requirement') and tells the agent where the key input comes from ('course is the id from list_courses'). It does not explicitly state when NOT to use it or name an alternative tool for adjacent needs (e.g. search_sessions for scheduling), so it falls short of a full routing statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_faqsAnswer common questionsB
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
topicNoA question or topic, such as How do I renew my certificate.

Output Schema

NameRequiredDescription
faqsYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered. The description adds the topic-filtering behavior, but doesn't explain how topics are matched (keyword/fuzzy) or the return shape, though an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the resource and topic list, then the parameter behavior. The topic enumeration is long but informative; no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple read-only lookup with a rich output schema, but omits matching semantics for the topic and any guidance on fallback when no FAQ matches.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema describes the topic parameter with an example, so the description adds little beyond repeating 'pass a topic'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it retrieves FAQs with answers, and enumerates concrete topics it covers. It distinguishes itself from siblings (courses, sessions, booking) by being the Q&A resource, though it doesn't explicitly name a sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: pass a topic for relevance, omit for all. But it gives no guidance on when to prefer this over siblings like get_course_details or search_sessions for answering course questions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_coursesList first aid coursesA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
coursesYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds that courses are nationally recognised and lists returned attributes (unit code, price, duration, delivery, renewal), but the output schema already carries those fields, so added behavioral value is modest.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose in the first clause and ends with a routing instruction. The enumeration of returned fields is somewhat redundant with the output schema, slightly diluting conciseness, but overall it's efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value detail needn't be in the description; it focuses on purpose and usage. It's complete enough for a no-arg catalog tool, though it doesn't note ordering or completeness guarantees of the listing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. There are no parameter semantics to document and the description appropriately doesn't attempt to.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (nationally recognised first aid and CPR courses) with clear scope (Australia Wide First Aid). It implicitly distinguishes itself from get_course_details by being the catalog-level listing rather than a single-course lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it to turn a need like 'first aid for work' or 'childcare certificate' into a course id for the other tools, which gives a clear entry-point context. It doesn't name a when-not condition or explicitly contrast with get_course_details, but the usage context is well defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_locationsList training venuesA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
nearNoA postcode or suburb, optionally with its state, such as 4510 or Caboolture QLD.
limitNoWith near, how many venues to return. Values below 1 use the default.
stateNoA state or territory, such as QLD, in any case. Ignored when near is given.

Output Schema

NameRequiredDescription
nearNoWith near, the place it resolved to, or null when the lookup didn't say.
locationsYesThe venues; null when there are none.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real value beyond them: results are grouped by state, distance is reported in km, and venue ids feed search_sessions. It omits pagination and default-listing behavior, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all front-loaded: purpose first, then the two parameter modes, then the id hand-off. No filler and every clause carries information an agent will use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it still usefully mentions grouping and distance units. The main remaining gap is disambiguation from the similarly shaped search_nearby_sessions sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three parameters are already documented, including 'state' being ignored when 'near' is given. The description reinforces the near/state interplay and the postcode-or-suburb format but adds little syntax or semantics the schema lacks. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'List training venues with address, grouped by state,' and ties its output to a sibling by noting the venue id is 'the location for search_sessions.' It does not, however, distinguish itself from search_nearby_sessions, which the 'near' mode appears to overlap with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear mode-selection guidance: pass 'state' to narrow to one state, or 'near' to get the closest venues with distance. It stops short of explaining when to prefer this tool over search_nearby_sessions/search_sessions, leaving the closest alternative unresolved.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_nearby_sessionsSearch course sessions near a placeA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
nearYesThe person's Australian postcode or suburb, optionally with its state, such as 4510 or Caboolture QLD. Required: ask the person for it.
limitNoHow many sessions to return. Larger values are capped at 50; values below 1 use the default.
courseYesThe course's id, unit code, workshops course id or name, as getCourseDetails accepts.
venuesNoHow many of the closest venues to search. Larger values are capped at 5; values below 1 use the default.
date_toNoThe last date to search, YYYY-MM-DD. Defaults to 60 days after date_from and is capped at 365 days after it.
date_fromNoThe first date to search, YYYY-MM-DD in Australia/Brisbane time. Defaults to today; a past date means today.

Output Schema

NameRequiredDescription
nearNoThe place near resolved to.
sessionsYesThe sessions, soonest first; null when there are none.
venues_searchedYesThe venues searched, nearest first.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds meaningful behavior beyond them: results are merged 'soonest first,' each venue carries a distance in km, and an ambiguous suburb produces candidate states requiring a follow-up call. That is useful operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with no filler; the core behavior and the required-input caveat are front-loaded. It is compact for the amount of nuance conveyed, though the last sentence is somewhat long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, and the annotations carry the safety profile. The description still supplies the ordering, distance unit, and the recovery flow for ambiguous suburbs, leaving nothing an agent needs to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters are already documented in the schema, including defaults, caps, and formats. The description reinforces the required nature of 'near' but adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Upcoming sessions of one course across the venues closest to a postcode or suburb,' with the added ordering and distance semantics. It is clear what the tool returns. It does not, however, differentiate itself from the sibling search_sessions, which the agent must disambiguate on its own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete context: 'near is required: this server can't tell where the person is, so ask them for their postcode or suburb,' and describes the retry path when a suburb is ambiguous. That is real when-to-use guidance for a required input. It stops short of stating when to prefer this over search_sessions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_sessionsSearch course sessions at a venueA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
limitNoHow many sessions to return. Larger values are capped at 50; values below 1 use the default.
courseYesThe course's id, unit code, workshops course id or name, as getCourseDetails accepts.
date_toNoThe last date to search, YYYY-MM-DD. Defaults to 60 days after date_from and is capped at 365 days after it.
locationYesThe venue's id or name from listLocations, or a suburb only one venue has.
date_fromNoThe first date to search, YYYY-MM-DD in Australia/Brisbane time. Defaults to today; a past date means today.

Output Schema

NameRequiredDescription
sessionsYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive/closed-world, so the bar is lower. The description still adds real behavioral context beyond them: result ordering, the return fields, the caveat that seat counts are shown as the site displays them (e.g. '5+'), and that session_id chains into start_booking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded: the query scope and ordering come first, the routing rule second. No filler or restated name/title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full schema, an output schema, and rich annotations, the description supplies the missing pieces an agent needs: purpose, ordering, the venue-vs-suburb routing rule, and the downstream session_id link. Only minor operational details like empty-result behavior are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (course, location, limit, date_from, date_to) is already documented with defaults and caps. The description adds no parameter-level syntax or format detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (upcoming sessions of one course at one venue), the ordering (soonest first), and the fields returned. It explicitly differentiates itself from search_nearby_sessions by the venue-vs-suburb input distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative tool and the exact condition that selects it ('If the person gave a suburb or postcode rather than a venue, use search_nearby_sessions instead'). The agent does not have to infer routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_bookingGet the booking link for a sessionA
Read-onlyIdempotent
Inspect

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).

NameRequiredDescriptionDefault
session_idYesThe session_id from a search_sessions or search_nearby_sessions result.

Output Schema

NameRequiredDescription
statusYes
messageYesWhat to tell the person.
session_idYes
booking_urlYesThe page the person opens to book one place in the session.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered; the description adds the operationally critical context that nothing is actually booked, no seat held, no personal or payment details taken, and the user completes on the enrolment site. That prevents an agent from falsely telling a user they are booked — information no annotation conveys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded in the first sentence, followed by the handoff flow, the critical "this tool books nothing" warning, and the group exception. No sentence is filler — each one guards against a plausible agent error.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary; the description covers the input source, downstream user flow, capability limits, and the group alternative. Nothing an agent needs to call and message correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is fully documented in the schema itself ("The session_id from a search_sessions or search_nearby_sessions result"). The description reinforces the provenance of the id but adds no syntax, format, or constraint beyond what the schema already provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Get the link that books one place in a session") and immediately names the sibling tools that produce the required input, search_sessions and search_nearby_sessions. An agent can distinguish this from the search tools without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states where the session_id comes from, what to do with the result (give the link to the person), and the exclusion case for groups ("book each person separately or use the corporate enquiry page"). Both the when and the when-not are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updates
    • First observedget_course_details
    • First observedget_faqs
    • First observedlist_courses
    • First observedlist_locations
    • First observedsearch_nearby_sessions
    • First observedsearch_sessions
    • First observedstart_booking

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching the Australian Register of Therapeutic Goods for approved medicines, biologicals, and medical devices, and retrieving full ARTG records with ingredients, indications, and links to Product Information and Consumer Medicine Information documents.
    170 npm
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables users to search and retrieve Australian legislation and case law with full-text content extraction. Provides structured results with citation metadata and OCR support for archival PDFs.
    12
    14 npm
    40
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to search roughly 5,700 Persian online courses, compare prices, discounts and ratings, find free or cheapest offerings, and read curricula, teacher profiles and learner reviews. Read-only with no API key or account required.
    12
    189 PyPI
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources