Skip to content
Agentmart
Submit a tool

MyFitnessPal

MCP server for MyFitnessPal: log, search, and analyze your food diary.

Connector by Mason-Levyy · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 26
Write a review

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.

We use your email only for this newsletter. Privacy

About

MCP server for MyFitnessPal: log, search, and analyze your food diary.

Use cases: data-analysis, api-integration

No 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_export
  • fitness_get_day
  • fitness_get_exercise
  • fitness_get_exercise_entries
  • fitness_get_note
  • fitness_get_trends
  • fitness_list_food_pins
  • fitness_search_food

Write 6 · Create, change, send or run things.

  • fitness_draft_food
  • fitness_log_feel
  • fitness_log_food
  • fitness_log_note
  • fitness_log_water
  • fitness_log_weight

Delete 4 · Delete, drop, revoke or wipe things.

  • fitness_clear_food_pin
  • fitness_delete_exercise
  • fitness_delete_food
  • fitness_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 code
  • glama.ai · found in code
  • myfitnesspal.com · found in code
  • raw.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 range

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

    Forget 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 entry

    Remove 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 entry

    Remove 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 entry

    Draft 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 summary

    Nutrition 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 diary

    Read the MyFitnessPal exercise diary (cardio + strength) for a day. date: YYYY-MM-DD (default: today).

  • fitness_get_exercise_entriesList exercise entries

    List 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 note

    Read 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 trend

    A 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 foods

    List remembered food choices (query → food and serving) that fitness_log_food reuses. Stored locally only.

  • fitness_log_feelSave feel note

    Save 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 food

    Log 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 note

    Write 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 water

    Log 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 weight

    Log 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 entry

    Replace 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 foods

    Search 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
    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)