Weight Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Weight Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A personal calorie & protein counter delivered as an MCP server for use inside claude.ai. You log meals from photos or text in a normal Claude chat; this server counts them, tracks weight, and renders an interactive dashboard (weight graph + recently eaten) right in the conversation.
Single-user, self-hosted, by design. See SPEC.md for the rationale.
dashboard UI to claude.ai.
Dynamic Client Registration flow, but the only human step is entering a single shared password (configured in .env). There are no user accounts.
data/.| Tool | What it does |
|---|---|
log_food | Record an eaten item (kcal, protein, …), numbered per day; re-logging a meal number overwrites it (edits). |
delete_food | Remove one of today's meals by its number. |
record_weight | Store a body-weight measurement. |
lookup_nutrition | Query public nutrition databases (Open Food Facts, optional USDA). |
daily_progress | Today's intake vs. your goal. |
set_goals | Change the daily calorie/protein targets and floor/ceiling mode. |
show_dashboard | Renders the dashboard inline as an MCP Apps panel (weight graph + recent meals + today's progress). |
Copy .env.example to .env and set at least WEIGHT_MCP_PASSWORD and WEIGHT_MCP_PUBLIC_BASE_URL. Nutrition sources default to Open Food Facts, filtered to Germany; set WEIGHT_MCP_* to change region or enable USDA.
Goals are not env config — set them from chat with set_goals (they persist in the database). Two modes: floor (eat at least the target — the default, for under-eaters) and ceiling (stay under — for weight loss). Until you set your own, the default is 2600 kcal / 150 g protein, floor.
Local (dev):
uv sync
cp .env.example .env # then edit
uv run weight-mcpDocker (local build):
docker compose up --buildFor a real deployment you need public HTTPS (claude.ai connects from Anthropic's cloud, not your device). Copy docker-compose.template.yml, put the server behind a TLS reverse proxy, and set WEIGHT_MCP_PUBLIC_BASE_URL to that origin.
Settings → Connectors → add a custom connector, paste your server's base URL (https://<your-host> — the MCP endpoint and OAuth live at the origin root, so there is no path to append). claude.ai opens the OAuth page; enter your password. Done — start a chat and tell Claude what you ate.
uv run ruff check .
uv run mypy
uv run pytest~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.