foodose GLP-1 nutrition

GLP-1 calorie and protein targets with a dose aware appetite ceiling, plus food and recipe search.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
79%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,157Tokens (tool definitions)
~1.8 KBTypical response size
Moderate attention impact (0.90% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "glp1-nutrition": {
      "url": "https://www.foodose.co/mcp"
    }
  }
}

Remote endpoints

https://www.foodose.co/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢calculate_glp1_target(weightKg, heightCm, age, sex, medication, ...)

Daily calorie, protein, carbohydrate, fat and fibre targets for someone taking a GLP-1 receptor agonist, plus the appetite ceiling: a dose aware estimate of the most they are likely to manage in a day. Use it for anyone taking or considering one of these medications, where a standard calorie calculation would assume an appetite they do not have. Returns the full derivation with a PubMed citation per step. Educational only. Not medical advice, not a diagnosis, and not a substitute for the clinician who prescribes the medication. Not appropriate for pregnancy, breastfeeding, insulin or sulfonylurea use, a history of disordered eating, or anyone under 18.

Input Schema

{
  "type": "object",
  "properties": {
    "weightKg": {
      "type": "number",
      "minimum": 35,
      "maximum": 250,
      "description": "Current weight in kilograms."
    },
    "heightCm": {
      "type": "number",
      "minimum": 130,
      "maximum": 210,
      "description": "Height in centimetres."
    },
    "age": {
      "type": "integer",
      "minimum": 18,
      "maximum": 90
    },
    "sex": {
      "default": "female",
      "description": "Biological sex, which sets the BMR constant.",
      "type": "string",
      "enum": [
        "female",
        "male"
      ]
    },
    "medication": {
      "default": "undecided",
      "type": "string",
      "enum": [
        "ozempic",
        "wegovy",
        "mounjaro",
        "zepbound",
        "saxenda",
        "trulicity",
        "rybelsus",
        "undecided"
      ]
    },
    "doseMg": {
      "description": "Current dose in mg. Must be a licensed dose for that medication, otherwise it is treated as 0. Use get_appetite_ceiling to list the licensed doses.",
      "type": "number"
    },
    "activity": {
      "default": "light",
      "type": "string",
      "enum": [
        "sedentary",
        "light",
        "moderate",
        "heavy"
      ]
    },
    "goal": {
      "default": "lose",
      "type": "string",
      "enum": [
        "lose",
        "recomp",
        "maintain"
      ]
    },
    "weeklyLossKg": {
      "default": 0.5,
      "type": "number",
      "minimum": 0.25,
      "maximum": 1
    },
    "goalWeightKg": {
      "description": "Defaults to 85 percent of current weight.",
      "type": "number",
      "minimum": 35,
      "maximum": 250
    },
    "startWeightKg": {
      "description": "Weight when the medication was started, used for the adaptive thermogenesis step.",
      "type": "number",
      "minimum": 35,
      "maximum": 250
    }
  },
  "required": [
    "weightKg",
    "heightCm",
    "age"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_appetite_ceiling(medication, doseMg)

The appetite suppression factor foodose models for a given medication and dose, with the evidence it is anchored to and the licensed doses for that drug. This is the site's original data: the estimate of how much less a person eats at a dose, rather than how much weight they lose. Call with no medication to get the whole table.

Input Schema

{
  "type": "object",
  "properties": {
    "medication": {
      "type": "string",
      "enum": [
        "ozempic",
        "wegovy",
        "mounjaro",
        "zepbound",
        "saxenda",
        "trulicity",
        "rybelsus",
        "undecided"
      ]
    },
    "doseMg": {
      "type": "number"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢search_foods(query, tolerance, minProteinPer100g, limit)

Per 100 g nutrition for the foods foodose uses, each with a realistic serving size and a GLP-1 tolerance rating describing how well it tends to sit when appetite is low. Free to use with attribution.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Matches the food name, category or tags.",
      "type": "string"
    },
    "tolerance": {
      "description": "How well the food tends to sit on a GLP-1.",
      "type": "string",
      "enum": [
        "easy",
        "moderate",
        "careful"
      ]
    },
    "minProteinPer100g": {
      "type": "number"
    },
    "limit": {
      "default": 10,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢search_recipes(query, meal, diet, minProteinPerServing, maxTotalMinutes, ...)

Published GLP-1 recipes with per serving calories and protein, every ingredient traceable to a USDA FoodData Central record. Useful when someone asks what to actually eat, rather than what their targets are.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Matches title, cuisine, main ingredient and ingredient names.",
      "type": "string"
    },
    "meal": {
      "type": "string",
      "enum": [
        "breakfast",
        "lunch",
        "dinner"
      ]
    },
    "diet": {
      "type": "string",
      "enum": [
        "vegetarian",
        "vegan"
      ]
    },
    "minProteinPerServing": {
      "type": "number"
    },
    "maxTotalMinutes": {
      "type": "number"
    },
    "limit": {
      "default": 8,
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools