Skip to main content
Glama

Update Course Lesson Progress

update_course_progress
Destructive

Marks a Circle community member's course lesson as completed or incomplete, requiring confirmation for the change.

Instructions

Update Course Lesson Progress. Changes community state and requires confirm=true for the user-requested action.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusNo
accountNoNamed private Circle account; selects credentials, not a remote community ID.
confirmNoSet true only when the user asked for exactly this action.
payloadNoComplete JSON request body instead of body flags. Supports nested Tiptap, maps and nullable values.
lesson_idNo
member_emailNo
payload_fileNoRegular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.0.1
    • changedInput schema / properties / confirm / description
      Previous value: -"Must be true for the specific user-requested write."New value: +"Set true only when the user asked for exactly this action."
  2. First observedv2.0.0

TDQS

C2.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true, so the mutation and non-idempotent profile is covered structurally. The description adds that it 'Changes community state' and enforces a confirm gate, which is useful context, but it never states what state is altered or what is destroyed.

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 short and front-loaded, but the opening sentence simply echoes the title and earns no place. The second sentence carries the only substantive content, so the structure is efficient but under-loaded for a 7-parameter destructive tool.

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

Completeness2/5

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

For a destructive, non-idempotent, open-world mutation with 7 parameters, nested payload, and no output schema, the description is far too thin. It omits what changes, whether progress is reversible, and how payload/payload_file/body-flag alternatives interact.

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

Parameters2/5

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

Schema description coverage is only 57 percent across 7 parameters, including a nested payload object, yet the description adds no meaning beyond referencing confirm=true. The account-credential-selection nuance, status enum, and payload/body-flag interaction are left entirely to the schema.

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

Purpose2/5

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

The first sentence is a verbatim restatement of the tool title 'Update Course Lesson Progress', making it a tautology rather than an explanation. Nothing distinguishes it from the sibling update_course_lesson, nor does it clarify that this marks a member's per-lesson completion status. An agent gets the resource but no added meaning beyond the name.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus update_course_lesson, reorder_course_lessons, or get_course_lesson. The only conditional, 'requires confirm=true for the user-requested action', is a gating constraint rather than usage routing and largely duplicates the confirm parameter's own schema description.

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

Deploy Server

Other Tools