Skip to main content
Glama

Snacky

A protein and calorie log that you never have to open to fill in. You tell a chat assistant what you ate (a message, a voice note, a recipe portion, a photo of a label or a plate), and the assistant calls Snacky's MCP tools. Snacky looks the food up in a nutrient database and keeps the log. A small web UI shows the day and the week and lets you correct entries.

Status: early. The MCP server runs; the web UI is not built yet.

How it works

  • The assistant names foods and grams. The numbers come from a database: the German Bundeslebensmittelschlüssel, Open Food Facts, or the recipe's own nutrition in Tandoor. A number the model estimated is stored and shown as an estimate.

  • Each log entry keeps a copy of its nutrients, so correcting a food later does not change past days.

  • One process owns one SQLite file. It serves MCP on one port and the web UI on another.

docs/ARCHITECTURE.md has the data model and the interfaces.

Related MCP server: Nutrition MCP

Running

docker run --read-only -v snacky-data:/data -p 8000:8000 ghcr.io/pxldi/snacky:<tag>

The image contains the BLS index at /app/data/bls.sqlite, converted from the pinned BLS download at build time. Without that file the server starts and skips BLS, with a warning. /data is the only path written at runtime.

Port

Serves

8000

MCP over streamable HTTP at /mcp, stateless, and /health (reports the build). Meant for the assistant only.

8080

The web UI. Not built yet; until then only 8000 is served.

Variable

Default

Meaning

SNACKY_DB

/data/snacky.sqlite

the log

SNACKY_BLS

/app/data/bls.sqlite

the BLS index

SNACKY_TZ

Europe/Berlin

day boundaries and meal grouping

SNACKY_MEAL_GAP_MIN

90

minutes between entries that start a new meal

SNACKY_OFF_USER_AGENT

snacky/0.1 (+https://github.com/pxldi/snacky)

sent to Open Food Facts

SNACKY_MCP_PORT, SNACKY_WEB_PORT

8000, 8080

listen ports

TANDOOR_URL, TANDOOR_TOKEN

unset

enables log_recipe_portion

OPENGYM_URL, OPENGYM_TOKEN

unset

adds training days and openGym's weigh-ins to week_summary

IMAGE_SHA

set by the image

the build value in /health

Data sources

License

GPL-3.0. See LICENSE.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      B
      quality
      D
      maintenance
      A personal fitness tracking server that enables logging and querying workouts, nutrition, and body metrics through a local SQLite database. Integrates with OpenNutrition MCP for food logging and supports exercise history tracking for workout progression.
      17
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      A filesystem-based MCP server that turns any MCP-capable AI agent into a conversational calorie and protein tracker with natural-language estimates, confidence-aware logging, daily/weekly progress, food-history search, and export, working offline with local fallback data.
      56 npm
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Local-first nutrition tracker MCP server for Hermes, enabling food, alias, recipe, and meal log management with SQLite persistence.
      -
    • F
      license
      Not graded
      quality
      C
      maintenance
      Offline MCP server for logging workouts, tracking dietary macros, and retrieving daily summaries, all stored in local SQLite. Enables fitness tracking via natural language in MCP-compatible clients.
      -