Skip to main content
Glama

stack_analyze

Read-only

Check a list of dietary supplements for a person: per-nutrient daily totals against NIH upper limits (UL) and RDA/AI, which products overlap, what each UL protects against, and single-product changes that would bring an above-UL nutrient back under it. Products can be given as names ("Centrum Silver Women 50+"), barcodes, DSLD IDs, or custom ingredient lists; optional candidates are evaluated as additions. Pass the person's medications and conditions (smoker, kidney_disease, hemochromatosis, lab_test_soon, cancer_treatment) to check them against the interactions in the NIH fact sheets. Returns agent_summary (plain sentences to relay), resolutions, suggestions, interactions, nutrient_totals and data_gaps. Label data only; food is included only with diet "typical".

Input Schema

NameRequiredDescriptionDefault
ageNoAge in years. For infants use a fraction: 0.25 = 3 months; 0-5 and 6-11 month values apply under 1.
sexNo
dietNo"typical" adds the US average intake from food and drinks for this age and sex (NHANES) to estimate total intake; see with_typical_dietnone
langNo"es" writes agent_summary in Spanish (the English text is kept in agent_summary_en); other fields stay in Englishen
foodsNoOptional, up to 30: what the person eats in a day, e.g. [{"query":"spinach cooked","amount":1,"unit":"cup"},{"query":"whole milk","grams":488}]. Added to the supplement totals in nutrient_totals[].with_foods (USDA SR28, offline). Use instead of diet "typical".
detailNo"summary" returns only what an agent needs to answer (agent_summary, flagged nutrients, suggestions, resolutions, candidate verdicts), about 1-3 KB instead of 20-40 KBfull
productsYes1-15 products. Each is one of: {"dsld_id"}, {"query"} (a product name, resolved server-side), {"upc"} (barcode), or a custom product {"name","ingredients"}. Add "servings_per_day" to any of them.
candidatesNoOptional, up to 5: products the user is considering adding. Each is evaluated as an addition to the stack in candidate_results[]; they are not included in nutrient_totals.
conditionsNoConditions that change how NIH reads a dose: smoker (current or former, or asbestos exposure: beta-carotene), kidney_disease (potassium, magnesium, phosphorus), hemochromatosis (iron, vitamin C), lab_test_soon (biotin interferes with lab tests), cancer_treatment (antioxidant doses)
life_stageNoPregnancy or lactation (breastfeeding) reference values; requires sex "female" and age 14-50
medicationsNoMedications the person takes, as generic or brand names ("warfarin", "Synthroid", "metformin 500 mg"). Checked against the medication interactions listed in the NIH ODS fact sheets; not exhaustive. Never logged.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and openWorldHint=true, so the safety profile is covered; the description adds genuine context on data provenance and behavior ('label data only; food is included only with diet typical') and enumerates the returned fields. It does not cover latency, resolution failure behavior, or the non-exhaustiveness of interaction checking (that caveat only appears in the schema), keeping it out of 5 territory.

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?

The core capability is front-loaded in the first sentence, and the enumerated outputs and return fields are each load-bearing given there is no output schema. It is dense rather than padded, though the return-field list reads somewhat as an inventory and the total length is near the upper bound for a single tool description.

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?

For a complex 11-parameter tool with no output schema, the description compensates well by naming agent_summary, resolutions, suggestions, interactions, nutrient_totals and data_gaps, plus the summary-vs-full size trade-off. Edge-case behavior (unresolved products, empty results) and interaction-checking limits remain undocumented here, so it is strong but not exhaustive.

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?

Schema coverage is 91%, so the baseline would be 3, and the description clears that bar by adding meaning the schema does not: candidate products are evaluated as additions and excluded from nutrient_totals, and conditions 'change how NIH reads a dose'. It also summarizes the four accepted product forms. It could have clarified servings defaults or the life_stage constraints, but the added semantics are substantive.

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?

The description names a specific verb and resource (checking a supplement stack for a person) and enumerates the concrete outputs: per-nutrient totals vs NIH UL/RDA-AI, product overlaps, UL rationale, and single-product fixes. That is well beyond a tautology. It stops short of a 5 because it never distinguishes itself from the sibling interactions_check, which also covers medication interactions, leaving a real ambiguity unresolved.

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?

It gives clear conditional guidance: pass medications and conditions to check interactions, use candidate products for 'considering adding', and use diet "typical" versus explicit foods. What is missing is exclusionary routing — no statement of when to call interactions_check or nutrients_reference instead, so sibling selection is left to inference.

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.