Skip to main content

Unofficial local fueling and recovery decision engine; not affiliated with MacroFactor or Stronger By Science; not medical advice

Project description

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-mcp

Export 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.

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, daily_briefing, and weekly_report. Recovery output uses the nutrition signals that exist.
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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

macrofactor_mcp-0.1.1.tar.gz (107.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

macrofactor_mcp-0.1.1-py3-none-any.whl (56.1 kB view details)

Uploaded Python 3

File details

Details for the file macrofactor_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: macrofactor_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 107.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for macrofactor_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8248d16a392309fb45443ceef74d119c289bd81b553beeebc939f91f46bc82a3
MD5 8e9159f092fa2b8b5025f5f7164c7fda
BLAKE2b-256 e08e18b76cc61e6091ea202af4ae25de4a143fc2aa616b46e9ef76b39bf2f767

See more details on using hashes here.

File details

Details for the file macrofactor_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: macrofactor_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 56.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for macrofactor_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4edc2c07667ee49a9c23d192f45a80426dfd04e1b8ea1e199ba74f8f926e15d4
MD5 33914f910a0fbe7e6f27e665d38c709e
BLAKE2b-256 6a245eb139627516ccbefc7fea66802adac7269754b44f599cd4afd6e60b64a8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page