fitness-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GARMIN_EMAIL | Yes | Garmin account email | |
| HEVY_API_KEY | Yes | Hevy API key | |
| HEVY_BASE_URL | No | Hevy API base URL | https://api.hevyapp.com/v1 |
| MCP_AUTH_TOKEN | No | Bearer token for authorization | |
| GARMIN_PASSWORD | Yes | Garmin account password | |
| GARMIN_TOKEN_STORE | No | Path to store Garmin tokens | /data/garmin |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_garmin_activitiesA | List recent Garmin Connect activities. Args: start: Zero-based offset into the activity list. limit: Number of activities to return, capped at 100. activity_type: Optional Garmin activity type key, such as running, cycling, walking, swimming, hiking, strength_training, or cardio. |
| list_garmin_activities_by_dateA | List Garmin Connect activities for a date range. Args: start_date: Start date as YYYY-MM-DD. end_date: Optional end date as YYYY-MM-DD. If omitted, Garmin uses the start date only. activity_type: Optional Garmin activity type key. sort_order: Optional Garmin sort order, for example asc or desc. |
| get_garmin_last_activityA | Get the most recent Garmin Connect activity summary. |
| get_garmin_activityB | Get a Garmin Connect activity summary by activity ID. |
| get_garmin_activity_detailsB | Get detailed Garmin activity data, including charts and map polyline data. Args: activity_id: Garmin activity ID. max_chart_points: Maximum chart samples Garmin should return. max_polyline_points: Maximum polyline points Garmin should return. |
| get_garmin_activity_splitsC | Get split/lap data for a Garmin activity. |
| get_garmin_activity_weatherC | Get weather data associated with a Garmin activity. |
| get_garmin_activity_typesB | List Garmin Connect activity type metadata. |
| list_hevy_workoutsA | List logged Hevy workouts. Args: page: One-based page number. page_size: Number of workouts to return, capped at 100. |
| get_hevy_workoutB | Get one logged Hevy workout by ID. |
| list_hevy_routinesC | List Hevy routines. |
| list_hevy_routine_foldersC | List Hevy routine folders. |
| list_hevy_exercise_templatesC | List Hevy exercise templates. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Tools are clearly separated by provider (Garmin vs. Hevy) and within each provider, each tool has a distinct purpose (listing, getting details, splits, weather, etc.). No overlapping functionality.
All tools follow a consistent 'verb_provider_noun' pattern in snake_case. Verbs like list, get are used predictably. Only minor deviation is 'get_garmin_last_activity' which still fits the pattern.
13 tools is well-scoped for a fitness server covering two platforms. It covers the essential read operations without being overwhelming or sparse.
The tool surface provides comprehensive read access for both Garmin and Hevy. Missing write operations (create/update/delete) are likely intentional given the server's focus on data retrieval. Minor gap: no tool to list Hevy routine folder contents or search across platforms.