Supplement Check
Server Details
Supplement labels, doses against official upper limits, and a whole-stack check for overlaps.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- GoodTurnStudio/goodturn-mcp
- GitHub Stars
- 0
- Server Listing
- goodturn-mcp
TDQS
Scored across 4 tools
Each tool has a clearly distinct scope: check_dose handles a single amount, check_stack aggregates multiple items, get_nutrient provides reference information, and get_supplement retrieves product labels. The boundary between single-amount and multi-item checking is explicitly described, so misselection is unlikely.
All tool names follow a consistent snake_case verb_noun pattern: check_dose, check_stack, get_nutrient, and get_supplement. There are no mixed conventions or vague verbs.
Four tools is well-scoped for a supplement-checking server. Each tool earns its place by covering a distinct workflow without redundancy, and the set avoids both excessive fragmentation and an overly monolithic interface.
The core supplement-checking workflows are covered: single-dose checks, stack totals, nutrient reference, and product label lookup including halal status. Minor gaps remain, such as explicit drug-supplement interaction checking and guidance for special populations like pregnancy or children, though the server notes it is adult-focused.
Available Tools
4 toolscheck_doseCompare an amount of a vitamin or mineral with the adult RDA and upper limitARead-onlyIdempotentInspect
Compare an amount of a vitamin or mineral with the adult RDA and upper limit. Use for "is 5000 IU of vitamin D too much?", "is 500 mg of magnesium glycinate safe?", "is 10 mg of melatonin a lot?" or "is 300 mg of caffeine too much?". Handles IU, mcg, mg and g, including IU for vitamins A, D and E and DFE for folate. For vitamins and minerals, status is above, at, within or no_upper_limit; when the name is a compound (magnesium glycinate, ferrous sulfate, zinc gluconate) the compound field also gives how much of the mineral the compound holds, as US and UK labels list the mineral itself; when only one reading is over the limit, the say line gives both and compared_with.depends_on_label is true. Fish oil, cod liver oil and krill oil amounts are the oil weight, so EPA plus DHA is estimated (amount.epa_dha_estimate_mg). With country=GB the limit is the NHS guidance (compared_with.reference is UK (NHS), with us_upper_limit alongside). For other supplements the answer compares with an official ceiling where one exists (caffeine) or the amounts studies have used, with status above, at, within, above_studied_range, within_studied_range, below_studied_range or no_set_amount, plus cautions. Adult values only, with a note
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | The whole question instead, for example 5000 IU vitamin D. | |
| unit | No | IU, mcg, mg, g, mcg DFE, or billion (CFU) for probiotics. Defaults to IU for vitamin D amounts of 200 or more, otherwise the usual unit. | |
| amount | No | The amount taken per day, in the unit given. | |
| country | No | Two-letter country code. GB compares with NHS guidance and gives UK amounts. Default from the request. | |
| nutrient | No | The vitamin, mineral or supplement, for example vitamin D, magnesium or melatonin. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it safe, idempotent and read-only, yet the description adds substantial behavior: the status enum values for both nutrients and other supplements, compound handling, EPA+DHA estimation for fish oils, and the country=GB switching to NHS guidance. This is well beyond what annotations or schema convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and examples are front-loaded, which is good, but the body is a dense run-on with sentence fragments ('For other supplements the answer compares...') and a truncated final clause ('with a note'). Every sentence is informative, but the structure makes it hard to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return-value burden and does so: status values, compared_with.reference/depends_on_label, amount.epa_dha_estimate_mg and the compound field are all explained. For a zero-required-parameter tool with optional inputs, nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so unit/amount/country/nutrient are already documented. The description restates unit handling (IU, mcg, mg, g, DFE) but adds little syntax or defaulting detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: comparing an intake amount against adult RDA and upper limit, with four concrete example questions that make the scope unmistakable. It is clearly distinct from the sibling lookups (get_nutrient, get_supplement) because it returns a safety verdict rather than a nutrient fact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The example questions ('is 5000 IU of vitamin D too much?', 'is 300 mg of caffeine too much?') give strong implicit guidance on when to reach for this tool. However, there is no explicit when-not-to-use statement or routing to the sibling tools for plain nutrient lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_stackAdd up everything someone takes and check the daily totalsARead-onlyIdempotentInspect
Add up everything someone takes and check the daily totals against adult upper limits. Use for "I take Centrum, vitamin D 5000 IU and zinc 50 mg, is that too much?" or "is it OK to take OLLY Sleep with extra melatonin?". Pass up to 6 items separated by semicolons: product names, barcodes, or amounts like vitamin D 5000 IU. Products are counted at the most each label suggests per day. Returns totals (each vitamin and mineral added up, with the items it comes from, compared with the adult upper limit, or NHS guidance with country=GB), other_totals (caffeine, melatonin and similar added up, or marked when a label hides the amount), items (what each was matched to) and not_found. Fish oil amounts count the EPA and DHA they typically hold.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | What the user takes, separated by semicolons, for example Centrum Silver Men; vitamin D 5000 IU; zinc 50 mg. | |
| country | No | Two-letter country code. GB compares totals with NHS guidance. Default from the request. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantive behavior beyond them: a 6-item cap, products counted at the most each label suggests per day, fish-oil amounts counting EPA+DHA, and how hidden amounts are flagged. This is rich context an agent could not infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose followed by examples and return shape; every sentence carries information. It runs long, but no sentence is filler given the absence of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description proactively describes the return shape (totals with sources and UL comparison, other_totals, items, not_found), and the input constraints are fully covered. An agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds value over the schema: the 'up to 6 items' limit, semicolon separation, and the country=GB NHS-guidance behavior beyond the schema's terse example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-and-resource: 'Add up everything someone takes and check the daily totals against adult upper limits.' The multi-item 'stack' scope implicitly separates it from check_dose (single dose) and get_nutrient, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use examples ('I take Centrum, vitamin D 5000 IU and zinc 50 mg, is that too much?'), which anchors the trigger condition well. It does not name an alternative or state when NOT to use it (e.g., for a single item, use check_dose).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nutrientWhat a vitamin, mineral or supplement does and how much adults needARead-onlyIdempotentInspect
What a vitamin, mineral or popular supplement does, how much adults need or studies used, limits, cautions and food sources. Use for "what does magnesium glycinate do?", "what is vitamin K for?", "how much vitamin D do I need?", "is ashwagandha safe?" or "what is creatine?". Covers vitamins A, B1, B2, B5, B6, B12, C, D, E and K, niacin, folate, biotin, choline, calcium, iron, zinc, magnesium, potassium, selenium, iodine, copper, chromium, manganese, molybdenum, phosphorus, boron and omega-3, and explains common forms. Also covers creatine, melatonin, caffeine, ashwagandha, turmeric, CoQ10, collagen, protein powder, probiotics, psyllium, glucosamine, St John's wort, green tea extract, berberine, L-theanine and elderberry: for these it returns supplement, what_studies_looked_at, studied_amounts, ceiling, cautions and source instead of rda and upper_limit. Links the NIH fact sheet. With country=GB the answer gives the UK amounts and NHS supplement guidance, also in the uk field.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | A vitamin, mineral, form or supplement, for example magnesium glycinate or ashwagandha. | |
| country | No | US, GB, IE, CA, AU. GB gives UK (NHS) amounts; also picks the shop link site. Default from the request. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety profile (readOnly, idempotent, closed-world), so the description adds substantial non-redundant context: supplements return different fields (supplement, what_studies_looked_at, studied_amounts, ceiling, cautions, source) instead of rda/upper_limit, the NIH fact sheet is linked, and country=GB changes both the amounts shown and the shop link site. That is exactly the behavioral detail the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and example queries before the long enumerations, so the key information is reachable immediately. The extensive nutrient and supplement lists are somewhat repetitive — "vitamin, mineral" already implies the enumerated vitamins — but they plausibly earn their place for matching free-text name inputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by describing the returned fields, the conditional nutrient-vs-supplement shape, and country-specific behavior; annotations cover safety. The only notable omission is any statement of how this differs from the sibling get_supplement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes beyond it by explaining that country=GB yields UK/NHS amounts surfaced in a uk field and also selects the shop link site. It also confirms name accepts both straight nutrients and common forms (e.g., magnesium glycinate).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource precisely: it returns what a vitamin, mineral or supplement does, adult requirements, limits, cautions and food sources. An agent can tell what it retrieves without opening the schema. It does not, however, differentiate itself from the sibling get_supplement, which looks like it overlaps heavily with the supplement half of this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is anchored by concrete trigger phrasings ("what does magnesium glycinate do?", "how much vitamin D do I need?", "is ashwagandha safe?") that make the intended question type obvious. It also clarifies the nutrient-vs-supplement split in outputs. It stops short of naming when to choose check_dose or get_supplement instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_supplementA supplement's label, dose check and halal statusARead-onlyIdempotentInspect
A supplement's label: amounts per serving, upper limit check, halal status and a buy link. Use for "what's in Nature Made vitamin D3?", "is Centrum halal?", "how much melatonin is in OLLY Sleep?" or "is this supplement halal?" with a barcode. Give q (brand and product name) or barcode. Returns per-serving amounts, dose_check (each vitamin and mineral compared with the adult upper limit at the most the label suggests per day, with per_day_base amounts), other_checks (melatonin, caffeine, creatine, ashwagandha and similar, including when a blend hides the amount), halal (likely_halal, doubtful, not_halal or depends_on_school, with the ingredients that need a confirmed source), alternatives (other sizes or versions), an Amazon link, and halal_options (links to halal-certified or gelatine-free versions) when the halal answer is not likely_halal. For a general name like "creatine monohydrate" it reads one common label and says so. With country=GB, dose_check uses the NHS guidance where it sets one (upper_limit says NHS guidance). Salt forms such as magnesium glycinate are counted as the mineral they hold (estimated: true), and omega-3 is read from EPA and DHA, total omega-3, or estimated from the fish oil weight.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Brand and product name, for example Nature Made vitamin D3 2000 IU. | |
| id | No | A label id from the NIH database, for example from alternatives. | |
| barcode | No | UPC or EAN barcode digits (8 to 14). | |
| country | No | US, GB, IE, CA, AU. GB uses NHS guidance for the dose checks; also picks the buy link site. Default from the request. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, yet the description adds substantial undisclosed-by-schema traits: fallback behavior for generic names ('reads one common label and says so'), country-dependent NHS guidance, and estimation flags (estimated: true for salt forms, omega-3 derived from EPA/DHA). These caveats materially affect how an agent should interpret results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence front-loads the resource and its outputs, and the use-case examples follow logically. It is dense and packs return fields into two very long sentences, but with no output schema most of that detail earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns, and it does so thoroughly (dose_check, other_checks, halal, alternatives, halal_options, Amazon link) while covering edge cases like blends and generic names. Nothing an agent needs to call and interpret this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented (q, id, barcode, country including GB/NHS behavior). The description largely restates these ('Give q (brand and product name) or barcode') and adds only marginal context, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: a supplement's label with per-serving amounts, dose check, halal status and buy link. An agent can tell what it returns without opening the schema. However, it never names or contrasts with the overlapping siblings (check_dose, get_nutrient, check_stack), so it misses the sibling-differentiation bar for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Concrete example questions ('is Centrum halal?', 'how much melatonin is in OLLY Sleep?') give clear context for when to reach for this tool, and it states the input forms (q or barcode). It lacks any when-not guidance or routing to the sibling dose/nutrient tools, which matters given the overlap with check_dose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
check_dose - First observed
check_stack - First observed
get_nutrient - First observed
get_supplement
Related MCP Connectors
Supplement safety for AI agents. 1,500+ rules, NIH+FDA data, quality grading A-D.
Supplement research, biomarker effects, drug interactions, and brand quality data
Evidence-ranked supplement data: search, compare, price history, goal recs. No API key.
Evidence-graded analyses of 511 supplements: claims, doses, safety, PubMed references (en/pt-BR)
Related MCP Servers
- AlicenseAqualityCmaintenanceEvidence-based supplement recommendation MCP server covering 17 supplements and 40+ conditions with medication interaction checking and form quality classification.543 npmMIT
- AlicenseNot gradedqualityCmaintenanceEvidence-based supplement intelligence in your terminal, exposed as an MCP server for AI agents to research, compare, stack, and manage supplements.42 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables searching and retrieving NIH Dietary Supplement fact sheets, NCCIH herb summaries, and real supplement product labels from the DSLD, including uses, safety, and medication interaction information.237 npmMIT
- AlicenseAqualityNot gradedmaintenanceSupplement safety MCP server for AI agents. FDA FAERS signals, CYP450 pathways, 584 compound aliases. Works with Claude Desktop, LangChain, CrewAI.51-
Glama MCP Gateway
Add one secure layer between your agents and this server.