Quickstart
Connect your assistant over MCP, log a first meal from a draft and read the day back, in five minutes.
Three steps: connect your assistant, log a meal from a draft, read the day back. Free, no card. If you would rather not read docs, paste this into your assistant and it does all three:
Set up Gutlog for me: read https://getgutlog.com/setup.md and follow it.1. Connect over MCP (1 minute)
Gutlog is an MCP server at https://getgutlog.com/api/mcp. In ChatGPT or Claude, add it as a connector; in a coding agent, add it with one command. You sign in once in your browser. The exact clicks for every client, with one-click links, are on the setup page; in Claude Code it is:
claude mcp add --transport http gutlog https://getgutlog.com/api/mcpThen type /mcp, pick the server and authenticate. Ask your assistant “what is left to set up?”: it calls get_onboarding, which returns the checklist and the next step.
2. Log a meal (1 minute)
Share a photo and say “log this”. Your assistant looks at it and calls log_meal with a draft: one item per food or drink, its gram estimate or a household portion, and ingredients with a confidence each, hidden fats and aromatics included at lower confidence. This is the draft for a plate of scrambled eggs on toast:
{ "title": "Scrambled eggs on toast", "meal_type": "breakfast", "client": "claude", "items": [ { "name": "scrambled eggs", "grams": 120, "confidence": 0.92, "portion_confidence": 0.7, "cooking_method": "pan_fried", "ingredients": [ { "name": "egg", "confidence": 0.97, "visible": true }, { "name": "butter", "confidence": 0.55, "visible": false }, { "name": "milk", "confidence": 0.35, "visible": false } ] }, { "name": "sourdough toast", "portion": { "quantity": 1, "unit": "slice" }, "confidence": 0.85, "ingredients": [ { "name": "wheat flour", "confidence": 0.9, "visible": false }, { "name": "salt", "confidence": 0.75, "visible": false } ] } ]}The meal is always stored. Ingredients at 0.85 and up are confirmed, 0.6 to 0.85 likely (both count), and 0.3 to 0.6 possible: suggestions, not counted, and asked about. The answer, shortened:
{ "meal_id": "6f1c2e0a-4b7d-4c2e-9a51-0d3b8e7f9a10", "needs_review": false, "totals_display": { "kcal": 352, "protein_g": 19.8, "carbs_g": 24.1, "fat_g": 19.6 }, "items": [ { "name": "scrambled eggs", "grams": 120, "ingredients": [ { "name": "egg", "tier": "confirmed", "confidence": 0.97, "status": "included" }, { "name": "butter", "tier": "possible", "confidence": 0.55, "status": "suggested" }, { "name": "milk", "tier": "possible", "confidence": 0.35, "status": "suggested" } ] }, { "name": "sourdough toast", "grams": 50, "ingredients": [ { "name": "wheat flour", "tier": "confirmed", "confidence": 0.9, "status": "included" }, { "name": "salt", "tier": "likely", "confidence": 0.75, "status": "included" } ] } ], "questions": [ "Butter in the eggs?", "A splash of milk in the eggs?" ]}Your assistant replies with one line and asks the questions. Logging a draft from your assistant is free and unlimited on every plan. From a terminal, the same call is:
npx @meterapp/gutlog loginnpx @meterapp/gutlog log_meal --json '{"title":"Scrambled eggs on toast","meal_type":"breakfast","client":"claude","items":[{"name":"scrambled eggs","grams":120,"confidence":0.92,"portion_confidence":0.7,"cooking_method":"pan_fried","ingredients":[{"name":"egg","confidence":0.97,"visible":true},{"name":"butter","confidence":0.55,"visible":false},{"name":"milk","confidence":0.35,"visible":false}]},{"name":"sourdough toast","portion":{"quantity":1,"unit":"slice"},"confidence":0.85,"ingredients":[{"name":"wheat flour","confidence":0.9,"visible":false},{"name":"salt","confidence":0.75,"visible":false}]}]}'3. Read the day back (30 seconds)
Ask “how am I doing today?” and the assistant calls get_day: every meal with its items and ingredients, the day's nutrient totals and how many meals need review. Amounts are integers (energy in millikilocalories, mass in milligrams); totals_display has kcal and grams. See nutrients and units.
npx @meterapp/gutlog get_day{ "date": "2026-11-03", "meals": [ { "meal_id": "6f1c2e0a-4b7d-4c2e-9a51-0d3b8e7f9a10", "title": "Scrambled eggs on toast", "meal_type": "breakfast", "needs_review": false, "items": "…" } ], "totals_display": { "kcal": 352, "protein_g": 19.8, "carbs_g": 24.1, "fat_g": 19.6 }, "needs_review": 0}Next
- The draft contract in full: meal drafts and confidence.
- From code: the TypeScript SDK or REST (
npx @meterapp/gutlog opslists every op). - Agents should read agents.md for the rules, such as never presenting a gut pattern as a diagnosis.