Skip to main content
Glama

mark_lesson_read

Records that a learner has read a lesson after they confirm it, so Codemm can track lesson progress accurately.

Instructions

Record that the learner has read a lesson. Call it only after the learner says they've read it.

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": {
      "id": "<id>"
    },
    "name": "mark_lesson_read"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesLesson id

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations supplied, the description carries the full behavioral burden. It discloses the important trait that this is a state-recording action gated on user confirmation, but says nothing about idempotency (what happens if the lesson is already marked read), whether it can be undone, or what downstream progress/next_step state changes.

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

Conciseness5/5

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

Two short sentences, zero filler, with the action stated first and the invocation precondition immediately after. Nothing could be removed without losing information.

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 single-parameter progress-recording tool with a trivial schema and no output schema, the description covers what an agent needs to decide to call it and with what. Only minor gaps remain around repeat-call behavior and effects on related progress state.

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?

There is one required parameter whose schema entry already documents it as 'Lesson id' at 100% coverage. The description adds no format, source, or lookup guidance for that id, so it neither helps nor hurts beyond the schema baseline of 3.

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?

The description gives a specific verb and resource: recording that a lesson has been read. That distinguishes it from write siblings like save_lesson or save_exercise, which persist content rather than progress. It doesn't name any sibling explicitly, so it stops short of full differentiation.

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?

"Call it only after the learner says they've read it" is an explicit trigger condition and implicitly a when-not (don't call proactively or infer completion). No alternative tool is named for the case where the learner wants to save lesson content instead, but the usage boundary is clear.

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