Skip to main content
Glama

How the household eats

get_profile
Read-onlyIdempotent

Read what is saved about how the user eats: how many are eating, allergens, dislikes, likes, diets, cuisines, the usual weeknight time budget, units, daily calorie or macro goals, and the people in the household, each with a role such as kid or adult and what applies to them alone. Household allergens and dislikes are excluded from every search; a person's apply whenever they are eating, which is everyone unless a search passes who. Diets stay on and the time budget is the default time limit, so you rarely need to pass them yourself; read likes and cuisines to steer suggestions. Call it before planning a week and when the user asks what you know about them. set=false means nothing is saved yet: offer the set_up_my_kitchen questions once.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
setYesfalse when nothing has been saved yet
noteNo
dietsYes
likesYes
unitsNo
peopleYes
cuisinesYes
dislikesYes
allergensYes
householdNopresent when the user shares a kitchen with other ask.recipes accounts; their allergens and dislikes apply to searches for everyone
fat_g_per_dayNo
household_sizeNo
carbs_g_per_dayNo
calories_per_dayNo
protein_g_per_dayNo
time_budget_minutesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / household
      Added value: +{
      +  "description": "present when the user shares a kitchen with other ask.recipes accounts; their allergens and dislikes apply to searches for everyone",
      +  "properties": {
      +    "in_household": {
      +      "description": "false when this account shares a kitchen with nobody yet",
      +      "type": "boolean"
      +    },
      +    "members": {
      +      "items": {
      +        "properties": {
      +          "creator": {
      +            "description": "the member who created the household; the only one who can remove others",
      +            "type": "boolean"
      +          },
      +          "joined_on": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "you": {
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "joined_on"
      +        ],
      +        "type": "object"
      +      },
      +      "type": [
      +        "null",
      +        "array"
      +      ]
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "note": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "in_household",
      +    "members"
      +  ],
      +  "type": [
      +    "null",
      +    "object"
      +  ]
      +}
  2. Changed1 schema field changed
    • addedOutput schema / properties / note
      Added value: +{
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • addedOutput schema / properties / people
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "allergens": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "null",
      +          "array"
      +        ]
      +      },
      +      "dislikes": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "null",
      +          "array"
      +        ]
      +      },
      +      "likes": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "null",
      +          "array"
      +        ]
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "role": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "role",
      +      "allergens",
      +      "dislikes",
      +      "likes"
      +    ],
      +    "type": "object"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "set",
      -  "diets",
      -  "allergens",
      -  "dislikes",
      -  "likes",
      -  "cuisines"
      -]New value: +[
      +  "set",
      +  "diets",
      +  "allergens",
      +  "dislikes",
      +  "likes",
      +  "cuisines",
      +  "people"
      +]
  4. Added

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), yet the description adds real behavioral semantics: household allergens and dislikes are excluded from every search, a person's constraints apply whenever they eat unless a search passes who, diets stay on, and the time budget is the default time limit. The set=false branch also pre-empts an empty-result misread.

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?

Content is front-loaded with the field list and every sentence carries operational content, but the middle argument about allergens/diets/time budget is a dense run-on that could be broken into clearer sentences without losing meaning.

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

Completeness5/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 needn't be detailed, yet the description still flags the one return value an agent must act on (set=false). Usage triggers, downstream constraints for searches, and default behaviors are all covered for a zero-parameter read tool.

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

Parameters4/5

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

The tool takes no parameters, so the baseline is 4 and there is nothing for the description to disambiguate. It does clarify the semantics of the 'who' filter on the related search tools and of set=false in the response, which is adjacent useful context rather than parameter documentation.

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?

Opens with a specific verb and resource ('Read what is saved about how the user eats') and enumerates the concrete fields returned: household size, allergens, dislikes, likes, diets, cuisines, time budget, units, goals, and per-person roles. That enumeration distinguishes it from get_household and update_profile in spirit, though no sibling is named explicitly.

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

Usage Guidelines4/5

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

Gives concrete triggers: 'Call it before planning a week and when the user asks what you know about them,' plus a branch on set=false to offer set_up_my_kitchen questions. It also tells the agent it rarely needs to pass diets or time budget itself. There is no explicit when-not or named alternative tool, so it falls short of a 5.

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.