Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {
"tasks": {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| log_workout | Log a complete workout with exercises and sets. Returns the fully logged workout with all exercises and sets for confirmation. Args: date_time: ISO datetime string (e.g., "2026-01-06T18:30:00") workout_type: Optional type/category for the workout tags: Optional list of tags (e.g., ["legs", "sprint"]) notes: Optional notes for the workout exercises: List of exercises with sets. Each exercise should have: - name: str (required) - category: Optional[str] - notes: Optional[str] - sets: List of sets with fields like reps, weight_kg, weight_lbs, distance_yards, side, etc. |
| add_exercise | Add an exercise to an existing workout. Args: workout_id: ID of the workout to add exercise to name: Name of the exercise category: Optional category (e.g., 'Squat', 'Push', 'Pull') notes: Optional notes about the exercise |
| add_set | Add a set to an existing exercise. Args: exercise_id: ID of the exercise to add set to reps: Number of repetitions weight_kg: Weight in kilograms weight_lbs: Weight in pounds distance_m: Distance in meters distance_yards: Distance in yards duration_s: Duration in seconds side: 'left', 'right', or 'both' for unilateral exercises rpe: Rate of Perceived Exertion (1-10) rir: Reps In Reserve (0-5) is_warmup: Whether this is a warmup set |
| get_workouts | Query workouts with various filters. |
| get_last_workout | Get the most recent workout matching type or tag. |
| get_exercise_history | Get history of a specific exercise across workouts. |
| upsert_nutrition_day | Create or update a nutrition day entry. |
| upsert_meal | Create or update a meal within a nutrition day. |
| add_or_update_meal_item | Add or update a food item within a meal. The AI should first use OpenNutrition MCP to find food_id and get macros, then call this tool with the calculated values for the serving quantity. |
| get_nutrition_day | Get a complete nutrition day with meals and items. |
| get_nutrition_days_summary | Get nutrition summaries for a date range. |
| delete_meal_item | Delete a meal item. |
| delete_meal | Delete a meal and optionally its items. |
| delete_nutrition_day | Delete a nutrition day and optionally cascade to meals/items. |
| log_body_metrics | Log body weight and skinfold measurements. Args: date: Date in YYYY-MM-DD format body_weight_kg: Body weight in kilograms (optional) skinfolds: Dictionary of skinfold measurements in mm (optional). Can be a single site like {"abdomen": 10} or multiple sites like {"chest": 12, "abdomen": 18, "thigh": 15}. Common sites: abdomen, chest, thigh, tricep, subscapular, suprailiac, midaxillary notes: Optional notes about the measurement Example: Single belly skinfold: {"abdomen": 10} Multiple sites: {"chest": 12, "abdomen": 18, "thigh": 15} |
| get_body_metrics | Get body metrics with skinfolds. |
| search_logs | Search across workouts, nutrition days, and body metrics. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |