Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HEALTH_MCP_DB_PATHNoPath to the SQLite database file. Defaults to ~/health/health.db.~/health/health.db
HEALTH_MCP_HEVY_API_KEYNoHevy API key. Required for sync_workouts / sync.

Capabilities

Features and capabilities supported by this server

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

Tools

Functions exposed to the LLM to take actions

NameDescription
add_productA

Add a Product to the Catalog. Macros are per 100g. source is "verified" (transcribed from a package label) or "estimated" (general knowledge) — verified is the standard for anything worth trusting. Returns the new product id.

find_productA

Search the Catalog by name or brand (substring match). Omit query to list the whole Catalog. Call this before log_food against a Catalog Product — the result's id is the product_id log_food expects.

log_foodA

Log that grams of a food were eaten. Pass exactly one of: product_id (from find_product, for a Catalog item) or name + macros (per 100g, model-supplied, for a one-off — always recorded as estimated). at defaults to now; the stored date is derived via the 04:00 Europe/Amsterdam day rule, not a calendar date. Returns the new food_log id.

delete_food_entryB

Delete a Food Log Entry by id.

sync_workoutsA

Pull new training data from Hevy into the database. Call this before answering a question about recent training — a workout finished after the last sync isn't in the database until you do. Delta by default and cheap to call. full=True re-fetches everything and reconciles deletions; use it only if the data looks wrong, not routinely. Also refreshes exercise templates and body measurements.

queryA

Read-only SQL against the health database. Must be a single SELECT or WITH statement.

Schema: products(id, name, brand, source, kcal_100g, protein_100g, carbs_100g, fat_100g, fibre_100g, sugar_100g, sat_fat_100g, salt_100g, note, created_at) food_log(id, logged_at, date, product_id, name, source, grams, entered_as, kcal, protein, carbs, fat, note) workouts(id, title, start_time, end_time, date, updated_at, raw) exercise_templates(id, title, primary_muscle_group, secondary_muscle_groups, equipment) workout_exercises(id, workout_id, idx, exercise_template_id, title) workout_sets(id, workout_exercise_id, idx, type, weight_kg, reps, rpe, duration_s, distance_m) body_measurements(date, weight_kg, fat_percent) sync_state(source, cursor, last_run_at, last_status, last_error)

date columns are always the 04:00 Europe/Amsterdam day, computed at write time — group by date, not by a calendar date derived from a timestamp.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danielv27/health-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server