RunFuel MCP
Provides read-only access to Garmin activity and step data as the source of truth for training metrics, including GPS track data for route and run analysis.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@RunFuel MCPshow my latest run and today's food diary"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
RunFuel MCP
One self-hosted Model Context Protocol (MCP) server for selected Garmin and MyFitnessPal read-only data. Connect an MCP client such as Claude to your own RunFuel deployment instead of configuring two separate integrations.
Self-hosting only: RunFuel handles fitness, nutrition, account credentials, and potentially precise GPS data. Deploy your own copy and use your own accounts, Vercel project, and Upstash Redis database. Do not use or connect a fork to somebody else's credentials or database.
Features
Combines selected Garmin and MyFitnessPal tools behind one authenticated MCP endpoint.
Uses OAuth for MCP clients that support remote MCP OAuth.
Uses Upstash Redis for OAuth state/tokens, rate limiting, and encrypted managed credentials.
Includes a mobile-friendly
/settingspage for securely storing or updating upstream credentials.Keeps MyFitnessPal diary access read-only; diary write, edit, and delete tools are not exposed.
Uses Garmin as the source of truth for activity and step data; MyFitnessPal exercise tools are excluded.
Removes unnecessary identity fields from tool responses while preserving useful training metrics. GPS track data is deliberately retained for route and run analysis.
Related MCP server: Garmin MCP Server
Start here
Self-hosting guide — step-by-step setup for GitHub, Vercel, Upstash Redis, credentials, and Claude.
Architecture at a glance
Claude (or another remote MCP client)
|
HTTPS + OAuth
|
Your Vercel deployment
|
RunFuel MCP server
/ \
Garmin MyFitnessPal
|
Your Upstash RedisEvery operator must supply their own credentials. A fork should never point at the original maintainer's deployment, Redis database, or upstream account sessions.
Endpoints
Replace YOUR-DOMAIN with the stable HTTPS domain of your own deployment:
MCP endpoint:
https://YOUR-DOMAIN/mcpHealth check:
https://YOUR-DOMAIN/healthCredential manager:
https://YOUR-DOMAIN/settings
The health endpoint is a deployment check, not a guarantee that Garmin or MyFitnessPal credentials are valid.
Security essentials
Never commit
.env, API keys, MyFitnessPal cookies, OAuth passwords, Redis tokens, access tokens, or real user data.Store deployment secrets in your own Vercel Environment Variables. Keep the repository's
.env.exampleplaceholders only.Treat the MyFitnessPal session cookie as a password; it can grant access to your account.
Keep
RUNFUEL_OAUTH_PASSWORDandUPSTASH_REDIS_REST_TOKENstable while managed credentials are stored. The default encryption key is derived from these values. If either changes, you may need to re-enter stored credentials; see the setup guide before rotating them.GPS coordinates can reveal sensitive locations. Only connect accounts you own and review PRIVACY.md.
RunFuel sanitizes known identity fields, but key-based filtering cannot guarantee anonymity if upstream APIs change. Review responses and dependencies after updates.
Upstream projects and attribution
RunFuel builds on the following projects by Mason-Levyy:
Thanks to Mason-Levyy for the upstream work. RunFuel is a separate integration project and does not claim authorship of those projects. Preserve their licence notices when redistributing. RunFuel's own contributions are licensed under the MIT License; see LICENSE.
Development and tests
Python 3.12 is required by the Garmin dependency. To run the automated tests locally:
python -m venv .venv
# Activate the virtual environment, then:
pip install -r requirements.txt
python -m unittest discover -s tests -vFor deployment setup, required environment variables, MyFitnessPal cookie troubleshooting, and Claude connection steps, follow the self-hosting guide.
This server cannot be deployed
Maintenance
Related MCP Connectors
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Multi-tenant hosted MCP server for Oura Ring — 21 read-only tools, OAuth per user.
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects to Garmin Connect and exposes fitness and health data (activities, steps, heart rate, sleep, body composition) to MCP-compatible clients like Claude.MIT
- AlicenseNot gradedqualityDmaintenanceThis Model Context Protocol (MCP) server connects to Garmin Connect and exposes your fitness and health data to Claude and other MCP-compatible clients.1MIT
- AlicenseAqualityDmaintenanceA read-only MCP server that gives Claude Desktop access to your Garmin Connect data — daily health metrics, sleep, activities, training status, and body composition.6MIT
- AlicenseNot gradedqualityBmaintenanceA local, single-user, read-only MCP server that gives Claude Code access to your Garmin health and training data, exposing tools for health snapshots, training status, run details, body metrics, and training analysis.1MIT