Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
EGYM_EMAILYesYour EGYM Fitness login email
EGYM_LOCALENoLanguage of exercise names and API answersen-GB
EGYM_BASE_URLNoYour gym's Netpulse address, if finding it fails
EGYM_PASSWORDYesYour EGYM Fitness login password
EGYM_MCP_DATA_DIRNoFolder for .env, notes, catalogue and coach files~/.egym-mcp
EGYM_MCP_COACH_DIRNoMarkdown files returned by get_coach_context<data>/coach
EGYM_MCP_NOTES_FILENoTraining notes<data>/training_notes.md
EGYM_MCP_CATALOG_FILENoCached exercise catalogue, fetched on first use and after 90 days<data>/exercise_catalog.json

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_recent_workoutsA

Completed workouts of the last days days (including today) with exercises, sets, weights and reps.

get_workoutsA

Completed workouts between start_date and end_date (ISO format YYYY-MM-DD, both included).

get_strength_statusB

Current EGYM maximum strength per machine/exercise (activityId for get_strength_history).

get_strength_historyB

EGYM strength measurements over days days, optionally for one activityId.

get_bio_ageA

Current bio age with its parts (muscle, metabolism, cardio, flexibility), including flexibility measurements.

get_bio_age_historyA

Bio age per month or year (period: 'month' | 'year'; shift: periods back, 0 = current).

get_body_compositionA

Latest body metrics (weight, body fat, muscle mass, BIA values and so on).

get_body_metric_historyB

History of single body metrics, e.g. types=['WEIGHT_KG','BODY_FAT_PERCENTS'] (names from get_body_composition).

get_muscle_imbalancesB

EGYM's analysis of muscle imbalances (agonist/antagonist, left/right).

get_activity_levelC

Activity level, points and weekly goal.

search_exercisesA

Searches EGYM's exercise catalogue (~1200 exercises) for the exact name an exercise has in the app.

All words in query must appear in the local or English name (e.g. 'dumbbell bench', 'pullover', 'face pull'). Optionally filter by category, e.g. FREE_WEIGHTS, BODY_WEIGHT_BASED, WEIGHT_MACHINE_BASED, EGYM_MACHINE, MOBILITY, STRETCHING, ROWING. appName is the name in the app. The catalogue is cached locally; refresh=True fetches it again from EGYM (only for missing exercises).

get_available_plansA

Training plans in the app with planId: the user's own (USER_TRAINING_PLAN), from trainers and gym templates. own_only=True returns only the user's own plans. Sets here can show the values last trained; get_plan returns the stored ones.

get_planB

Details of a plan (any type) with all exercises and sets.

save_planA

Creates an own training plan in the EGYM app or replaces an existing one (plan_id).

exercises: list in training order, each {"activityId": , "sets": [...]}. Every set is its own entry, with the fields: numberOfReps (int), weight (kg, per dumbbell for two dumbbells; required for strength exercises unless body-weight based), recoveryTime (rest in s), duration (s, for timed sets such as cardio or stretching), optionally distance (m), speed, incline, heartRate, sideMode ('BOTH'|'LEFT'|'RIGHT'), trainingMethod (EGYM machines), setType (added if missing). Example: {"activityId": 95, "sets": [{"numberOfReps": 8, "weight": 22, "recoveryTime": 120}]} Replacing overwrites the whole plan; only replace plans the user has agreed to change.

delete_planA

Permanently deletes an own training plan (USER_TRAINING_PLAN only). Only after the user has confirmed.

get_coach_contextA

Coaching context from the user's Markdown files in the coach folder: role, planning rules, athlete profile. Call this first before planning or reviewing training, unless these files are already loaded.

read_training_notesC

Training notes: runs, how the user felt, mobility impressions, free-weight loads that are not in EGYM.

add_training_noteB

Adds an entry to the training notes (date: YYYY-MM-DD, today by default).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 18 tools

Disambiguation4/5

Most tools target clearly distinct resources (workouts, strength, bio age, body composition, plans, notes). A few near-pairs exist — get_recent_workouts vs get_workouts, get_available_plans vs get_plan, get_body_composition vs get_body_metric_history — but descriptions explicitly delineate the boundaries (relative days vs date range, last-trained vs stored values, summary vs single-metric history).

Naming Consistency5/5

Every tool follows a consistent verb_noun snake_case pattern (get_*, search_exercises, save_plan, delete_plan, read_training_notes, add_training_note). No mixed conventions or camelCase deviations in tool names.

Tool Count4/5

18 tools is slightly above the ideal range but each covers a distinct slice of the fitness domain (workouts, strength, body metrics, plans, notes, coaching). Nothing appears redundant or padded, so the count is reasonable though on the heavier side.

Completeness4/5

Strong read coverage across all major domains plus plan lifecycle (list/get/save/delete) and notes (read/add). Minor gaps: training notes can only be added, not edited or deleted, and there is no workout logging or exercise-detail lookup beyond the catalogue search, but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues