Skip to main content
Glama

get_range

Read-only

Read the user's food diary across a date range, with per-day calorie/macro totals and each entry listed with its id. All calorie and macro values, including carbohydrates, are estimates from USDA FoodData Central, Open Food Facts, the user's own entry or an AI assistant's estimate — approximate, not lab-measured or specific to a package or batch, and not suitable for insulin dosing (including carb counting for a meal bolus), blood-glucose prediction or any other medical decision.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endYesYYYY-MM-DD (inclusive).
startYesYYYY-MM-DD (inclusive).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
endYesA local date, YYYY-MM-DD.
daysYes
startYesA local date, YYYY-MM-DD.
entriesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • removedOutput schema / properties / entries / items / properties / created_at
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / entries / items / properties / id / description
      Added value: +"Identifies the entry for a later edit or deletion."
    • removedOutput schema / properties / entries / items / properties / items / items / properties / source
      Removed value: -{
      -  "description": "Where the macros came from (e.g. usda, off, client).",
      -  "type": "string"
      -}
    • addedOutput schema / properties / entries / items / properties / items / items / properties / unknown_macros
      Added value: +{
      +  "description": "Macros missing from the source data: shown as 0 but unknown, not a real zero.",
      +  "items": {
      +    "enum": [
      +      "protein_g",
      +      "carb_g",
      +      "fat_g"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "days": {
      +      "items": {
      +        "properties": {
      +          "caffeine_mg": {
      +            "type": "number"
      +          },
      +          "entry_count": {
      +            "type": "integer"
      +          },
      +          "fluid_ml": {
      +            "type": "number"
      +          },
      +          "local_date": {
      +            "description": "A local date, YYYY-MM-DD.",
      +            "type": "string"
      +          },
      +          "totals": {
      +            "description": "Calories and macros. Estimates, not lab-measured; not for insulin dosing.",
      +            "properties": {
      +              "carb_g": {
      +                "type": "number"
      +              },
      +              "fat_g": {
      +                "type": "number"
      +              },
      +              "kcal": {
      +                "type": "number"
      +              },
      +              "protein_g": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "kcal",
      +              "protein_g",
      +              "carb_g",
      +              "fat_g"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "local_date",
      +          "entry_count",
      +          "totals"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "end": {
      +      "description": "A local date, YYYY-MM-DD.",
      +      "type": "string"
      +    },
      +    "entries": {
      +      "items": {
      +        "description": "One diary entry: a meal with its foods.",
      +        "properties": {
      +          "at": {
      +            "description": "ISO-8601 UTC instant the food was eaten.",
      +            "type": "string"
      +          },
      +          "created_at": {
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "items": {
      +            "items": {
      +              "properties": {
      +                "caffeine_mg": {
      +                  "type": "number"
      +                },
      +                "fluid_ml": {
      +                  "type": "number"
      +                },
      +                "macros": {
      +                  "description": "Calories and macros. Estimates, not lab-measured; not for insulin dosing.",
      +                  "properties": {
      +                    "carb_g": {
      +                      "type": "number"
      +                    },
      +                    "fat_g": {
      +                      "type": "number"
      +                    },
      +                    "kcal": {
      +                      "type": "number"
      +                    },
      +                    "protein_g": {
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [],
      +                  "type": "object"
      +                },
      +                "name": {
      +                  "type": "string"
      +                },
      +                "quantity": {
      +                  "type": "string"
      +                },
      +                "source": {
      +                  "description": "Where the macros came from (e.g. usda, off, client).",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "name"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "local_date": {
      +            "description": "A local date, YYYY-MM-DD.",
      +            "type": "string"
      +          },
      +          "meal": {
      +            "description": "breakfast, lunch, dinner or snack, when set.",
      +            "type": "string"
      +          },
      +          "note": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "at",
      +          "local_date",
      +          "items"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "start": {
      +      "description": "A local date, YYYY-MM-DD.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "start",
      +    "end",
      +    "days",
      +    "entries"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, non-destructive, closed-world), and the description adds meaningful context beyond them: the data provenance (USDA FoodData Central, Open Food Facts, user or AI estimates) and an explicit warning that values are not suitable for insulin dosing or glucose prediction. That is genuine domain-specific behavioral disclosure, not restatement of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool returns before the disclaimer, which is the right order for an agent. The second sentence is long and somewhat repetitive in its list of prohibited uses, but each clause carries distinct safety meaning rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained, and the description still summarizes them usefully while adding the estimate caveat. For a two-parameter read tool this is effectively complete; only the missing routing guidance to get_day is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both start/end are documented as inclusive YYYY-MM-DD, so the baseline is 3. The description adds no format or boundary semantics of its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read') and resource ('the user's food diary') plus the scope and return shape (per-day totals, each entry with its `id`). This clearly distinguishes it from the single-day sibling get_day, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'across a date range' and the required start/end parameters, but the description never says when to prefer this over get_day or how it relates to the other diary tools. No exclusions or alternatives are offered, so the agent must infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.