Snacky
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Snackylog 150g chicken breast and 200g cooked rice for lunch"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
8080 | The web UI. Not built yet; until then only 8000 is served. |
Variable | Default | Meaning |
|
| the log |
|
| the BLS index |
|
| day boundaries and meal grouping |
|
| minutes between entries that start a new meal |
|
| sent to Open Food Facts |
|
| listen ports |
| unset | enables |
| unset | adds training days and body weight to |
| set by the image | the |
Data sources
Bundeslebensmittelschlüssel (BLS), Version 4.0. Max Rubner-Institut (2025), licensed under CC BY 4.0. https://www.blsdb.de/
Open Food Facts, licensed under the Open Database License. https://world.openfoodfacts.org/
License
GPL-3.0. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent food journal for AI assistants. Log meals, save recipes, plan meals and track nutrition.
Nutrition tracking: log meals and macros, USDA and Open Food Facts lookups, history, app import.
Calorie tracker app for ChatGPT and Claude: read meals, macros, weight and log meals from chat.
Food logging, nutrition summaries, and meal photo calorie and macro estimates.
Related MCP Servers
- FlicenseBqualityDmaintenanceA 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-
- AlicenseNot gradedqualityDmaintenanceA 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.16 npmMIT
- AlicenseBqualityAmaintenanceA local-first nutrition MCP server for food search, barcode lookup, meal estimation, intake logging, hydration, and nutrition coaching workflows.4653 npm11MIT
- FlicenseNot gradedqualityDmaintenanceLocal-first nutrition tracker MCP server for Hermes, enabling food, alias, recipe, and meal log management with SQLite persistence.-