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
Food logging, nutrition summaries, and meal photo calorie and macro estimates.
Personal nutrition tracking — log meals, track macros, review history, import from another app.
Log what you ate by talking to your AI assistant — calories and macros, completely free.
Log workouts and meals by telling your AI. 873 exercises, muscle diagrams, food lookup.
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.105 npmMIT
- AlicenseBqualityAmaintenanceA local-first nutrition MCP server for food search, barcode lookup, meal estimation, intake logging, hydration, and nutrition coaching workflows.46149 npm10MIT
- FlicenseNot gradedqualityCmaintenanceLocal-first nutrition tracker MCP server for Hermes, enabling food, alias, recipe, and meal log management with SQLite persistence.-