Skip to main content
Glama

get_course_details

Read-onlyIdempotent

Details for one course id from list_courses (pricing rows, supplements, metadata).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
localeNoResponse language and site context. One of en, nl, da, sv.
currencyNoISO 4217 currency for prices in this call. Usually EUR.EUR
course_idYesCourse product id from list_courses.
school_idYesCraft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID.
startDateNoCourse start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNo
successYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • addedInput schema / properties / course_id / description
      Added value: +"Course product id from list_courses."
    • addedInput schema / properties / currency / description
      Added value: +"ISO 4217 currency for prices in this call. Usually EUR."
    • addedInput schema / properties / currency / examples
      Added value: +[
      +  "EUR"
      +]
    • addedInput schema / properties / locale / description
      Added value: +"Response language and site context. One of en, nl, da, sv."
    • addedInput schema / properties / locale / examples
      Added value: +[
      +  "en",
      +  "nl",
      +  "da",
      +  "sv"
      +]
    • addedInput schema / properties / school_id / description
      Added value: +"Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID."
    • addedInput schema / properties / school_id / examples
      Added value: +[
      +  12345
      +]
    • addedInput schema / properties / startDate / description
      Added value: +"Course start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates."
    • addedInput schema / properties / startDate / examples
      Added value: +[
      +  "2026-09-07"
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "data": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "success": {
      +      "const": true
      +    }
      +  },
      +  "required": [
      +    "success"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructiveHint and openWorldHint=false, so the safety profile is covered. The description adds that the payload includes pricing rows, supplements and metadata, which is useful beyond the annotations, but it says nothing about locale/currency side effects or failure modes.

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?

A single compact sentence with the resource front-loaded and the useful content summary in parentheses. No waste, though it is terse enough to feel slightly under-developed rather than optimally structured.

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?

Output schema exists and the schema documents all five parameters, so the description need not explain return values. Combined with annotations covering safety, the definition is adequate, with only minor gaps around prerequisites like school_id sourcing and locale/currency interactions.

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% and each parameter (locale, currency, course_id, school_id, startDate) is already documented in the schema. The description only reiterates the course_id sourcing, 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?

States a specific verb+resource ('Details for one course id') and names the sibling it depends on (list_courses), so the agent can place it in the workflow. It stops short of a full distinguishing statement versus other detail-fetch siblings like get_accommodation_details or get_school.

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 reference to 'one course id from list_courses' implies the tool is used after list_courses, giving implied usage context. There is no explicit when-to-use/when-not guidance or naming of alternatives such as calculate_trip_price for pricing work.

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