Skip to content
Agentmart
Submit a tool

Cronometer API MCP

MCP server for Cronometer nutrition tracking — food logs, diary, macros, fasting

Connector by rwestergren · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 65
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/rwestergren-cronometer-api-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

MCP server for Cronometer nutrition tracking — food logs, diary, macros, fasting

Use cases: api-integration, data-analysis

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
10 read · 7 write · 2 delete
Secrets
2 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Python package

Tools by what they do 19

Read from the source code; the running server may list different tools.

Read 10 · Look things up without changing anything.

  • get_biometrics
  • get_daily_nutrition
  • get_fasting_history
  • get_fasting_stats
  • get_food_details
  • get_food_log
  • get_macro_targets
  • get_nutrition_scores
  • list_biometrics
  • search_foods

Write 7 · Create, change, send or run things.

  • add_custom_food
  • add_food_entry
  • add_recipe
  • copy_day
  • import_recipe
  • mark_day_complete
  • update_custom_food

Delete 2 · Delete, drop, revoke or wipe things.

  • delete_custom_food
  • remove_food_entry

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • CRONOMETER_PASSWORD
  • CRONOMETER_TOTP_SECRET

Other settings (environment variables or headers).

  • CRONOMETER_ACCOUNT_TZ
  • CRONOMETER_USERNAME

Network hosts it talks to 2

  • github.com · found in code
  • mobile.cronometer.com · found in code

Files it touches

  • Your home directory (~)

Tools (19)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_custom_food

    Create a custom food in Cronometer with specified nutrition. Nutrient amounts should be for the full serving size specified. After creation, use the returned food_id with add_food_entry to log it. Args: name: Food name. calories: Calories per serving (kcal). protein_g: Protein per serving (g). fat_g: Fat per serving (g). carbs_g: Carbs per serving (g). fiber_g: Fiber per serving (g, default 0). sugar_g: Sugar per serving (g, default 0). sodium_mg: Sodium per serving (mg, default 0). saturated_fat_g: Saturated fat per serving (g, default 0). extra_nutri…

  • add_food_entry

    Add a food entry to the Cronometer diary. Use search_foods to find food_id and measure_id, then get_food_details to confirm serving sizes and gram weights. Args: food_id: Numeric food ID from search_foods results. measure_id: Measure/unit ID from get_food_details. grams: Weight of the serving in grams. date: Date to log as YYYY-MM-DD (defaults to today). translation_id: Translation ID from search results (usually 0). diary_group: Meal slot -- one of "auto", "breakfast", "lunch", "dinner", "snacks" (case-insensitive, default "auto").

  • add_recipe

    Create a recipe in Cronometer from other foods in the database. Unlike add_custom_food, which takes hand-entered nutrition, a recipe references existing foods by ID and Cronometer derives the full nutrient profile (including micronutrients) from those ingredients. Use search_foods to find each ingredient's food_id. After creation, use the returned food_id with add_food_entry to log it. Args: name: Recipe name. ingredients: List of {"food_id": int, "grams": float} objects, one per ingredient. An optional "measure_id" overrides the unit shown in Cronometer's UI; "grams…

  • copy_day

    Copy all diary entries from the previous day to the given date. Additive -- does not remove existing entries on the destination date. Args: date: Destination date as YYYY-MM-DD (defaults to today).

  • delete_custom_food

    Delete a custom food (one you created) by retiring it. The food disappears from search and from the Custom Foods list. Diary entries that already use it are kept, and get_food_details can still read it by ID. Database foods (USDA, NCCDB, CRDB, ...) and recipes cannot be deleted with this tool. Args: food_id: ID of the custom food to delete.

  • get_biometrics

    Get a biometric time series such as weight or body fat from Cronometer. Returns the recorded values over the date range as a list of {day, value} points. Use list_biometrics to find metric_id and unit_id (e.g. Weight is metric_id 1, with unit_id 1 for kg or 2 for lbs). Args: metric_id: Numeric metric ID from list_biometrics. unit_id: Numeric unit ID from the metric's units in list_biometrics. start_date: Start date as YYYY-MM-DD (defaults to 30 days ago). end_date: End date as YYYY-MM-DD (defaults to today).

  • get_daily_nutrition

    Get consumed macro and micronutrient totals for one or more days. Use days=N for calories/nutrients over the last N calendar days. Prefer relative inputs over dates calculated from conversation history. Returns the amounts actually consumed for the day, covering every nutrient the user tracks in Cronometer (i.e. has a target set for). The response has: - summary: flat macro totals (energy, protein, carbs, net_carbs, fat, fiber, alcohol). A value is null if that macro isn't tracked. - nutrients: the full list of tracked nutrients, each with id, name, amount, unit, category, and c…

  • get_fasting_history

    Get fasting history from Cronometer. Returns fasts within the date range including status, timestamps, and duration. Args: start_date: Start date as YYYY-MM-DD (defaults to 30 days ago). end_date: End date as YYYY-MM-DD (defaults to today).

  • get_fasting_stats

    Get aggregate fasting statistics. Returns total fasting hours, longest fast, average fast duration, and completed fast count.

  • get_food_details

    Get detailed food information including nutrition and serving sizes. Use this after search_foods to get the full nutrient profile and available measure_ids needed for add_food_entry. Args: food_id: Food ID from search_foods results.

  • get_food_log

    Get diary entries for one day or the last N calendar days. Prefer relative inputs for relative questions, rather than dates calculated from conversation history. For calorie/nutrient totals without individual entries, prefer get_daily_nutrition(days=N). Returns every food entry logged for the day. Each "Serving" entry is enriched (best-effort) with the food's name, source, serving_size, servings, and that food's own nutrient profile scaled to the amount eaten. Non-food entries (exercise, biometrics) carry their own name. serving_size defines one portion: quantity units weighing grams in tot…

  • get_macro_targets

    Get current macro targets including weekly schedule and templates. Returns the weekly macro schedule (which template applies to each day) and all saved macro target templates with their values.

  • get_nutrition_scores

    Get nutrition scores with per-nutrient consumed amounts and category grades. Returns category scores (All Targets, Vitamins, Minerals, Electrolytes, Antioxidants, Immune Support, Metabolism, Bone Health) with the actual consumed amount and confidence level for each tracked nutrient. This is the richest nutrition endpoint -- use it when you need to know both how much of each nutrient was consumed AND how close each is to the target. Args: date: YYYY-MM-DD, today, yesterday, or N days ago. Defaults to today in the account timezone, resolved at call time. Prefer relative …

  • import_recipe

    Create a recipe from a free-text ingredient list. Cronometer's "Import Recipe" feature: pass ingredients as plain text, one per line, and the server matches each to a food and converts the amount to grams. No need to call search_foods first. Prefer this when the user describes ingredients in their own words. Use add_recipe instead when you have exact food_ids and gram weights -- e.g. the user confirmed specific foods from search_foods results. Matching is fuzzy, so report the returned matches back to the user for confirmation. Unresolved lines are listed under "unmatched" and excluded from …

  • list_biometrics

    List the biometric metrics tracked in Cronometer. Returns every metric type the account can record (Weight, Body Fat, Heart Rate, Blood Glucose, Waist Size, Sleep, blood panels, body measurements, etc.). Use the metric_id and a unit_id from the results with get_biometrics.

