Skip to main content
Glama

session.checkpoint

Capture a work snapshot—task, progress, decisions, blockers, changed files, and next action—and refresh the agent context file at a stopping point for reliable handoff.

Instructions

Snapshot the current work — task, progress, decisions, blockers, changed files and next_action — and refresh .agent/context/current.md. Every call writes a new checkpoint with a new ID, so call it once at a stopping point (before ending or handing off), not as a retry. Returns the checkpoint JSON. To log an event or decision in the same step, use session.record with checkpoint=true.

Input Schema

NameRequiredDescriptionDefault
labelNoOptional short label, e.g. "before refactor"
next_actionNoWhat the next agent should do first; shown as the next action in later context

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.1.9
    • changedInput schema / properties / label / description
      Previous value: -"Optional checkpoint label"New value: +"Optional short label, e.g. \"before refactor\""
    • changedInput schema / properties / next_action / description
      Previous value: -"Optional next action"New value: +"What the next agent should do first; shown as the next action in later context"
  2. First observedv0.1.8

TDQS

A4.5/5.0
Behavior4/5

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

No annotations, so the description carries the burden and does well: it discloses the mutation side effect (new checkpoint with new ID, refresh of .agent/context/current.md) and the idempotency hazard of duplicate calls. It omits auth/permission expectations and any failure modes, keeping it short of a 5.

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 action and payload before the constraint and the sibling routing; every sentence earns its place. Slightly dense with parenthetical enumerations but no waste.

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?

No output schema, and the description does say it returns the checkpoint JSON, so return expectations are covered. For a no-required-param mutation with zero annotations, it gives sufficient guidance, though permission/auth context and the shape of the refreshed file are unstated.

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 100%, so baseline 3 applies, and the description adds real value by naming the captured payload (progress, decisions, blockers, changed files) that flows into next_action's downstream visibility. It doesn't clarify how label is surfaced in later context.

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?

States a specific verb+resource with full scope: "Snapshot the current work" enumerated as task, progress, decisions, blockers, changed files, next_action, plus the .agent/context/current.md side effect. Clearly distinguishable from session.get, session.record, and context.update siblings.

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

Usage Guidelines5/5

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

Explicitly says when to call (once at a stopping point, before ending or handing off) and when not to (not as a retry, since every call writes a new checkpoint with a new ID). Also routes to session.record with checkpoint=true when logging event/decision in the same step.

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