MyFitnessPal
MCP server for MyFitnessPal: log, search, and analyze your food diary.
Connector by Mason-Levyy · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/mason-levyy-mfp-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data-analysis, api-integration
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 8 read · 6 write · 4 delete
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 18
Read from the source code; the running server may list different tools.
Read 8 · Look things up without changing anything.
fitness_bulk_exportfitness_get_dayfitness_get_exercisefitness_get_exercise_entriesfitness_get_notefitness_get_trendsfitness_list_food_pinsfitness_search_food
Write 6 · Create, change, send or run things.
fitness_draft_foodfitness_log_feelfitness_log_foodfitness_log_notefitness_log_waterfitness_log_weight
Delete 4 · Delete, drop, revoke or wipe things.
fitness_clear_food_pinfitness_delete_exercisefitness_delete_foodfitness_modify_food
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
MFP_COOKIE
Other settings (environment variables or headers).
MFP_USERNAME
Network hosts it talks to 4
github.com· found in codeglama.ai· found in codemyfitnesspal.com· found in coderaw.githubusercontent.com· found in code
Tools (18)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
fitness_bulk_exportExport date rangeExport a whole date range at once for analysis: per-day nutrition totals, food entries with macros, the MyFitnessPal daily note, and local feel notes. Read-only. start/end: YYYY-MM-DD (default: last 30 days ending today). sync_first: gap-fill from MyFitnessPal before exporting. Off by default so large historical exports stay fast on cached data.
fitness_clear_food_pinForget remembered foodForget a remembered food choice for `query`, or every choice with clear_all=True, so the next log of that query drafts options again.
fitness_delete_exerciseDelete exercise entryRemove exercise-diary entries by name match (case-insensitive). query: text matched against logged exercise names. By default deletes exactly one entry, like fitness_delete_food: an exact name match wins; otherwise several matches raise an error listing the candidates, and no match raises an error listing what's actually logged. Of several identical rows (same name and columns), one is removed. all_matches: delete every entry whose name contains `query` — for cleaning up syncs that log one workout as several same-named rows (e.g. Garmin's "Aerobics, general"). Check fitness_get_exercise_entri…
fitness_delete_foodDelete food entryRemove a food from the MyFitnessPal diary by name match. query: text matched against logged entry names (e.g. "banana"). If this matches nothing, the error lists what's actually logged that day/meal — use that to retry with a better query. If it matches more than one entry (and none is an exact name match), the error lists the candidates; narrow `query` to pick one. Identical duplicates (same name, including its quantity, in the same meal) are interchangeable, so one of them is removed; call again to remove another. meal: optional breakfast|lunch|dinner|snacks or any meal name on the account,…
fitness_draft_foodDraft food entryDraft a food entry: numbered options to choose from before logging. Each option lists every serving size with its calories/protein/carbs/fat for the whole entry (serving × quantity) and a suggested_serving. The min_/max_ targets (grams; calories in kcal) also apply to the whole entry: options that fit come first, near misses follow, flagged fits_targets=false. A food you've confirmed before for this query is pinned to the top. The order is fixed once drafted. Log a choice with fitness_log_food(draft_id=..., option=N, serving=M); call this again with different targets to refine. Drafts last 2…
fitness_get_dayGet day summaryNutrition summary, diary entries, the MyFitnessPal daily note, and the local feel note for a day. date: YYYY-MM-DD (default: today).
fitness_get_exerciseGet exercise diaryRead the MyFitnessPal exercise diary (cardio + strength) for a day. date: YYYY-MM-DD (default: today).
fitness_get_exercise_entriesList exercise entriesList a day's cardio and strength exercise-diary entries. Each entry has its section, name, and that section's columns (cardio: minutes, calories_burned; strength: sets, reps_set, weight_set). entry_id is informational only — fitness_delete_exercise deletes by name match. date: YYYY-MM-DD (default: today).
fitness_get_noteGet daily noteRead the MyFitnessPal daily diary note (the free-text 'Notes' box at the bottom of the day) straight from your account. date: YYYY-MM-DD (default: today).
fitness_get_trendsGet metric trendA single metric over a date range, for charts/analysis. metric: weight | calories_in | protein | carbs | fat. start/end: YYYY-MM-DD (default: last 30 days). Returns {metric, points: [{day, value}, ...]} with nulls omitted.
fitness_list_food_pinsList remembered foodsList remembered food choices (query → food and serving) that fitness_log_food reuses. Stored locally only.
fitness_log_feelSave feel noteSave a 'how I feel today' note. Stored locally only — never sent to MyFitnessPal. rating: optional 1-5. date: YYYY-MM-DD (default: today).
fitness_log_foodLog foodLog a food to the real MyFitnessPal diary. Preferred: pick from a fitness_draft_food draft with draft_id + option (+ serving, default the option's suggested_serving). meal, quantity, and date default to the draft's. pin=True remembers the choice so logging the same query later reuses this food and serving. With only `query`: logs a pinned food, or the single exact-name match; otherwise nothing is logged and a draft is returned (needs_choice=true) to pick from. With food_id + weight_id (from fitness_search_food): logs exactly that item, `query` being its display name. meal: breakfast|lunch|d…
fitness_log_noteWrite daily noteWrite the MyFitnessPal daily diary note (the free-text 'Notes' box at the bottom of the day). This is your real MFP note, synced to your account — distinct from the local-only fitness_log_feel. text: the note body. append: add to the existing note on a new line instead of replacing it. date: YYYY-MM-DD (default: today).
fitness_log_waterLog waterLog water to the real MyFitnessPal water tracker. amount: quantity to add to the day's total. unit: cup | fl_oz | ml | l (common spellings like "cups", "oz", "fl oz", "milliliters", "litres" are accepted). replace: set the day's total to `amount` instead of adding — use it to correct a mislogged total (amount=0 clears the day). Returns previous_ml; to undo a mistake, call again with amount=previous_ml, unit="ml", replace=True. date: YYYY-MM-DD (default: today).
Show 3 more tools
fitness_log_weightLog weightLog a weight measurement to MyFitnessPal. weight: in your MyFitnessPal account's display unit (kg or lbs). Logging twice for the same date updates that day's measurement. date: YYYY-MM-DD (default: today).
fitness_modify_foodReplace food entryReplace a MyFitnessPal diary entry: deletes the match, then adds a food. query: the existing entry to replace (name match) within `meal`. If this matches nothing, the error lists what's actually logged that day/meal — use that to retry with a better query. If it matches more than one entry (and none is an exact name match), the error lists the candidates; narrow `query` to pick one. Of several identical duplicates, one is replaced. new_query: the food to add instead; omit to re-add `query` (e.g. to change quantity). The replacement is chosen like fitness_log_food's: a pinned food or a single …
fitness_search_foodSearch foodsSearch MyFitnessPal's food database and return candidate matches. Each candidate has name, brand, calories, macros, serving, and the food_id + weight_id to pass to fitness_log_food to log exactly that item.
Compare and alternatives
Featured in
Signals
- Stars
- 26
- Forks
- 14
- Open issues
- 0
- Contributors
- 6
- Weekly downloads
- 698
- Last commit
- Oct 23, 2026 (5 days ago)
- Last release
- Oct 22, 2026 (6 days ago)
- Last package publish
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.Mason-Levyy/mfp-mcp- Version
- 0.4.3
- Auth
- API key
- Packages
- pypi mfp-mcp
- License
- MIT
- Repository
- github.com/Mason-Levyy/myfitnesspal-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from Mason-Levyy
Cite this page
MyFitnessPal MCP server. Agent Mart. https://agentmart.dev/connectors/mason-levyy-mfp-mcp (last updated 2026-10-24)