Skip to main content
Glama
nrvim

garmin-givemydata

by nrvim

garmin_schema

Inspect available Garmin SQLite tables: get row counts per non-empty table and empty table names, or pass table names to list their columns.

Instructions

Show table columns and row counts.

Called without tables, returns a compact index: row count per non-empty table, plus the names of the empty ones — no column lists. Pass a comma-separated list of table names (e.g. "sleep,stress") to get the columns of just those tables.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tablesNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.13

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does disclose the key branching behavior — the default call omits column lists and returns only row counts plus the names of empty tables, while a tables argument narrows output to just those tables' columns. It does not mention read-only status, auth, or limits, but those are minor for a schema tool.

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?

Front-loaded with the core capability, then two tight sentences covering each mode with zero filler. Every sentence earns its place and the example is embedded efficiently.

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

Completeness5/5

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

For a single-parameter introspection tool with an output schema present, nothing an agent needs is missing: both calling modes, the parameter format, and the default behavior are all covered.

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 0% — the lone 'tables' parameter has no schema description — so the description must compensate, which it does: it specifies a comma-separated list format, gives the concrete example "sleep,stress", and explains the empty/default behavior.

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?

States a specific verb and resource: 'Show table columns and row counts' — a schema/introspection capability that is self-evidently distinct from the data-fetching siblings (garmin_sleep, garmin_query, etc.). It does not, however, explicitly name or contrast itself with any sibling, so an agent must infer the distinction.

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?

Clearly distinguishes the two invocation modes: called without *tables* it returns an index; with a comma-separated list it returns columns for those tables. This tells the agent how to drive the tool, though it never names alternatives (e.g., that this is a discovery aid for garmin_query) or states exclusions.

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