Skip to main content
Glama

session.record

Records work in one call: appends an event, logs a decision, sets a next action, and optionally creates a checkpoint to avoid separate updates.

Instructions

Record work in one call: append an event, log a decision, set next_action, and optionally checkpoint. Prefer this over several separate calls.

Input Schema

NameRequiredDescriptionDefault
decisionNoDecision to record (with reason)
checkpointNoCreate a checkpoint after recording (default false)
event_typeNoCanonical event type to append (e.g. file.changed, test.passed, command.executed)
next_actionNoNext action to store on the checkpoint
event_payloadNoOptional JSON payload for the event
decision_reasonNoReason behind the decision

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.8

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full disclosure burden. It makes the mutation clear (appends, logs, sets, creates a checkpoint) and notes the checkpoint default, but says nothing about atomicity if one part fails, whether an active session is required, idempotency, or what is returned — all material for a tool with six optional parameters.

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?

A single front-loaded sentence that enumerates the four capabilities and ends with the routing advice. No filler and nothing buried.

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

Completeness3/5

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

For a six-parameter mutation tool with no annotations and no output schema, the definition covers what it does but not what comes back (event id, checkpoint id, status) or the preconditions such as an existing session. Adequate to invoke, thin on consequences.

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%, so the baseline is 3 and the schema already explains each field. The description adds modest value by grouping the fields into the actions they trigger (event + payload, decision + reason, next_action tied to the checkpoint), but it does not clarify the decision/decision_reason pairing or what happens when every parameter is omitted.

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 uses specific verbs and resources — append an event, log a decision, set next_action, checkpoint — so the agent knows exactly what the tool composes. It implicitly distinguishes itself from the separate-call siblings (event.append, decision.create, session.checkpoint) by positioning itself as the bundled alternative, though it never names them.

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?

"Prefer this over several separate calls" gives explicit routing guidance toward this tool when multiple kinds of work need recording. It stops short of saying when not to use it — e.g. when only a single event or a single decision needs recording, where the granular siblings would be cheaper.

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