macrofactor-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GARMINTOKENS | No | Optional path to existing Garmin token directory (for Garmin integration) | |
| MACROFACTOR_DB_PATH | Yes | Absolute path to the DuckDB database file (e.g., /absolute/path/to/macrofactor.duckdb) | |
| MACROFACTOR_DATA_DIR | Yes | Absolute path to directory containing MacroFactor export .xlsx files |
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 |
|---|---|
| setup_checkA | Check local setup and explain the easiest next action. |
| import_exportA | Import a MacroFactor .xlsx export file into the database. |
| clear_dataA | Clear all imported data so you can reimport fresh exports. |
| data_statusA | Check what data is currently loaded — date ranges, row counts, last import. |
| queryA | Run a custom SQL query against the MacroFactor database. |
| get_nutrition_summaryC | Get nutrition summary for a specific date. |
| get_nutrition_rangeB | Get daily nutrition data for a date range. |
| get_food_logA | Get all foods logged on a specific date. |
| search_foodA | Search logged foods by name across all dates. |
| get_weight_trendB | Get weight trend data. Defaults to last 30 days. |
| get_workout_logB | Get workout details for a specific date. |
| get_workout_historyA | Get a summary of all workouts in a date range. Defaults to last 30 days. |
| get_muscle_group_summaryB | Get muscle group sets and volume summary. Defaults to last 7 days. |
| get_exercise_progressB | Track progress for a specific exercise over time. |
| list_exercisesA | List all tracked exercises with available metrics. |
| sync_garminA | Sync Garmin health data into local DuckDB for fast cross-queries with MacroFactor data. |
| garmin_statusA | Quick Garmin health snapshot for a date. No API calls — reads from synced DuckDB data. |
| daily_briefingA | Complete day view combining MacroFactor nutrition + Garmin health data. |
| get_compliance_reportB | Compare actual intake vs targets over a date range. Shows adherence. |
| get_digestA | Get a comprehensive weekly or monthly digest combining nutrition, weight, training, and adherence. |
| detect_phasesA | Auto-detect cut/bulk/maintenance phases from weight trend and energy balance. |
| analyze_meal_patternsA | Analyze meal timing, frequency, and which foods correlate with hitting targets. |
| get_combined_dataA | Unified cross-domain query — returns merged nutrition + health data by date. |
| weekly_reportA | Comprehensive 7-day report — nutrition, workouts, sleep, body, activity in one call. |
| recovery_checkA | Readiness assessment — should you train hard today? |
| nutrition_performance_correlationA | Correlate nutrition intake with next-day training metrics. |
| sleep_analysisA | Analyze what affects sleep quality — prior-day training, calories, timing. |
| body_comp_trendA | Track body composition over time — weight, body fat, training volume, energy balance. |
| get_insightsA | Get personalized insights based on your nutrition, training, sleep, and recovery data. |
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 29 tools
Several tools have overlapping purposes, such as multiple summary/report tools (daily_briefing, get_digest, weekly_report) and similar analytical tools (analyze_meal_patterns, sleep_analysis, nutrition_performance_correlation). Descriptions help differentiate, but an agent could easily select the wrong one.
Most tool names follow a verb_noun pattern in snake_case (e.g., get_food_log, sync_garmin). However, some names use noun_noun (body_comp_trend, nutrition_performance_correlation) or are ambiguous (query), introducing minor inconsistency.
With 29 tools, the server exceeds the 25-tool threshold for 'too many.' While the scope is broad (nutrition, fitness, Garmin data), many tools could be consolidated (e.g., multiple get_ tools) or are redundant given the SQL query tool.
The server covers the major domain areas well: nutrition tracking, body composition, workouts, Garmin health data, and cross-domain analytics. Minor gaps exist, such as no tool for setting goals or editing entries, but these are likely out of scope for a read-analysis toolset.