Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

MyFitnessPal

PYPI · MFP-MCP · SCANNED SEP 22

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

Available components

0 this week 55 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security32
  • Malware scan not yet available for this package.Unverified
  • CVE check failed: a known high-severity CVE affects lxml 5.4.0, a direct dependency. A fixed version is available. View diagnostics → Fail
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 10 of 66 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
Schema Quality & AI Usability69
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 1095 tokens (~91/item across 12 items; 12 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
  • Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage67
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "fitness_delete_food" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the MyFitnessPal MCP server?

MyFitnessPal runs locally as a PyPI package, launched with uvx mfp-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · mfp-mcp

# add to Claude Code
claude mcp add mason-levyy-mfp-mcp -- uvx mfp-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "mason-levyy-mfp-mcp": {
      "command": "uvx",
      "args": [
        "mfp-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "mason-levyy-mfp-mcp": {
      "command": "uvx",
      "args": [
        "mfp-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add mason-levyy-mfp-mcp -- uvx mfp-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mason-levyy-mfp-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "mfp-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add mason-levyy-mfp-mcp --command uvx --arg mfp-mcp
# ~/.hermes/config.yaml
mcp_servers:
  mason-levyy-mfp-mcp:
    command: "uvx"
    args: ["mfp-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "mason-levyy-mfp-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "mfp-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add mason-levyy-mfp-mcp -t stdio -c uvx -a mfp-mcp
// mcp.json
{
  "mcpServers": {
    "mason-levyy-mfp-mcp": {
      "command": "uvx",
      "args": [
        "mfp-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 18 Sept 26 −14
    • Malware scan: pass → unverified security
    • Stability: 0.97 → pass security
  • 17 Sept 26 +16
    • Malware scan: unverified → pass security
    • Security disclosure: fail → pass functional
  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 −15
    • Malware scan: pass → unverified security
  • 13 Sept 26 +16
    • Malware scan: unverified → pass security
  • 12 Sept 26 −18
    • Malware scan: pass → unverified security
    • Stability: pass → 0.80 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 22 Sept 2026 · Analysed pypi/mfp-mcp@0.3.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Vulnerabilities 2 findings
ID CVE Severity Vector Fix available
GHSA-vfmq-68hx-4jfw CVE-2026-41066 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N yes
PYSEC-2026-87 CVE-2026-41066 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 66 packages
Packages resolved 66
Stale 10
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 12 exposed · ~1,095 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
fitness_bulk_export ~107

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.

NameTypeReqDescription
end
start
sync_firstboolean

No output schema declared.

No examples provided.

fitness_delete_food ~141

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. meal: optional breakfast|lunch|dinner|snacks to disambiguate duplicates. date: YYYY-MM-DD (default: today).

NameTypeReqDescription
date
meal
querystringyes

No output schema declared.

No examples provided.

fitness_get_day ~47

Nutrition summary, diary entries, the MyFitnessPal daily note, and the local feel note for a day. date: YYYY-MM-DD (default: today).

NameTypeReqDescription
date

No output schema declared.

No examples provided.

fitness_get_exercise ~42

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

NameTypeReqDescription
date

No output schema declared.

No examples provided.

fitness_get_note ~53

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

NameTypeReqDescription
date

No output schema declared.

No examples provided.

fitness_get_trends ~85

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.

NameTypeReqDescription
end
metricstringyes
start

No output schema declared.

No examples provided.

fitness_log_feel ~65

Save a 'how I feel today' note. Stored locally only — never sent to MyFitnessPal. rating: optional 1-5. date: YYYY-MM-DD (default: today).

NameTypeReqDescription
date
note
rating

No output schema declared.

No examples provided.

fitness_log_food ~124

Log a food to the real MyFitnessPal diary. Searches for `query` and logs the top match. To log an exact item, pass the food_id + weight_id of a fitness_search_food candidate (query is then used as the display name). meal: breakfast|lunch|dinner|snacks. date: YYYY-MM-DD (default: today).

NameTypeReqDescription
date
food_id
mealstring
quantitynumber
querystringyes
weight_id

No output schema declared.

No examples provided.

fitness_log_note ~108

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

NameTypeReqDescription
appendboolean
date
textstringyes

No output schema declared.

No examples provided.

fitness_log_weight ~67

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

NameTypeReqDescription
date
weightnumberyes

No output schema declared.

No examples provided.

fitness_modify_food ~179

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. new_query: the food to add instead; omit to re-add `query` (e.g. to change quantity). meal: breakfast|lunch|dinner|snacks. date: YYYY-MM-DD (default: today).

NameTypeReqDescription
date
mealstring
new_query
quantitynumber
querystringyes

No output schema declared.

No examples provided.

fitness_search_food ~77

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.

NameTypeReqDescription
limitinteger
querystringyes
with_macrosboolean

No output schema declared.

No examples provided.

Common questions

What is the MyFitnessPal MCP server?

MyFitnessPal is an MCP server listed in the public MCP registry as io.github.Mason-Levyy/mfp-mcp. MCP server for MyFitnessPal: log, search, and analyze your food diary. This page covers its PyPI package (mfp-mcp).

Is the MyFitnessPal MCP server safe to use?

MyFitnessPal scores 55 out of 100 on VerifyMCP. We recorded 2 known advisories against it as of 22 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the MyFitnessPal MCP server expose?

MyFitnessPal exposes 12 tools: fitness_get_day, fitness_search_food, fitness_log_food, fitness_delete_food, fitness_modify_food, and 7 more. Their descriptions and schemas cost roughly 1,095 tokens of context every time the server is loaded.

Is the MyFitnessPal MCP server still maintained?

MyFitnessPal is still listed as active in the MCP registry. We last reached this channel on 22 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.