Skip to main content
Glama

Pin a chart to the telo home

pin_card

Put a live chart on the user's telo iPhone home. Only when the user asks to pin, save, show or keep something on telo. The card keeps updating with each sync. Styles: trend (line), stat (number and change), bars. Optional: compare_with draws a second metric on the same window; baseline=personal draws the user's usual range; display=pace_km turns running_speed into min/km; goal only when the user stated one; color only when the user asks (cards default to a color per metric category); size=half puts two consecutive half cards side by side (a number and a small trend, details on tap); change_from=usual or year_ago changes what the change line compares with. Always pass the user's question in their words; it is shown on the card.

Input Schema

NameRequiredDescriptionDefault
goalNo
sizeNohalf: two consecutive half cards share a row, as a number and a small trend line. Default full
colorNoOnly when the user asks for a color. Omit to use telo's default for the metric's category
styleNotrend: line chart; stat: number and change; bars: per-day or per-week barstrend
titleNo
metricYesExact metric name from list_metrics, e.g. vo2_max, running_speed, hrv_sdnn
windowNo30d
displayNoOnly for running_speed or walking_speed: show min:sec per km instead of m/s
baselineNoDraw the person's usual range: mean ± 1 SD of the 60 days before the last week
positionNotop
questionYesThe user's question or request that led to this card, in their words
change_fromNoWhat the card's change line compares today's value with. window_start (default): the first point of the window; usual: the user's own 60-day average ending a week ago; year_ago: the 14 days around the same date last year
compare_withNoA second metric drawn on the same window, each on its own scale

Output Schema

NameRequiredDescriptionDefault
cardYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the write-but-non-destructive profile is structured. The description adds genuinely new behavior: the card is live and refreshes on each sync, defaults to a per-category color, and half-size cards pair into a row with tap-for-detail. It does not say what happens if the same metric is pinned twice (relevant given idempotentHint=false) or whether a card can be removed.

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-loaded with purpose, then usage gating, then an option-by-option tour, which is a sensible order for a 13-parameter tool. The single dense paragraph is run-on in places ("size=half puts two consecutive half cards side by side…") and could be split for scanability, but almost every clause carries 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?

Output schema exists, so return values need no explanation, and the description covers the creation semantics, liveness, and the majority of meaningful options. For a card-creation mutation it is nearly complete; the omissions are the window/position/title parameters and duplicate-pin behavior.

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 13 parameters at 69% schema coverage, the description earns credit for explaining semantics the schema only names: baseline=personal as mean ± 1 SD over the 60 days before the last week, change_from's three comparison bases, size=half pairing behavior, and display=pace_km converting m/s to min/km. It leaves window, position and title entirely unexplained, which are three of the uncovered parameters.

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?

"Put a live chart on the user's telo iPhone home" names a concrete verb and destination, and "the card keeps updating with each sync" clarifies what kind of object is created. It is distinguishable from pin_countdown and edit_card by implication (chart vs countdown vs editing), but the siblings are never named explicitly.

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?

"Only when the user asks to pin, save, show or keep something on telo" gives a clear positive trigger plus an exclusion, and per-parameter conditions ("goal only when the user stated one", "color only when the user asks", "Always pass the user's question") are spelled out. No routing guidance toward siblings such as pin_countdown or edit_card, which is the main gap.

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