Skip to main content
Glama

Almost Fire

Check in

record_checkin
Idempotent

Use this when the person says how they feel before or after training, or tells you about pain or swelling. Record the person’s reported readiness and symptoms. symptoms.pec is pain anywhere (sharp means sharp pain or pulling) and symptoms.knee is swelling anywhere, whatever the body part. After a session they may also report feel, strength, effort (1–10 for the whole session), more (sets they could have added), areas and soreness (muscle, joint, sharp, swelling); also set pec or knee from soreness as the phone does: joint is knee ache, sharp is pec sharp, swelling is knee swollen, muscle leaves both clear. A morning check-in has no session: readiness is how they feel today (1 Flat, 2 Meh, 3 Okay, 4 Good, 5 On fire), morning is true, and behind lists what they say is behind it (sleep, work, sore, stress, family, sick, travel); log their weight with log_weight. How they feel the morning after a session is next (clear or worse) on that session’s check-in. Never infer medical clearance. Do not use to diagnose pain or to log their weight; use log_weight for weight.

Input Schema

NameRequiredDescriptionDefault
noteNo
symptomsYes
readinessNo
sessionIdNo
idempotencyKeyYesA new random id for this change (a UUID). Send the same one again only to retry this exact change.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-destructive, idempotent behavior, and the schema documents the idempotencyKey retry rule, so the description only needs to add domain behavior. It does add a real safety constraint ('Never infer medical clearance') and explains how values are derived from natural language the way 'the phone does'. It stops short of saying what happens when a check-in already exists for a session (overwrite vs. create) or how sessionId linkage is resolved.

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?

The content is largely necessary given the enum-to-natural-language mapping burden, but the delivery is a run-on sentence with a duplicated fragment ('symptoms. symptoms.pec is pain anywhere') and no structural separation between the session check-in, morning check-in, and next-day cases. A short bulleted split would preserve the meaning with less parsing effort.

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?

An output schema exists, so return values need no explanation, and the complex nested `symptoms` object is largely decoded for the agent. The remaining completeness gap is the undocumented `after` field and its relationship to `next`, plus how `sessionId` should be supplied or omitted across the three check-in modes.

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?

With schema description coverage at only 20%, the description carries most of the semantic load, and it does so well: pec/knee are defined as pain/swelling anywhere, effort is 1–10 for the whole session, more means sets they could have added, readiness has a named 1–5 scale, and soreness has explicit mapping rules to pec/knee. Gaps remain for `note`, `sessionId`, and especially `after`, which is never mentioned or distinguished from `next`.

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 states a specific verb and resource: 'Record the person's reported readiness and symptoms', and the trigger ('when the person says how they feel before or after training, or tells you about pain or swelling') makes the intent unambiguous. It also names one sibling boundary ('use log_weight for weight'), though it does not distinguish itself from the other logging/editing siblings such as log_set or edit_set.

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?

It gives explicit when-to-use conditions (pre/post-training feel, pain or swelling), a distinct branch for morning check-ins with no session, and a rule for the morning-after case being logged on that session's check-in. It also states when not to use it ('Do not use to diagnose pain or to log their weight; use log_weight for weight') and names the alternative.

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