Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FITBIT_AIR_HOMENoThe folder where everything personal lives. Defaults to ~/.fitbit-air if not set. This folder holds the configuration, secrets, database, and logs.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_overviewB

One day's scores (with confidence), findings, safety alerts first, and key metrics. Default today.

get_trendsA

Daily series with baseline/band. Metrics: rhr, hrv_7d, sleep_debt_h, steps_7d, mvpa_week, sedentary_h, weight_trend_kg, bmi (unknown names return the full list). Scores: score:recovery, score:sleep, score:body_age, score:race. Default last 30 days; max 366. Or pass days=N for the last N days ending at end (default today); not with start.

get_sleepA

Nights (bed/wake local, stages, efficiency, naps), sleep scores with subscores, sleep debt, and the Sleep Regularity Index (SRI, -100..100, 100 = identical timing: how alike sleep/wake timing is from day to day, from the sleep score). Default 7 days. Or pass days=N for the last N days ending at end (default today); not with start.

get_activityA

Daily steps, brisk minutes, Google zone minutes, sedentary hours, strength, weight; workouts and weigh-ins. Default 7 days. Or pass days=N for the last N days ending at end (default today); not with start.

get_runningA

Runs (distance, pace, HR zones, spike flags) and the latest race plan status (if a race is configured). Default 30 days. Or pass days=N for the last N days ending at end (default today); not with start.

get_body_ageB

Latest body age on or before the date: display with range, components, levers, missing inputs, trend.

get_evidenceB

Citation, DOI and finding for evidence ids attached to scores and insights.

data_statusA

Last sync and analysis, row counts, wear days, and how old the Google login is. Call this first.

describe_schemaA

Tables and views with columns and purposes, for query_sql.

query_sqlA

Run ONE read-only SELECT on the local database (max 500 rows, 5 s; text cells are truncated at 2000 characters). Dates are 'YYYY-MM-DD' strings.

log_journalA

Log how the user feels: feeling/energy 1-5, soreness/session_rpe 0-10, illness, alcohol units 0-50, notes. Local only.

get_journalB

Journal entries in a date range (default 7 days). Or pass days=N for the last N days ending at end (default today); not with start.

save_coach_noteB

Remember an agreed plan, weekly target or observation (kind: plan|target|observation). Local only.

get_coach_notesB

Coach notes, overdue first. status: active|done|dropped, or None for every note. due_by: YYYY-MM-DD; only notes with review_on on or before it.

update_coach_noteB

Mark a note done/dropped or change its text or review date.

set_profileA

Change a profile value and re-run the analysis. Keys: race_date (YYYY-MM-DD), race_distance_km, sleep_need_h, height_m, hrmax_override (a number or a numeric string), sex, units (metric or imperial), timezone (an IANA name such as Europe/London), goals (a list of strings). The value "none" clears race_date, race_distance_km, height_m, hrmax_override and timezone.

refresh_dataA

Sync new data from Google now (then analysis runs). Takes up to a few minutes.

Prompts

Interactive templates invoked by user choice

NameDescription
morning_checkinMorning check-in: safety, recovery and sleep, one suggestion, notes due.
weekly_reviewWeekly review: last 7 vs previous 28 days, plan status, up to three targets for next week.
plan_next_runPlan the next run within the 10%-a-week build and today's recovery.
explain_scoreExplain what drove a score (recovery, sleep, body_age, race) and the lever that moves it most.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 17 tools

Disambiguation4/5

Most tools target clearly distinct resources or actions (sync, overview, sleep, running, notes, profile, SQL). There is mild overlap among the retrieval tools (get_trends, get_sleep, get_activity, get_body_age all return health series), but descriptions and metric scoping make the boundaries clear enough.

Naming Consistency4/5

All tool names use snake_case, and the dominant pattern is verb_noun (get_overview, get_sleep, save_coach_note, update_coach_note, set_profile). A few nouns-first or verb-first outliers (data_status, refresh_data, describe_schema, query_sql) break the strict pattern but remain readable and consistent in style.

Tool Count4/5

17 tools is slightly on the heavy side but each maps to a coherent capability of a full health-tracking domain (sync, domain fetchers, notes, profile, evidence, introspection). Nothing appears redundant or purely filler.

Completeness4/5

Covers the full lifecycle well: sync, per-domain reads (sleep/activity/running/trends/body age), journal and coach-note write/read/update, profile config, plus evidence and SQL introspection. Minor gaps exist (no hard delete for journal entries or coach notes, deletion only via status update), but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues