Skip to main content
Glama

Get Infinite Practice Course Mastery

get-course-mastery
Read-only

Return practised-topic Infinite Practice mastery for a course (topic_id, topic_name when available, display 0–100, questions_answered). Use after get-context flags (has_course_mastery / started_course_mastery) or whenever context omitted topic_masteries. Agent OS is read-only: chatting, creating artifacts, or calling this tool does not change mastery. Source of truth is Infinite Practice attempts (user_topic_mastery: identity + course + topic); display matches the web IP UI. Progress is learner- and course-scoped, not chat- or client-scoped — web IP writes it; ACE/mobile/Agent OS only read the same rows. Empty topic_masteries means no IP attempts yet, not a separate client score. Requires course_id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
course_idYesCourse id to load practised-topic Infinite Practice mastery for.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
course_idYesCourse id whose mastery was loaded, matching followed_courses.course_id.
topic_masteriesYesPractised topics only. Empty means this course was loaded and the learner has no IP attempts yet.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare read-only, but the description adds substantive context they cannot: the source of truth (user_topic_mastery keyed by identity+course+topic), the scoping model (learner/course-scoped, not chat/client-scoped), who writes vs reads the rows, and the meaning of an empty result ('no IP attempts yet, not a separate client score').

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 purpose and return shape before the routing and scoping notes, which is the right order. It runs a bit long, with two adjacent sentences covering overlapping read-only/scoping claims, but nothing is truly wasted.

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?

For a single-param read tool with an output schema present, the description covers everything an agent needs: when to call it, what the fields mean, the empty-state interpretation, and the scoping/data-origin model. Nothing material 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% for the single course_id parameter and the schema already documents it fully as a positive course id. The description only restates 'Requires course_id', adding no syntax, format, or constraint detail beyond the structured field, so 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?

Opens with a specific verb+resource ('Return practised-topic Infinite Practice mastery for a course') and enumerates exactly what comes back (topic_id, topic_name, display 0–100, questions_answered). It is clearly separable from neighbors like get-context and get-course-syllabus.

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?

States a concrete trigger: 'Use after get-context flags (has_course_mastery / started_course_mastery) or whenever context omitted topic_masteries.' This names the related tool and the condition that selects it, though the inverse case (skip it when get-context already supplied masteries) is only implied rather than stated.

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