{
  "markdown": "**Am I recovered? Did my fueling work? What should change next week?**\nThe only MCP combining MacroFactor nutrition with Garmin training data.\n\nMacroFactor MCP is a local Fueling & Recovery Decision Engine. Give your MCP\nclient a MacroFactor export, optionally add Garmin, and ask for a decision\ninstead of manually comparing nutrition, sleep, body, and training screens.\n\n## Quickstart\n\nInstall [`uv`](https://docs.astral.sh/uv/), then confirm the packaged server starts:\n\n```bash\nuvx macrofactor-mcp\n```\n\nExport your data from MacroFactor, put the `.xlsx` file in one local directory,\nand add this to your MCP client configuration. Use absolute paths.\n\n```json\n{\n  \"mcpServers\": {\n    \"macrofactor\": {\n      \"command\": \"uvx\",\n      \"args\": [\"macrofactor-mcp\"],\n      \"env\": {\n        \"MACROFACTOR_DATA_DIR\": \"/absolute/path/to/macrofactor-exports\",\n        \"MACROFACTOR_DB_PATH\": \"/absolute/path/to/macrofactor.duckdb\"\n      }\n    }\n  }\n}\n```\n\nRestart the MCP client. The server imports new workbooks on startup. Run\n`setup_check`, then ask one of the questions below. If a desktop client cannot\nfind `uvx`, replace `\"uvx\"` with the absolute path returned by `which uvx`.\n\n## Four flagship workflows\n\nAll examples below use synthetic data.\n\n### `recovery_check` — Am I recovered?\n\nCombines last night's sleep, HRV, body battery, training load, and yesterday's\nfueling into a readiness view.\n\n```text\nRecovery Check: 2026-07-08\nSleep: 7h 38m, score 82; HRV +4 vs 7-day average\nTraining load: ACWR 1.08 (optimal)\nYesterday: 96% calorie target; 101% protein target\nOverall: All systems go — 4 positive signals.\n```\n\n### `daily_briefing` — What do today's signals say together?\n\nShows the day as one picture instead of separate nutrition and training logs.\n\n```text\nDaily Briefing: 2026-07-08\nIntake: 2,340 kcal (P 171g / F 72g / C 248g)\nAdherence: 98% calories | 101% protein\nBody Battery: 28 → 83 | Sleep: 7h 38m, score 82\nTraining: Productive | Load 612/568 (ACWR 1.08)\n```\n\n### `weekly_report` — What should change next week?\n\nReviews seven days of nutrition, weight, workouts, sleep, and training load.\n\n```text\nWeekly Report: 2026-07-02 to 2026-07-08\nAverage: 2,315 kcal | 168g protein\nOn target: calories 6/7 days | protein 7/7 days\nTraining: 4 sessions | Sleep: 7h 26m average\nNext-week signal: fueling was consistent; protect sleep before adding load.\n```\n\n### `nutrition_performance_correlation` — Did my fueling work?\n\nCompares nutrition with next-day Garmin recovery signals. It reports sample\nsizes so small or missing datasets stay visible.\n\n```text\nNutrition → Performance Correlation: 28 paired days\nProtein >=90% target: next-day HRV 51 vs 45 (+6)\nProtein >=90% target: sleep score 81 vs 76 (+5)\nEnergy deficit days: body battery 68 vs 75 (-7)\nObservation: higher-protein days tended to precede better recovery.\n```\n\n## MacroFactor-only or MacroFactor + Garmin\n\n| Mode | Decisions available |\n|---|---|\n| MacroFactor only | Nutrition, weight, workouts, `daily_briefing`, and `weekly_report`. Recovery output uses the nutrition signals that exist. |\n| MacroFactor + Garmin | All four flagship workflows, including sleep, HRV, body battery, activities, and training load. |\n\nGarmin is optional. To enable it, point `GARMINTOKENS` at an existing local\nGarth/Garmin token directory, then run `sync_garmin`.\n\n## Platform support\n\n- macOS and Linux\n- Windows is untested\n- Python 3.10 or newer\n\n## Limitations\n\n- v0.1 requires a manual MacroFactor export; it does not connect to a MacroFactor API.\n- Garmin correlation workflows need overlapping MacroFactor and Garmin dates.\n- Correlations are observational, not proof that one behavior caused another outcome.\n- Import support follows the current MacroFactor Quick Export and All-Time Data workbook layouts.\n\n## Privacy\n\nRaw nutrition, body, workout, and Garmin data stays in the local DuckDB\ndatabase. The server does not upload that database. However, **MCP tool results\nare sent to whatever model or client the server is connected to**. Review that\nclient's data policy and avoid requesting more detail than you want to share.\n\n## Disclaimer\n\nThis is an unofficial project. It is not affiliated with, endorsed by, or\nsupported by MacroFactor or Stronger By Science. It is not medical advice and\nmust not replace care from a qualified health professional.\n\nReleased under the [MIT License](LICENSE).\n\nmcp-name: io.github.NasserAlbusaidi/macrofactor-mcp\n",
  "bytes": 4416,
  "sha": "63920c5164927e87a39d487e0203d8b0319f08ba25bef7e4bf23f3d9e438f98e",
  "repo_slug": "nasseralbusaidi/macrofactor-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_nasseralbusaidi_macrofactor_mc_337be42f/readme"
}