Skip to main content
Glama
emilniclashofseth

Personal Health Data (community)

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WITHINGS_CLIENT_IDYesYour Withings developer app Client ID from the Withings Developer Dashboard.
WITHINGS_TOKEN_FILENoOverride the token file path. Defaults to ~/.config/personal-health-data-mcp/tokens.json ($XDG_CONFIG_HOME if set; on Windows %APPDATA%\personal-health-data-mcp\tokens.json).
WITHINGS_REDIRECT_URINoThe callback URL registered for your Withings app. Defaults to http://localhost:8765/callback. If you use a different port or an HTTPS callback, set this to exactly the URL you registered.
WITHINGS_CLIENT_SECRETYesYour Withings developer app Secret from the Withings Developer Dashboard.

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
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_body_measurementsA

Weigh-ins in a date range, one row per step-on: weight, fat ratio, fat mass, fat-free mass, muscle, hydration (water), bone, visceral fat, extra/intracellular water, BMR, metabolic age, and on cardio scales pulse wave velocity, vascular age and standing heart rate. Units decoded; metrics the scale did not measure are null. Default: last 30 days; up to 366 days.

get_blood_pressureA

Blood pressure readings (systolic, diastolic in mmHg) with pulse (bpm), from a Withings blood pressure monitor or device that measures it. Empty if you have none. Default: last 30 days; up to 366 days.

get_daily_activityA

One row per day: steps, distance, floors, soft/moderate/intense/active minutes, active and total calories, heart rate and HR-zone minutes (from a Withings watch or the app's step tracking). Default: last 7 days; up to 366 days.

get_sleep_summaryA

Nightly sleep from a Withings sleep mat or watch: total sleep, time in bed, deep/light/REM/awake minutes, efficiency, latency, wake-ups, sleep score, heart and breathing rate, snoring, breathing disturbances. A night is labelled by the day it ends. Default: last 7 days; up to 366 days.

list_devicesA

Withings devices linked to your account: type, model, battery level, firmware and the last time each synced (useful when data looks missing). No serial numbers or ids.

auth_statusA

Shows whether the Withings app credentials are configured and whether you have authorized access: token file location, granted scopes, minutes left on the current access token. Never shows the secret or tokens.

start_authorizationA

One-time setup step. Returns the Withings authorization URL for the user to open in a browser (read-only scopes: user.info, user.metrics, user.activity). If the callback URL is on localhost, this server listens there for 10 minutes and finishes the setup by itself; otherwise the user runs exchange_code (or the CLI) with the redirect URL within 30 seconds. Writes only the local token file.

exchange_codeA

Finishes the one-time authorization when the callback URL is not on localhost: pass the full URL the browser was redirected to (or just its code). Withings codes expire after 30 seconds and work once, so the CLI (node server/cli.mjs authorize) is easier. Saves the tokens to the local token file (chmod 600); never returns them.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 8 tools

Disambiguation5/5

Each data tool targets a distinct health domain (body measurements, blood pressure, daily activity, sleep) and the auth tools clearly separate checking status, starting setup, and finishing setup. The descriptions helpfully clarify any edge overlaps, such as heart-rate data appearing in activity and sleep contexts.

Naming Consistency4/5

Most tools use a consistent snake_case verb_noun pattern (get_body_measurements, get_blood_pressure, list_devices, start_authorization, exchange_code), but auth_status breaks the pattern as a noun-only name. The convention is still predictable overall.

Tool Count5/5

Eight tools is well-scoped for a personal health data server: four data retrieval tools, one device listing tool, and three auth lifecycle tools. Each tool earns its place without obvious redundancy.

Completeness4/5

The surface covers core Withings health data domains and the full authorization lifecycle, with minor gaps such as no explicit weight goals or ECG/heart-specific retrieval beyond embedded fields. Agents can still accomplish the main workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues