Skip to main content
Glama

update_course

Rename and/or change privacy. Read-modify-write of the whole record. READ-MODIFY-WRITE: GETs the record, overlays the changes, PUTs the whole record back to /course-service/course/{courseId}, the same request Garmin's own web editor sends on Save (observed 2026-09-24). Concurrent callers can clobber each other. Throws before any request if neither field is given or the name is blank. A just-created course may 429 "not yet ready".

Input Schema

NameRequiredDescriptionDefault
changesYes
courseIdYesNumeric id

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) by disclosing the read-modify-write whole-record algorithm, the exact endpoint and that it mirrors Garmin's own web editor, concurrency clobbering between callers, fail-fast validation, and a possible 429 on freshly created courses. That is unusually rich operational context; the only gap is authentication/permission requirements.

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-loaded with the one-line summary before the mechanics, and every sentence carries operational information. Slightly penalized for the redundant restatement of 'Read-modify-write' twice in the first two sentences.

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?

For a two-parameter mutation with no output schema and only partial annotations, the description supplies the algorithm, endpoint, concurrency risk, validation behavior and rate-limit caveat. It omits what the response contains and any permission requirements, but the essential calling information is present.

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 50% (only courseId is described, the nested changes object is bare), so the description must compensate. It does partly: it identifies the two permitted change fields and adds a constraint absent from the schema ('name is blank' causes a pre-request throw). It does not clarify formats or the privacy enum beyond what the schema already supplies.

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?

Opens with a specific verb pair and resource scope — 'Rename and/or change privacy' on a course — which is far more precise than the generic 'update_course' name and clearly separates it from create_course, delete_course, and list_courses. It also pins the exact mutation surface (name, privacy).

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?

Usage is implied by the scope statement (edit an existing course's name/privacy) but no sibling is named and no when-not guidance is given. The failure conditions ('throws if neither field is given or name is blank') are validation rules rather than routing guidance, so the agent must infer that create_course/delete_course are the alternatives.

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.