Skip to main content
Glama

Otis

Stop a timer

timer_stop
DestructiveIdempotent

Stop a timer when the user says they stopped. Returns minutes and hours, exact to the minute. With an hourly rate_minor it records the time as billable work linked to the timer; without one, ask for the rate and call again. discard throws a timer away.

Input Schema

NameRequiredDescriptionDefault
discardNoOnly when the user wants this timer thrown away. Records nothing.
timer_idYes
rate_minorNoHourly rate in minor units. With it, the tracked time is recorded as billable work; call again with it to record an already stopped timer.
request_idYesStable ID for this action; reuse only for identical retries.
stopped_atNoOnly when the user reports an earlier stop. Omit to use Otis's clock.
business_idNoOmit for your own business; use businesses_list for shared business IDs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the description adds real context beyond them: the return payload (minutes and hours, exact to the minute), that rate_minor converts tracked time into billable work, that an already-stopped timer can be recorded by re-calling with a rate, and that discard records nothing. It does not explain the request_id idempotency contract, which is left to the schema.

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?

Four tight sentences, front-loaded with the trigger and outcome, then the two conditional behaviors. Only the trailing "discard throws a timer away" feels tacked on, but it is still load-bearing 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 6-parameter mutation tool with no output schema, the description covers the return value, the billable-recording path, and the destructive discard path. The remaining gaps (stopped_at backdating, business_id scoping, request_id retry semantics) are all handled by the schema and annotations.

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 83%, so the schema already documents discard, rate_minor, stopped_at, business_id and request_id thoroughly. The description reinforces the rate_minor workflow (re-call to bill an already stopped timer) and discard semantics, but those points are largely mirrored in the schema descriptions, so it adds limited marginal meaning.

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 opens with a specific verb+resource ("Stop a timer") and is clearly distinct from the timer_start/timers_list siblings. It goes further by naming two behavioral branches (billable recording via rate_minor, and discard). It stops short of explicitly routing to siblings, so a 4 rather than a 5.

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?

"Stop a timer when the user says they stopped" gives a concrete trigger, and the rate_minor sentence supplies a real decision rule (ask for the rate and call again if none was supplied). The discard clause identifies the alternative path for throwing a timer away. No explicit when-not-to-use exclusions, so not a 5.

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.