Show 4 more tools
  • mark_day_complete

    Mark a diary day as complete or incomplete. Args: date: Date to mark as YYYY-MM-DD. complete: True to mark complete, False for incomplete.

  • remove_food_entry

    Remove one or more food entries from the Cronometer diary. Use get_food_log to find entry IDs. Args: entry_ids: List of serving/entry IDs to remove. date: Date the entries belong to as YYYY-MM-DD (defaults to today).

  • search_foods

    Search Cronometer's food database by name. Returns matching foods with their IDs and source information. Use the food_id and measure_id from results with add_food_entry, or pass food_id to get_food_details for full nutrition info. Args: query: Food name or keyword (e.g. "eggs", "chicken breast").

  • update_custom_food

    Edit an existing custom food (one you created) in place. Only the arguments you pass change; everything else keeps its current value. Find the food_id with search_foods (source "Custom") or get_food_details. Diary entries that already use the food pick up the new values. Recipes cannot be edited with this tool, even though they also show as source "Custom". Nutrient amounts are per serving: the food's default serving, or serving_grams when you pass it. To change the serving weight without re-entering nutrition, pass serving_grams alone; the stored per-100g values stay put, so the per-serving…

Compare and alternatives

    Featured in

    Signals

    Stars
    65
    Forks
    38
    Open issues
    1
    Contributors
    9
    Weekly downloads
    491
    Last commit
    Oct 19, 2026 (9 days ago)
    Last release
    Oct 13, 2026 (15 days ago)
    Last package publish
    Oct 13, 2026 (15 days ago)

    From GitHub (fetched Oct 24, 2026) and the package registry.

    Details

    Registry name
    io.github.rwestergren/cronometer-api-mcp
    Version
    0.2.6
    Auth
    API key
    Packages
    pypi cronometer-api-mcp
    License
    MIT
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026

    More from rwestergren

    Cite this page

    Cronometer API MCP. Agent Mart. https://agentmart.dev/connectors/rwestergren-cronometer-api-mcp (last updated 2026-10-24)