Skip to main content
Glama

Read selected course topics

get_course
Read-onlyIdempotent

Read CRICOS course topics by code or URL. Defaults to core. Explicit nonempty sections replace the default: core, overview, fees, requirements, intakes, campuses, pathways, packages, similar, majors. Majors are directions within this CRICOS course; a listed option does not imply compulsory selection or availability at every campus/intake. Topic options must be nested under their selected section. Full semantic entries are preserved; subsequent pages require unchanged contentVersion. Fees include the optional audience-specific payment plan; campuses include optional annual general/campus teaching arrangements. Payment plans have no campus dimension. Use fee years/audience, requirement topics, date/campus filters or pageSize to narrow large responses. includeEvidence explicitly requests provider evidence separately from sections; website OAuth is required only on the public endpoint. includeSimilar and unknown arguments are rejected. This public endpoint returns English natural-language text, preserving sources, conditions and pagination.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "course": "<course>"
    },
    "name": "get_course"
  }
}

Input Schema

NameRequiredDescriptionDefault
feesNo
courseYes
localeNoLanguage of names/descriptions in the result: zh-CN (default, Simplified Chinese plus English names), en-US, zh-TW. Also selects the language prefix of returned oneuedu.com URLs.zh-CN
majorsNo
intakesNo
similarNo
campusesNo
packagesNo
pathwaysNo
sectionsNo
studentTypeNoDocument Checklist student category. Only 01 is supported for documentary outcomes; no default.
requirementsNo
includeEvidenceNoExplicitly read provider evidence, independent of the selected public sections. Website OAuth is required only on the public endpoint.
passportCountryNoPassport-country code, with no default; not current residence.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / majors
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "contentVersion": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "page": {
      +      "default": 1,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "pageSize": {
      +      "default": 20,
      +      "maximum": 20,
      +      "minimum": 1,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / sections / items / enum
      Previous value: -[
      -  "core",
      -  "overview",
      -  "fees",
      -  "requirements",
      -  "intakes",
      -  "campuses",
      -  "pathways",
      -  "packages",
      -  "similar"
      -]New value: +[
      +  "core",
      +  "overview",
      +  "fees",
      +  "requirements",
      +  "intakes",
      +  "campuses",
      +  "pathways",
      +  "packages",
      +  "similar",
      +  "majors"
      +]
  2. Changed3 schema fields changed
    • addedInput schema / properties / includeEvidence
      Added value: +{
      +  "default": false,
      +  "description": "Explicitly read provider evidence, independent of the selected public sections. Website OAuth is required only on the public endpoint.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / passportCountry
      Added value: +{
      +  "description": "Passport-country code, with no default; not current residence.",
      +  "enum": [
      +    "CHN",
      +    "HKG",
      +    "MAC",
      +    "TWN",
      +    "MYS",
      +    "VNM",
      +    "IND",
      +    "IDN",
      +    "NPL",
      +    "PHL",
      +    "THA",
      +    "KOR",
      +    "JPN",
      +    "SGP",
      +    "PAK",
      +    "LKA",
      +    "BGD",
      +    "COL",
      +    "BRA",
      +    "GBR",
      +    "USA",
      +    "NZL",
      +    "ABW",
      +    "AFG",
      +    "AGO",
      +    "AIA",
      +    "ALB",
      +    "AND",
      +    "ANT",
      +    "ARE",
      +    "ARG",
      +    "ARM",
      +    "ASM",
      +    "ATG",
      +    "AUT",
      +    "AZE",
      +    "BDI",
      +    "BEL",
      +    "BEN",
      +    "BFA",
      +    "BGR",
      +    "BHR",
      +    "BHS",
      +    "BIH",
      +    "BLR",
      +    "BLZ",
      +    "BMU",
      +    "BOL",
      +    "BRB",
      +    "BRN",
      +    "BTN",
      +    "BWA",
      +    "CAF",
      +    "CAN",
      +    "CHE",
      +    "CHL",
      +    "CIV",
      +    "CMR",
      +    "COD",
      +    "COG",
      +    "COK",
      +    "COM",
      +    "CPV",
      +    "CRI",
      +    "CUB",
      +    "CUW",
      +    "CYM",
      +    "CYP",
      +    "CZE",
      +    "D",
      +    "DJI",
      +    "DMA",
      +    "DNK",
      +    "DOM",
      +    "DZA",
      +    "ECU",
      +    "EGY",
      +    "ERI",
      +    "ESH",
      +    "ESP",
      +    "EST",
      +    "ETH",
      +    "FIN",
      +    "FJI",
      +    "FLK",
      +    "FRA",
      +    "FRO",
      +    "FSM",
      +    "GAB",
      +    "GBD",
      +    "GBN",
      +    "GBO",
      +    "GBS",
      +    "GEO",
      +    "GHA",
      +    "GIB",
      +    "GIN",
      +    "GLP",
      +    "GMB",
      +    "GNB",
      +    "GNQ",
      +    "GRC",
      +    "GRD",
      +    "GRL",
      +    "GTM",
      +    "GUF",
      +    "GUM",
      +    "GUY",
      +    "HND",
      +    "HRV",
      +    "HTI",
      +    "HUN",
      +    "IRL",
      +    "IRN",
      +    "IRQ",
      +    "ISL",
      +    "ISR",
      +    "ITA",
      +    "JAM",
      +    "JOR",
      +    "KAZ",
      +    "KEN",
      +    "KGZ",
      +    "KHM",
      +    "KIR",
      +    "KNA",
      +    "KWT",
      +    "LAO",
      +    "LBN",
      +    "LBR",
      +    "LBY",
      +    "LCA",
      +    "LIE",
      +    "LSO",
      +    "LTU",
      +    "LUX",
      +    "LVA",
      +    "MAR",
      +    "MCO",
      +    "MDA",
      +    "MDG",
      +    "MDV",
      +    "MEX",
      +    "MHL",
      +    "MKD",
      +    "MLI",
      +    "MLT",
      +    "MNE",
      +    "MNG",
      +    "MNP",
      +    "MOZ",
      +    "MRT",
      +    "MSR",
      +    "MTQ",
      +    "MUS",
      +    "MWI",
      +    "MYT",
      +    "NAM",
      +    "NCL",
      +    "NER",
      +    "NGA",
      +    "NIC",
      +    "NIU",
      +    "NLD",
      +    "NOR",
      +    "NRU",
      +    "OMN",
      +    "PAN",
      +    "PCN",
      +    "PER",
      +    "PLW",
      +    "PNG",
      +    "POL",
      +    "PRI",
      +    "PRK",
      +    "PRT",
      +    "PRY",
      +    "PYF",
      +    "QAT",
      +    "REU",
      +    "RKS",
      +    "ROU",
      +    "RUS",
      +    "RWA",
      +    "SAU",
      +    "SDN",
      +    "SEN",
      +    "SHN",
      +    "SLB",
      +    "SLE",
      +    "SLV",
      +    "SMR",
      +    "SOM",
      +    "SPM",
      +    "SRB",
      +    "SSD",
      +    "STP",
      +    "SUR",
      +    "SVK",
      +    "SVN",
      +    "SWE",
      +    "SWZ",
      +    "SYC",
      +    "SYR",
      +    "TCA",
      +    "TCD",
      +    "TGO",
      +    "TJK",
      +    "TKL",
      +    "TKM",
      +    "TMP",
      +    "TON",
      +    "TTO",
      +    "TUN",
      +    "TUR",
      +    "TUV",
      +    "TZA",
      +    "UGA",
      +    "UKR",
      +    "UNO",
      +    "URY",
      +    "UZB",
      +    "VAT",
      +    "VCT",
      +    "VEN",
      +    "VGB",
      +    "VIR",
      +    "VUT",
      +    "WLF",
      +    "WSM",
      +    "ZAF",
      +    "ZMB",
      +    "ZWE",
      +    "DEU"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / studentType
      Added value: +{
      +  "description": "Document Checklist student category. Only 01 is supported for documentary outcomes; no default.",
      +  "pattern": "^\\d{2}$",
      +  "type": "string"
      +}
  3. Changed11 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / campuses
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "contentVersion": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "page": {
      +      "default": 1,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "pageSize": {
      +      "default": 10,
      +      "maximum": 20,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "postcode": {
      +      "pattern": "^\\d{4}$",
      +      "type": "string"
      +    },
      +    "regionalCategory": {
      +      "enum": [
      +        "Category 2",
      +        "Category 3"
      +      ],
      +      "type": "string"
      +    },
      +    "state": {
      +      "enum": [
      +        "ACT",
      +        "NSW",
      +        "NT",
      +        "QLD",
      +        "SA",
      +        "TAS",
      +        "VIC",
      +        "WA"
      +      ],
      +      "type": "string"
      +    },
      +    "status": {
      +      "default": "open",
      +      "enum": [
      +        "open",
      +        "all"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • removedInput schema / properties / course / description
      Removed value: -"CRICOS course code such as \"089591C\", or a course page URL / slug ending in the code."
    • addedInput schema / properties / fees
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "audience": {
      +      "enum": [
      +        "offshore",
      +        "onshore",
      +        "domestic",
      +        "online",
      +        "voe"
      +      ],
      +      "type": "string"
      +    },
      +    "offers": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "contentVersion": {
      +          "pattern": "^[a-f0-9]{64}$",
      +          "type": "string"
      +        },
      +        "page": {
      +          "default": 1,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "pageSize": {
      +          "default": 10,
      +          "maximum": 20,
      +          "minimum": 1,
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "years": {
      +      "items": {
      +        "maximum": 9999,
      +        "minimum": 1900,
      +        "type": "integer"
      +      },
      +      "minItems": 1,
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • removedInput schema / properties / includeSimilar
      Removed value: -{
      -  "default": false,
      -  "description": "Also return similar courses at other providers (one extra upstream call).",
      -  "type": "boolean"
      -}
    • addedInput schema / properties / intakes
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "contentVersion": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "dateFrom": {
      +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +      "type": "string"
      +    },
      +    "dateTo": {
      +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +      "type": "string"
      +    },
      +    "page": {
      +      "default": 1,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "pageSize": {
      +      "default": 10,
      +      "maximum": 20,
      +      "minimum": 1,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / packages
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "contentVersion": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "page": {
      +      "default": 1,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "pageSize": {
      +      "default": 5,
      +      "maximum": 20,
      +      "minimum": 1,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / pathways
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "contentVersion": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "page": {
      +      "default": 1,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "pageSize": {
      +      "default": 10,
      +      "maximum": 20,
      +      "minimum": 1,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / requirements
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "topics": {
      +      "items": {
      +        "enum": [
      +          "english",
      +          "entry",
      +          "placement",
      +          "licensing",
      +          "accreditation"
      +        ],
      +        "type": "string"
      +      },
      +      "minItems": 1,
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / sections
      Added value: +{
      +  "items": {
      +    "enum": [
      +      "core",
      +      "overview",
      +      "fees",
      +      "requirements",
      +      "intakes",
      +      "campuses",
      +      "pathways",
      +      "packages",
      +      "similar"
      +    ],
      +    "type": "string"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / similar
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "state": {
      +      "enum": [
      +        "ACT",
      +        "NSW",
      +        "NT",
      +        "QLD",
      +        "SA",
      +        "TAS",
      +        "VIC",
      +        "WA"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  4. First observed

TDQS

A3.6/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, open world), yet the description still adds genuinely useful behavior: pagination requires an unchanged contentVersion, unknown arguments are rejected, and OAuth is needed only for includeEvidence on the public endpoint. It also warns that a listed major option does not imply compulsory selection or availability at every campus/intake, and that payment plans have no campus dimension. These are non-obvious operational facts, not restatements of the annotations.

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

Conciseness3/5

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

It is front-loaded with the highest-value facts (what it reads, the default section) but then becomes a dense run-on paragraph where distinct concerns — pagination, majors caveats, fee payment plans, OAuth, argument rejection — are packed into adjacent sentences without structure. The sentence about payment plans having no campus dimension is buried and hard to parse in context. Nothing is outright filler, but the lack of chunking hurts scanability for a 14-parameter tool.

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?

For a tool with 14 parameters, nested objects, no output schema and low schema description coverage, the description covers the section model, pagination and evidence behavior well. However it never explains how the document-oriented parameters (studentType, passportCountry, locale) interact with fees or outputs, which for a complex reading tool is a meaningful gap. An agent could invoke it correctly but not optimally.

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?

With only 29% schema description coverage across 14 mostly nested parameters, the description carries substantial explanatory load and does so: it defines the section vocabulary, explains that topic options must nest under their selected section, clarifies majors as directions within the CRICOS course, and explains includeEvidence. It leaves several parameters unaddressed, notably locale's URL-language effect, studentType's documentary scope and passportCountry's role in fees, leaving those to the schema descriptions.

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?

Opens with a specific verb and resource: 'Read CRICOS course topics by code or URL,' which tells an agent this is a single-course lookup keyed by code or URL rather than a search. It also enumerates the section vocabulary, making the scope explicit. It does not name siblings like get_course_packages, get_course_pathways or get_similar_courses, so the boundary between this tool and those overlapping ones must be inferred.

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 gives real configuration guidance: sections default to 'core,' explicit nonempty sections replace that default, and fees years/audience, requirement topics, date/campus filters or pageSize narrow large responses. What it never states is when to call this instead of the sibling tools that expose packages, pathways and similar courses as standalone endpoints, so the choice among overlapping tools stays implicit.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources