macrofactor-mcp
This server is a local Fueling & Recovery Decision Engine that combines MacroFactor nutrition data with optional Garmin training/health data, storing everything in a local DuckDB database. Here's what you can do:
Data Management
import_export— Import MacroFactor.xlsxexport filessync_garmin— Pull Garmin Connect data (daily stats, activities, sleep, training status, body fat)data_status/clear_data/setup_check— Manage and diagnose your local dataquery— Run custom read-only SQL queries across 20+ tables
Nutrition
get_nutrition_summary/get_nutrition_range— Daily or range-based nutrition breakdownsget_food_log/search_food— View and search logged foodsget_compliance_report— Compare actual intake vs. targetsanalyze_meal_patterns— Analyze meal timing, frequency, and foods correlated with hitting targets
Weight & Body Composition
get_weight_trend— Track weight over timedetect_phases— Auto-detect cut/bulk/maintenance phases from weight and energy balancebody_comp_trend— Track weight, body fat, training volume, and calorie balance over time (up to 90 days)
Workouts & Training
get_workout_log/get_workout_history— View workout details and historyget_muscle_group_summary— Sets and volume by muscle groupget_exercise_progress— Track 1RM, volume, and reps for specific exercises
Garmin Health Monitoring
garmin_status— Snapshot of Garmin stats, sleep, and training status for a given date
Flagship Cross-Domain Workflows
recovery_check— Readiness assessment combining sleep, HRV, body battery, training load, and yesterday's nutritiondaily_briefing— Full-day unified view of nutrition, adherence, body metrics, sleep, and trainingweekly_report— Comprehensive 7-day report to inform next-week adjustmentsnutrition_performance_correlation— Correlate protein/calorie intake with next-day HRV, sleep score, and body batterysleep_analysis— Analyze how prior-day training, calories, and meal timing affect sleep quality
Personalized Insights
get_insights— Cross-domain insights with trend alerts, personal correlations, and prioritized recommendationsget_digest— Comprehensive weekly/monthly digest covering nutrition, weight, training, and adherenceget_combined_data— Unified query merging nutrition + health data by date and domain
Retrieves Garmin training, sleep, HRV, body battery, and activity data to enhance fueling and recovery analysis with real-world performance metrics.
Am I recovered? Did my fueling work? What should change next week? The only MCP combining MacroFactor nutrition with Garmin training data.
MacroFactor MCP is a local Fueling & Recovery Decision Engine. Give your MCP client a MacroFactor export, optionally add Garmin, and ask for a decision instead of manually comparing nutrition, sleep, body, and training screens.
Quickstart
Install uv, then confirm the packaged server starts:
uvx macrofactor-mcpExport your data from MacroFactor, put the .xlsx file in one local directory,
and add this to your MCP client configuration. Use absolute paths.
{
"mcpServers": {
"macrofactor": {
"command": "uvx",
"args": ["macrofactor-mcp"],
"env": {
"MACROFACTOR_DATA_DIR": "/absolute/path/to/macrofactor-exports",
"MACROFACTOR_DB_PATH": "/absolute/path/to/macrofactor.duckdb"
}
}
}
}Restart the MCP client. The server imports new workbooks on startup. Run
setup_check, then ask one of the questions below. If a desktop client cannot
find uvx, replace "uvx" with the absolute path returned by which uvx.
Related MCP server: Garmin MCP
Four flagship workflows
All examples below use synthetic data.
recovery_check — Am I recovered?
Combines last night's sleep, HRV, body battery, training load, and yesterday's fueling into a readiness view.
Recovery Check: 2026-07-08
Sleep: 7h 38m, score 82; HRV +4 vs 7-day average
Training load: ACWR 1.08 (optimal)
Yesterday: 96% calorie target; 101% protein target
Overall: All systems go — 4 positive signals.daily_briefing — What do today's signals say together?
Shows the day as one picture instead of separate nutrition and training logs.
Daily Briefing: 2026-07-08
Intake: 2,340 kcal (P 171g / F 72g / C 248g)
Adherence: 98% calories | 101% protein
Body Battery: 28 → 83 | Sleep: 7h 38m, score 82
Training: Productive | Load 612/568 (ACWR 1.08)weekly_report — What should change next week?
Reviews seven days of nutrition, weight, workouts, sleep, and training load.
Weekly Report: 2026-07-02 to 2026-07-08
Average: 2,315 kcal | 168g protein
On target: calories 6/7 days | protein 7/7 days
Training: 4 sessions | Sleep: 7h 26m average
Next-week signal: fueling was consistent; protect sleep before adding load.nutrition_performance_correlation — Did my fueling work?
Compares nutrition with next-day Garmin recovery signals. It reports sample sizes so small or missing datasets stay visible.
Nutrition → Performance Correlation: 28 paired days
Protein >=90% target: next-day HRV 51 vs 45 (+6)
Protein >=90% target: sleep score 81 vs 76 (+5)
Energy deficit days: body battery 68 vs 75 (-7)
Observation: higher-protein days tended to precede better recovery.MacroFactor-only or MacroFactor + Garmin
Mode | Decisions available |
MacroFactor only | Nutrition, weight, workouts, |
MacroFactor + Garmin | All four flagship workflows, including sleep, HRV, body battery, activities, and training load. |
Garmin is optional. To enable it, point GARMINTOKENS at an existing local
Garth/Garmin token directory, then run sync_garmin.
Platform support
macOS and Linux
Windows is untested
Python 3.10 or newer
Limitations
v0.1 requires a manual MacroFactor export; it does not connect to a MacroFactor API.
Garmin correlation workflows need overlapping MacroFactor and Garmin dates.
Correlations are observational, not proof that one behavior caused another outcome.
Import support follows the current MacroFactor Quick Export and All-Time Data workbook layouts.
Privacy
Raw nutrition, body, workout, and Garmin data stays in the local DuckDB database. The server does not upload that database. However, MCP tool results are sent to whatever model or client the server is connected to. Review that client's data policy and avoid requesting more detail than you want to share.
Disclaimer
This is an unofficial project. It is not affiliated with, endorsed by, or supported by MacroFactor or Stronger By Science. It is not medical advice and must not replace care from a qualified health professional.
Released under the MIT License.
mcp-name: io.github.NasserAlbusaidi/macrofactor-mcp
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/NasserAlbusaidi/macrofactor-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server