Skip to main content
Glama

Server Details

Supplement research, product and brand TrustScores, and your SuppCo stack and Buying Club cart.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 30 tools

Disambiguation4/5

Most tools have distinct resource+action purposes, and the descriptions actively cross-reference each other (e.g. add_to_cart vs add_to_stack, get_product_info vs get_product_trust_score, get_nutrient_plan vs get_nutrient_totals) which sharply reduces confusion. Remaining ambiguity: find_products ('search, browsing, and recommendations') overlaps significantly with find_buying_club_products, and the legacy manage_stack duplicates add/remove/swap functionality even though it is labeled deprecated.

Naming Consistency5/5

Every tool follows a strict suppco_verb_noun snake_case pattern (add_to_cart, get_my_stack, update_product_schedule, search_protocols, etc.) with no camelCase or verb-style deviations. The prefix and structure are uniform across all 30 tools.

Tool Count3/5

30 tools is heavy for the visible scope, and there is some redundancy: a deprecated manage_stack, an overlapping find_products/find_buying_club_products pair, and several closely related get_* getters. The breadth (commerce, stack, nutrition, research, protocols, profile) partially justifies the count, but it is borderline-too-many.

Completeness4/5

Coverage is strong: full cart CRUD plus checkout, full stack lifecycle (add/remove/swap/schedule/score), discovery and trust-score lookups, and nutrient/research/protocol surfaces. Minor gaps such as order history or past-purchase retrieval exist, but core workflows have no dead ends.

Available Tools

30 tools
suppco_add_to_cartAdd to cartAInspect

Add a Buying Club product to the signed-in user's cart (the same cart as the SuppCo app). Use a product ID or slug from suppco_find_buying_club_products or suppco_compare_to_buying_club; only Buying Club products can be added. Set subscription to true for a recurring subscription at the product's recommended shipping interval. Returns the updated cart. This adds to any quantity already in the cart, so calling it again adds more units; to set an exact quantity, use suppco_update_cart_item.

NameRequiredDescriptionDefault
quantityNoNumber of units to add (default 1).
subscriptionNotrue to subscribe (recurring delivery), false for a one-time purchase (default false).
product_id_or_slugYesSuppCo product ID (UUID) or slug of a Buying Club product.

Output Schema

NameRequiredDescription
cartYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare non-idempotent, non-readonly, non-destructive behavior; the description adds concrete meaning by explaining the accumulation semantics ('calling it again adds more units') and the subscription behavior at the recommended shipping interval. It also notes the cart is the same as the SuppCo app, but omits any auth/permission requirements.

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

Conciseness5/5

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

Front-loads the action and target, then layers in input sourcing, the subscription flag, return value, and the accumulation caveat with its alternative. Every sentence carries information and none is redundant.

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 the description need not detail the returned cart; it still mentions 'Returns the updated cart.' Combined with full parameter coverage and sibling routing, nothing an agent needs to call this correctly is missing.

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 100%, so the baseline is 3; the description earns extra by clarifying that subscription routes to the product's recommended shipping interval and that product_id_or_slug must resolve to a Buying Club product. That adds meaning beyond the schema's terse field notes.

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

Purpose5/5

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

Specific verb ('Add') plus resource ('a Buying Club product to the signed-in user's cart') with explicit scope ('only Buying Club products can be added'). It clearly distinguishes itself from sibling cart tools and names the discovery tools that provide valid inputs.

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

Usage Guidelines5/5

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

States where to get inputs (suppco_find_buying_club_products, suppco_compare_to_buying_club) and explicitly names the alternative for a different intent ('to set an exact quantity, use suppco_update_cart_item'). When-to-use and when-to-use-something-else are both covered.

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

suppco_add_to_stackAdd to stackAInspect

Use this when the user wants to start tracking a product in their SuppCo stack. Adds the product to the signed-in user's stack. id is a SuppCo product UUID or slug from a search or product result. This does not buy anything; to buy a Buying Club product, use suppco_add_to_cart.

NameRequiredDescriptionDefault
idYesSuppCo Product ID

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-idempotent, non-destructive, closed-world behavior. The description adds genuinely new context: the target is the signed-in user's stack (implying auth scope), the operation has no purchasing side effect, and the id originates from a search/product result. It does not warn about duplicate entries despite idempotentHint=false, which is the one remaining gap.

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

Conciseness5/5

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

Four tight clauses front-loaded with the usage trigger, then the action, then parameter sourcing, then the boundary against the cart tool. No sentence is redundant.

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 single-parameter, no-output-schema write tool this is nearly complete: intent, auth scope, parameter sourcing, and the cart boundary are all covered. Only duplicate/idempotency behavior and the resulting state change are left unstated.

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 100% but the schema text is terse ('SuppCo Product ID'). The description adds real value by specifying the accepted formats (UUID or slug) and where to source the value (a search or product result), which the schema does not say.

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

Purpose5/5

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

States a specific verb+resource ('Adds the product to the ... user's stack') and immediately separates itself from the nearest sibling by clarifying it is tracking, not purchasing. An agent can distinguish it from suppco_add_to_cart, suppco_remove_from_stack, and suppco_manage_stack without opening a schema.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use trigger ('when the user wants to start tracking a product') and an explicit when-not with a named alternative ('this does not buy anything; to buy a Buying Club product, use suppco_add_to_cart'). The routing decision is fully resolved in the text.

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

suppco_compare_product_to_alternativesCompare product to alternativesA
Read-onlyIdempotent
Inspect

Compare a product against alternatives in its category. Returns a detailed view of the anchor product (trust score, ingredients, excipients) alongside filtered alternatives. Use when user asks to compare, find alternatives, or asks "is there something better?"

NameRequiredDescriptionDefault
formNoProduct forms. Valid: capsule, tablet, softgel, gummy, powder, liquid, other
priorityNoHow to rank alternatives. Valid: best_value, most_trusted, most_popular, most_expensive. Omit (or leave blank) to apply the user's profile buying preference automatically; pass a value to override.
servingsNoComma-separated serving counts (e.g., '60,90')
max_priceNoMaximum price in dollars
certificationsNoCertifications filter, comma-separated. Valid: gluten_free, non_gmo, vegan_action, usda_organic, nsf_sport, usp_verified, informed_sport, informed_choice, tested_by_suppco. Omit (or leave blank) to apply the user's profile dietary preferences (vegan, gluten-free) automatically; pass an explicit list to override.
product_id_or_slugYesProduct ID (UUID), slug, or product name of the product to compare. Prefer slugs or UUIDs when available — they give exact matches.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered; the description adds the meaningful behavioral detail that the response pairs the anchor product's trust score, ingredients and excipients with a filtered set of alternatives. It does not state how many alternatives are returned or whether results are capped/paginated.

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?

Three tight sentences, front-loaded with the action, then the return shape, then the usage trigger – no filler. The middle sentence's 'filtered alternatives' is slightly vague about what the filter is, but nothing is wasted.

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?

With no output schema, the description does take on describing the return payload and does so at a useful level. Given six parameters with one required and rich schema-level documentation, the only residual gap is result cardinality/ordering behavior for the alternatives list.

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%, so all six parameters, including the enum and the priority/certifications profile-default behavior, are already documented in the schema. The description adds no parameter-level meaning beyond that, which is the expected baseline when the schema does the heavy lifting.

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+resource ('compare a product against alternatives in its category') and adds the scope of what comes back (anchor product trust score, ingredients, excipients). It is clearly separable from suppco_get_product_info and suppco_find_products, but it never addresses the nearby sibling suppco_compare_to_buying_club, which an agent could plausibly confuse it with.

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 triggering intents: 'compare', 'find alternatives', or 'is there something better?' – enough for an agent to route on user phrasing. It stops short of exclusions or naming an alternative tool when the user wants a plain product lookup or a buying-club comparison.

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

suppco_compare_to_buying_clubCompare to Buying ClubA
Read-onlyIdempotent
Inspect

Use this when the user asks whether the SuppCo Buying Club carries an alternative to a specific product, usually one they already take. Returns that product plus Buying Club products in the same category with TrustScore, price, member price and cashback.

NameRequiredDescriptionDefault
formNoComma-separated product forms. Valid: capsule, tablet, softgel, gummy, powder, liquid, other.
priorityNoHow to rank alternatives. Valid: best_value, most_trusted, most_popular, most_expensive. Defaults to most_trusted.
servingsNoComma-separated serving counts (e.g., '30,60,90').
max_priceNoMaximum price in dollars.
certificationsNoRequired certifications, comma-separated. Valid: gluten_free, non_gmo, vegan_action, usda_organic, nsf_sport, usp_verified, informed_sport, informed_choice, tested_by_suppco.
product_id_or_slugYesThe product to compare against the Buying Club — usually one the user already takes (e.g. from suppco_get_my_stack). A UUID, slug, or product name.

TDQS

A4/5.0
Behavior4/5

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

The annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world), so the description only needs additive context — and it delivers that by describing the return payload (source product plus same-category Buying Club items with TrustScore, price, member price, cashback), which matters since there is no output schema.

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

Conciseness5/5

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

Two sentences, zero waste: the usage trigger is front-loaded and the return content follows. Nothing is padded or repeated from structured fields.

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 read-only comparison tool with rich annotations and no output schema, the description supplies the trigger plus the return shape an agent needs. Minor gaps (no pagination/limit behavior, no explicit sibling routing) keep it from full marks.

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%, so all six parameters are self-documented and the baseline is 3. The description adds no syntax or filtering semantics beyond hinting product_id_or_slug is usually an existing user product.

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 (compare) and resource (Buying Club) scoped to 'a specific product.' It is clear, but it never names or distinguishes itself from the close sibling suppco_compare_product_to_alternatives, so an agent cannot fully disambiguate the two from the description alone.

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?

'Use this when the user asks whether the SuppCo Buying Club carries an alternative to a specific product' gives explicit trigger conditions and even notes the typical input ('usually one they already take'). It stops short of exclusions or naming the alternative tool (compare_product_to_alternatives) that handles non-Buying-Club comparisons.

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

suppco_find_brandsFind brandsA
Read-onlyIdempotent
Inspect

Find and filter brands. Use this to search for brands by name or to list brands matching specific criteria (e.g., brands that have been TESTED by SuppCo).

NameRequiredDescriptionDefault
nameNoSearch for a brand by name (e.g., "Thorne", "Garden of Life"). Leave blank to list brands matching other filters.
testedNoWhen true, only return brands that have participated in TESTED by SuppCo (independent lab testing for identity, potency, and heavy metals)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered elsewhere and the bar is lower. The description's only behavioral contribution is framing itself as a search/list tool with an optional filter, which adds little beyond what the annotations and schema already convey; it says nothing about result count limits, pagination, or how TESTED status affects ordering.

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?

Two short sentences, front-loaded with the action and then the usage. The opening 'Find and filter brands' is partially restated by the second sentence, which is minor redundancy rather than waste.

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 simple, zero-required-parameter read-only search tool with full schema coverage, no output schema needed, and strong annotations, the description covers what the agent needs to select and call it. Only the missing routing guidance against sibling brand tools keeps it short of complete.

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%, so both parameters (name, tested) are already documented at a level the description does not exceed. The description hints at the naming and filtering use of both parameters but adds no format, matching, or partial-name semantics beyond the schema.

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 states a specific verb (find/filter) and resource (brands), and the object name plus title reinforce it. It distinguishes itself from suppco_find_products by staying strictly on brands, though it never explicitly contrasts with suppco_get_brand_trust_score, which is the nearest-looking sibling.

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?

It gives two usage modes (search by name, list by criteria) and an example filter, which implies when to call it. However, it names no alternatives and sets no exclusions, so the agent must infer whether to use this versus find_products or get_brand_trust_score for brand discovery.

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

suppco_find_buying_club_productsFind Buying Club productsA
Read-onlyIdempotent
Inspect

Open-ended search/browse of the SuppCo buying club catalog: free-text lookups ("Thorne Magnesium") or filtered browsing by category, trust, price, form, certifications, and brand. Every result is a buying-club product with member pricing and earnings credit (cashback). Use this when the user is exploring a category with no specific current product in play. For finding an alternative to a product the user already takes, use suppco_compare_to_buying_club instead (it returns their current product as the anchor).

NameRequiredDescriptionDefault
formNoComma-separated product forms. Valid: capsule, tablet, softgel, gummy, powder, liquid, other.
brandNoRestrict to a specific brand.
limitNoMax products to return (default: 5, max: 24).
queryNoFree-text search for a specific product by name (e.g., "Thorne Creatine"). Use alone, without filters. For filtered searches use product_category_name instead.
offsetNoNumber of products to skip for pagination (default: 0).
testedNoWhen true, only products TESTED by SuppCo.
priorityNoHow to rank results. Valid: best_value, most_trusted, most_popular, most_expensive. Defaults to most_trusted.
servingsNoComma-separated serving counts (e.g., '30,60,90').
max_priceNoMaximum price in dollars (e.g., 50.00).
certificationsNoRequired certifications, comma-separated. Valid: gluten_free, non_gmo, vegan_action, usda_organic, nsf_sport, usp_verified, informed_sport, informed_choice, tested_by_suppco.
product_category_nameNoThe supplement category to browse (e.g., 'Vitamin D', 'Magnesium', 'Creatine'). Required for any filtered search. When the user names a supplement like 'magnesium', that IS the category.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds meaningful domain behavior: results carry member pricing and earnings credit (cashback), which is not in any structured field. It stops short of describing pagination behavior or result ordering mechanics beyond the priority parameter.

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?

Three sentences, front-loaded with the core capability, then usage context, then the routing rule. Minor redundancy in the cashback/member-pricing clause, but no sentence is wasted.

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 an 11-parameter search tool with no output schema, the description covers purpose, both search modes, and the sibling routing decision, which is what an agent needs to pick the right tool. It omits any mention of paging through results or result-count limits, though those are documented in the schema.

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%, so all 11 parameters are already documented with examples, valid values and defaults. The description only restates the filter families (category, trust, price, form, certifications, brand) without adding syntax or edge-case semantics 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.

Purpose5/5

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

The description states a concrete verb ('search/browse') and resource ('SuppCo buying club catalog') and describes both operating modes (free-text query vs. filtered browsing). It explicitly distinguishes itself from the sibling suppco_compare_to_buying_club, so an agent can route correctly without opening the schemas.

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

Usage Guidelines5/5

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

It states the positive condition ('when the user is exploring a category with no specific current product in play') and names the alternative plus why it wins ('suppco_compare_to_buying_club returns their current product as the anchor'). That is explicit when-to-use and when-not-to-use guidance.

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

suppco_find_productsFind productsB
Read-onlyIdempotent
Inspect

Find products based on user query - handles search, browsing, and recommendations. Use this whenever the user wants to discover or find products.

NameRequiredDescriptionDefault
formNoComma-separated list of product forms. Valid forms are: capsule, tablet, softgel, gummy, powder, liquid, other (e.g., 'capsule,tablet')
brandNoThe brand a user prefers
limitNoMaximum number of products to return (default: 5, max: 50)
queryNoFree text search for a specific product by name (e.g., "Thorne Creatine", "AG1 Greens"). Only use this when searching for a specific brand + product name with no filters. Do NOT use query together with other params — use product_category_name instead when filters like priority, brand, certifications, form, max_price, or servings are needed.
offsetNoNumber of products to skip for pagination (default: 0)
testedNoWhen true, only return products that have been TESTED by SuppCo (identity, potency, and/or heavy metals testing performed by SuppCo's lab)
priorityNoHow to rank results. Valid: best_value, most_trusted, most_popular, most_expensive. Omit (or leave blank) to apply the user's profile buying preference automatically; pass a value to override.
servingsNoComma-separated list of serving counts (e.g., '30,60,90')
max_priceNoMaximum price in dollars (e.g., 50.00)
certificationsNoRequired certifications, comma-separated. Valid: gluten_free, non_gmo, vegan_action, usda_organic, nsf_sport, usp_verified, informed_sport, informed_choice, tested_by_suppco. Omit (or leave blank) to apply the user's profile dietary preferences (vegan, gluten-free) automatically; pass an explicit list to override.
exclude_ingredientsNoComma-separated list of ingredients the product must NOT contain (e.g., 'stevia,sucralose'). Matches against both active ingredients (supplements) and inactive ingredients (excipients).
include_ingredientsNoComma-separated list of ADDITIONAL ingredients the product must also contain beyond its category (e.g., for 'collagen with hyaluronic acid', set product_category_name='Collagen' and include_ingredients='hyaluronic acid'). Do NOT put the primary supplement here — use product_category_name for that.
product_category_nameNoREQUIRED for all non-query searches. The supplement category (e.g., 'Vitamin D', 'Magnesium', 'Ashwagandha', 'Collagen'). ALWAYS provide this when using any filter params (priority, brand, certifications, form, max_price, servings, include_ingredients, exclude_ingredients). When the user asks for a supplement by name like 'ashwagandha' or 'magnesium', that IS the category.

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing behavioral on top of that — no mention of pagination via limit/offset, of the profile-driven defaults for priority and certifications, or of result ranking. It is essentially a restatement of the name.

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?

Two short sentences with the verb-resource front-loaded and no padding. The 'handles search, browsing, and recommendations' clause is somewhat generic filler, but overall the definition is efficiently sized.

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

Completeness2/5

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

This is a 13-parameter discovery tool with two distinct modes (free-text query vs category+filters), 0 required params, and no output schema or annotation coverage of the mode split. The description never mentions the required product_category_name for filtered searches or the profile-default behavior of priority/certifications, leaving the agent reliant entirely on schema text.

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% across all 13 params, including the detailed query-vs-product_category_name rule, the priority enum, and profile-override semantics for certifications. The description contributes no parameter meaning 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.

Purpose4/5

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

States a specific verb+resource ('Find products') and broadens scope to search, browsing, and recommendations, which separates it from read-only siblings like suppco_get_product_info or suppco_find_brands. It stops short of naming any sibling as the alternative, so the boundary with find_buying_club_products/find_brands is left implicit.

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?

'Use this whenever the user wants to discover or find products' gives an always-on trigger but no when-not condition and no alternatives. Critically, the schema's own rule that query must not be combined with filters (and that product_category_name is required for filtered searches) is never surfaced in the description, so the agent gets no routing guidance for the tool's two distinct modes.

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

suppco_get_brand_trust_scoreGet brand TrustScoreA
Read-onlyIdempotent
Inspect

Use this when the user asks how trustworthy or high-quality a specific supplement brand is. Returns the brand's TrustScore with its quality assessment. Pass the brand's name, slug or UUID as brand_query.

NameRequiredDescriptionDefault
brand_nameNoDeprecated alias of brand_query
brand_queryNoBrand UUID, slug, or name (ex: '80a5d287-8ec2-4b61-9004-10103da1133d', 'life-extension', 'Life Extension')

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety and idempotency profile is fully covered. The description adds the return content ('TrustScore with its quality assessment') but says nothing about behavior on an unknown brand or how ambiguity in name/slug/UUID is resolved. With annotations carrying the load, a 3 is appropriate.

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?

Three tight sentences: usage trigger first, then the returned value, then the argument. The trigger is front-loaded and no sentence is padding, though the parameter sentence is largely redundant with the schema.

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 single-lookup read tool with 100% schema coverage and full annotations but no output schema, the description tells the agent what it gets back and how to invoke it. Only the not-found / ambiguous-query behavior is left unspecified, which 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 the description's parameter sentence ('Pass the brand's name, slug or UUID as brand_query') merely restates what the schema already documents, including the accepted identifier forms. It adds no syntax, precedence, or ambiguity-resolution 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.

Purpose4/5

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

States a specific verb+resource: returns the brand's TrustScore with its quality assessment, and the trigger condition (user asking how trustworthy a brand is) makes the intent unambiguous. It distinguishes itself from suppco_get_product_trust_score implicitly via 'brand' vs product, but never names that sibling explicitly, so it falls short of a 5.

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?

The opening clause gives a concrete when-to-use condition ('when the user asks how trustworthy or high-quality a specific supplement brand is'). It offers no exclusions or routing to alternatives such as suppco_find_brands or suppco_get_product_trust_score, so it is clear context without the when-not guidance that would earn a 5.

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

suppco_get_checkout_urlGet checkout linkAInspect

Get a secure checkout link for the signed-in user's cart. The link signs the user into checkout so member pricing and credit apply. It works once and expires after 10 minutes, so call this only when the user is ready to pay and give them the link right away. Buying Club credit is applied by default; set use_wallet to false if the user doesn't want to use their credit.

NameRequiredDescriptionDefault
use_walletNoApply the user's Buying Club credit to this order (default true).

Output Schema

NameRequiredDescription
cartNo
single_useYes
checkout_urlYesSingle-use signed-in checkout link
wallet_amountNo
wallet_appliedNo
expires_in_minutesYes

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing traits annotations cannot express: the link signs the user into checkout, it is single-use ('works once'), and it expires after 10 minutes. These are exactly the constraints an agent must respect to avoid handing the user a dead link, and they are consistent with the non-idempotent, non-read-only annotations.

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

Conciseness5/5

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

Four sentences, zero filler: purpose first, then the sign-in/credit mechanics, then the single-use/expiry constraint paired with the usage condition, then the parameter caveat. Every sentence carries decision-relevant information.

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?

With an output schema present, return format need not be described, and safety/permission behavior is covered by annotations plus the expiry and single-use disclosure. Nothing an agent needs in order to call this correctly is missing.

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 100%, so the baseline is 3; the description adds real meaning by stating that Buying Club credit is applied by default and naming the exact opt-out condition ('set use_wallet to false if the user doesn't want to use their credit'). That is more than a restatement of the schema's default note.

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

Purpose5/5

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

States a specific verb and resource ('Get a secure checkout link for the signed-in user's cart') and is instantly separable from sibling cart tools like suppco_get_my_cart and suppco_add_to_cart, since a checkout URL is a distinct artifact. The added clause about sign-in for member pricing clarifies the resource's nature rather than restating the name.

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 an explicit when-to-use condition ('call this only when the user is ready to pay and give them the link right away') plus a default-behavior caveat for use_wallet. It does not name a sibling alternative or a precondition such as needing items in the cart, so it falls just short of the 5 bar.

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

suppco_get_my_cartGet my cartA
Read-onlyIdempotent
Inspect

Get the signed-in user's Buying Club cart: items, quantities, one-time or subscription, prices, subtotal, available credit and estimated cashback, plus any items that are no longer available.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
cartYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds domain context (credit, cashback, unavailable items) but no auth, rate-limit, or freshness behavior beyond that.

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

Conciseness5/5

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

A single front-loaded sentence leading with the verb and resource, followed by a tight enumeration of contents. No filler or redundant restatement of the title.

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?

With an output schema present, the description needn't spell out return values, and it correctly avoids doing so beyond a high-level summary. For a zero-param read tool with rich annotations, it is complete enough.

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 zero parameters and schema description coverage is 100%, so there is nothing for the description to clarify. Baseline 4 applies for a no-argument tool.

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

Purpose5/5

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

States a specific verb ('Get') and resource (the signed-in user's Buying Club cart) and enumerates exactly what the cart contains. This cleanly separates it from the cart-mutation siblings (add_to_cart, remove_from_cart, update_cart_item) without needing to name them.

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 the read nature and the 'signed-in user' scoping, but the description never states when to reach for this versus get_checkout_url or the stack/protocol siblings, nor any exclusion. It's adequate but leaves routing to inference.

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

suppco_get_my_nutrient_planGet my nutrient planA
Read-onlyIdempotent
Inspect

Use this when the user asks which nutrients they should take or how much. Returns the signed-in user's personalized plan with recommended nutrients and dosages. For what their current stack actually provides, use suppco_get_my_nutrient_totals.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that the plan is scoped to the signed-in user and what the payload contains, which is useful, but says nothing about edge cases such as an unconfigured/empty plan.

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

Conciseness5/5

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

Two tightly written sentences: trigger condition first, payload second, sibling disambiguation last. No filler, no repetition of the title.

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?

With no output schema, the description carries the burden of describing the return, and it does so at a usable level ('personalized plan with recommended nutrients and dosages'). It omits what happens when the user has no plan or profile data, which is the only remaining gap for a zero-param 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 zero parameters, so there are no parameter semantics to document and the baseline of 4 applies. Nothing in the description is needed to clarify inputs.

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

Purpose5/5

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

States a specific verb and resource ('Returns the signed-in user's personalized plan with recommended nutrients and dosages') and explicitly differentiates itself from the closely named sibling suppco_get_my_nutrient_totals. An agent can select between them without opening either schema.

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

Usage Guidelines5/5

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

Gives an explicit trigger ('when the user asks which nutrients they should take or how much') and names the alternative plus the condition that selects it ('current stack actually provides' → suppco_get_my_nutrient_totals). This is exactly the when-to-use/when-not pattern.

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

suppco_get_my_nutrient_totalsGet my nutrient totalsA
Read-onlyIdempotent
Inspect

Use this when the user asks how much of a nutrient their current supplements provide, or whether they are over or under recommended amounts. Returns the daily nutrient totals from the signed-in user's stack compared with recommended values.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds that it aggregates the signed-in user's stack against recommended values, which is useful, but it says nothing about granularity (per-nutrient vs overall), empty-stack behavior, or freshness — and there is no output schema to fall back on.

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

Conciseness5/5

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

Two sentences with no waste: the first front-loads the usage trigger and the second states what the call returns. Sized appropriately for a zero-parameter read tool.

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 no-arg, read-only tool with no output schema, the description conveys the essential shape of the result (daily totals vs recommended amounts). Minor gaps remain around result granularity and behavior when the stack is empty, but nothing blocks correct invocation.

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 zero parameters, so the baseline is 4 and there is no ambiguity for the description to resolve. Nothing misleading is stated about inputs.

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?

Names a specific verb+resource ('Returns the daily nutrient totals from the signed-in user's stack') and specifies the comparison against recommended values. It is clear on its own, but it does not distinguish itself from close siblings like suppco_get_my_nutrient_plan or suppco_get_my_stack, so an agent must infer the boundary.

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 an explicit trigger ('Use this when the user asks how much of a nutrient their current supplements provide, or whether they are over or under recommended amounts'). That is strong when-to-use guidance, though it names no alternative or exclusion to route against the nutrient-plan and stack tools.

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

suppco_get_my_protocolsGet my protocolsA
Read-onlyIdempotent
Inspect

Use this when the user asks about the health protocols they are following. Returns the signed-in user's protocols with progress and supplement recommendations. To find new protocols, use suppco_search_protocols.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and closed-world, so the safety profile is covered. The description adds useful context beyond that: the result is scoped to the signed-in user (implying auth/session state) and includes progress plus supplement recommendations. It does not describe pagination or freshness, so it stops short of a 5.

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

Conciseness5/5

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

Two sentences, zero waste, with the trigger condition front-loaded and the sibling routing at the end. Every clause earns its place.

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?

With no output schema, the description must preview the return payload, and it does so at a high level ('protocols with progress and supplement recommendations'). That is sufficient for an agent to decide to call it, though exact field shape remains unspecified.

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 zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No parameter-level detail is needed or missing.

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

Purpose5/5

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

States a specific verb+resource ('Returns the signed-in user's protocols') scoped to the caller's own data, and explicitly distinguishes itself from suppco_search_protocols. An agent can route between discovery and retrieval without opening any schema.

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

Usage Guidelines5/5

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

Gives an explicit trigger condition ('when the user asks about the health protocols they are following') and names the alternative tool with the condition that selects it ('To find new protocols, use suppco_search_protocols'). Both when-to-use and when-to-use-something-else are covered.

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

suppco_get_my_scheduleGet my scheduleA
Read-onlyIdempotent
Inspect

Get the user's current supplement schedule — shows when each product is taken (morning, midday, evening, bedtime, workout), dose amounts per time slot, with_food flags, and schedule frequency.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world scope, so the safety profile is covered. The description adds genuine value by disclosing the returned content (time slots, dose amounts per slot, with_food flags, frequency), which matters because there is no output schema. It stops short of 5 by omitting any mention of pagination or shape limits, though for a personal schedule these are minor.

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

Conciseness5/5

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

A single sentence that front-loads the purpose and then enumerates the return payload with no filler. Every listed item earns its place 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.

Completeness4/5

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

For a no-parameter read tool with full annotation coverage but no output schema, the description supplies enough about the returned structure for an agent to use the result. A note on how to modify the schedule (suppco_update_product_schedule) would close the remaining gap.

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 zero parameters, so the baseline is 4. The description correctly implies no inputs are required to fetch the user's own schedule, and nothing in the schema needs compensating for.

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 and resource ('Get the user's current supplement schedule') and enumerates exactly what the schedule contains — time slots, per-slot doses, with_food flags, frequency. It does not explicitly distinguish itself from nearby siblings like suppco_get_my_stack or suppco_get_my_protocols, so it stops short of a 5.

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?

Read usage is implied by 'current schedule', but there is no statement of when to call this versus suppco_get_my_stack, suppco_get_my_protocols, or the mutating suppco_update_product_schedule. No prerequisites or exclusions are given, leaving the agent to infer the routing.

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

suppco_get_my_stackGet my stackA
Read-onlyIdempotent
Inspect

Use this when you need the signed-in user's current supplements, for example before recommending, comparing, swapping or removing products. Returns every product in their stack with dosages and daily totals, including the product IDs other SuppCo tools accept.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds meaningful context beyond that: the return payload contains every product with dosages, daily totals, and the product IDs that other SuppCo tools accept, which tells the agent this is a dependency-resolution read.

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?

Two tight sentences that lead with the usage trigger and follow with the payload contents. The 'recommending, comparing, swapping or removing' list is mildly enumerative but each item signals a real downstream workflow, so it mostly earns its place.

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?

With no output schema, the description carries the burden of describing returns and does so well: full product list, dosages, daily totals, and reusable product IDs. For a zero-parameter read tool with rich annotations, nothing an agent needs to call it correctly is missing.

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 zero parameters, so the schema baseline is 4. The description correctly implies no inputs are needed (it operates on the signed-in user) and adds no misleading parameter expectations.

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

Purpose5/5

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

States a specific verb+resource ('signed-in user's current supplements') and immediately scopes the resource as the user's stack with dosages and daily totals. It is clearly distinguishable from sibling getters like suppco_get_my_cart, suppco_get_my_nutrient_plan, and suppco_get_my_protocols.

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?

Explicitly says when to use it ('before recommending, comparing, swapping or removing products'), which maps to concrete workflows involving siblings like suppco_swap_products and suppco_remove_from_stack. There is no when-not guidance or named alternative, 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.

suppco_get_nutrient_infoGet nutrient infoA
Read-onlyIdempotent
Inspect

Use this when the user asks about dosing for a specific nutrient or supplement: typical daily intake ranges and upper limits from SuppCo's references, timing and whether to take it with food, plus a summary of its graded research. General information only; does not diagnose, treat or give personalized dosing advice. For what studies say about a supplement for a specific health area, use suppco_search_effects.

NameRequiredDescriptionDefault
nutrient_nameYesThe name of the nutrient or supplement (e.g., 'Vitamin D3', 'Magnesium', 'Fish Oil')

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds real value beyond that by scoping the tool's limits: general information only, no diagnosis/treatment, no personalized dosing advice. It does not disclose return format or citation behavior, which keeps it short of a 5.

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

Conciseness5/5

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

Three sentences, front-loaded with the trigger condition, then the output contents, then the disclaimer and the sibling routing. Every sentence carries information an agent needs; nothing is padding.

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?

With no output schema, the description compensates by enumerating what comes back (intake ranges, upper limits, timing, food guidance, graded research summary). Combined with the scope disclaimer and the routing pointer, an agent has everything needed to select and call this tool correctly.

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 the single parameter already documents itself with concrete examples ('Vitamin D3', 'Magnesium', 'Fish Oil'). The description only restates the parameter as 'a specific nutrient or supplement', adding no syntax, aliasing, or format guidance beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

Names a specific verb+resource and enumerates exactly what 'nutrient info' contains: typical daily intake ranges, upper limits, timing, food interactions, and a graded research summary. It also explicitly distinguishes itself from the sibling suppco_search_effects, so an agent can route without opening either schema.

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

Usage Guidelines5/5

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

Opens with an explicit trigger ('Use this when the user asks about dosing for a specific nutrient or supplement') and names the alternative with the condition that selects it ('For what studies say about a supplement for a specific health area, use suppco_search_effects'). Both when-to-use and when-to-use-something-else are covered.

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

suppco_get_product_infoGet product infoA
Read-onlyIdempotent
Inspect

Look up detailed information (composition, ingredients, price, format, servings) for one or more specific products by UUID, slug, or name. Use for "tell me about " or to hydrate products you only have ids for (e.g. from the user's stack). Accepts names when you don't have an id yet. For TrustScore rationale, certifications, or testing, call suppco_get_product_trust_score instead.

NameRequiredDescriptionDefault
productsYesOne or more product identifiers (max 5): an array of strings, or one string separated by ' | '. Each can be a UUID, slug, or product name. Prefer the ids you already have from a previous product result.

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, open-world, non-destructive, so the safety profile is fully covered without the description. The description adds the useful behavioral note that names are accepted when no id exists, implying fuzzy resolution, but says nothing about ambiguity, failures for unmatched names, auth, or rate limits. Adequate but not rich.

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

Conciseness5/5

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

Three tight sentences, front-loaded with purpose and returned fields before the alternative-tool routing. No filler phrases and nothing redundant with the schema beyond a brief identifier recap.

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?

With no output schema present, the description compensates by naming the returned fields, and it covers identifier formats, batching, and sibling routing for a one-parameter read tool. An agent has everything needed to call this correctly.

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 the single parameter is fully documented there, including the max-5 limit, the ' | ' string form, and the preference for previously obtained ids. The description restates rather than extends this, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (look up) and resource (product info) and enumerates the returned fields (composition, ingredients, price, format, servings) plus the accepted identifier types (UUID, slug, name). It explicitly names the sibling it is not for trust data, suppco_get_product_trust_score, so an agent can distinguish it without opening either schema.

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

Usage Guidelines5/5

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

Gives concrete triggering scenarios ("tell me about <product>", hydrating ids from the user's stack) and an explicit exclusion routing to suppco_get_product_trust_score for TrustScore rationale, certifications, and testing. The name-vs-id fallback is also clarified.

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

suppco_get_product_trust_scoreGet product TrustScoreA
Read-onlyIdempotent
Inspect

Get TrustScore details and quality assessment for one or more products: score rationale/commentary, certifications, testing and verified lab results, brand manufacturing/testing practices, and excipient risk ratings. Accepts product ids/slugs/names (multiple). Call this before discussing why a product is (or is not) trustworthy, its certifications, or its testing — the other product tools return only the headline score number.

NameRequiredDescriptionDefault
productsYesOne or more product identifiers (max 5): an array of strings, or one string separated by ' | '. Each can be a UUID, slug, or product name. Prefer the ids you already have from a previous product result.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: it discloses the depth of data returned versus sibling tools and that multiple identifiers are accepted in a single call, which shapes how an agent batches requests.

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?

Three sentences, front-loaded with purpose, then when-to-use, then the differentiator. The identifier sentence mildly duplicates the schema but is short. Almost no wasted text, though the middle sentence could be tightened.

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?

With no output schema, the description carries the burden of describing returns, and it does so by enumerating the specific content categories an agent will get back. Combined with the when-to-use guidance, an agent has enough to call and interpret it; only the batch/response shape is left implicit.

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 the single parameter is fully documented in the schema, including accepted ID types, the max of 5, and the ' | ' separator. The description only restates 'Accepts product ids/slugs/names (multiple)', adding no syntax or formatting detail beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

The description opens with a specific verb+resource ('Get TrustScore details and quality assessment for one or more products') and then enumerates the concrete contents (rationale, certifications, lab results, brand practices, excipient risk). It clearly distinguishes itself from siblings by noting 'the other product tools return only the headline score number.'

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 explicit when-to-use guidance ('Call this before discussing why a product is (or is not) trustworthy, its certifications, or its testing') and contrasts with the alternative class of tools. It does not name the specific sibling (e.g. suppco_get_product_info) that returns the headline score, so routing is slightly less precise than it could be.

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

suppco_get_stack_scoreGet my StackScoreA
Read-onlyIdempotent
Inspect

Use this when the user asks how good their supplement stack is or how to improve it. Returns the signed-in user's StackScore with Quality, Value, Goals and Dosage ratings and coaching recommendations. Pass category to get a single category.

NameRequiredDescriptionDefault
categoryNoOptional category filter: 'quality', 'value', 'goals', or 'dosage'. Omit to get all categories.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description adds useful content context — that the response carries four rating dimensions and coaching recommendations — though it omits whether the score is cached or computed on demand, which matters given the sibling refresh tool.

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?

Three sentences, front-loaded with the usage trigger, then return contents, then the filter hint. Efficient overall; only the final 'Pass category to get a single category' sentence is mildly redundant given the schema.

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?

With no output schema, the description is right to name the returned rating dimensions and recommendations, and the single optional enum parameter is fully covered by the schema. The only missing piece is the read-vs-refresh relationship with suppco_refresh_stack_score.

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 the enum values are documented in the schema itself. The line 'Pass category to get a single category' simply restates the schema with no added syntax, defaults, or interaction detail, so the baseline of 3 applies.

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

Purpose5/5

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

Names a specific verb+resource ('returns the signed-in user's StackScore') and enumerates exactly what the score comprises (Quality, Value, Goals, Dosage ratings plus coaching recommendations). This cleanly separates it from siblings like suppco_get_my_stack or suppco_refresh_stack_score.

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 a concrete trigger: 'Use this when the user asks how good their supplement stack is or how to improve it.' That is clear context, but it never mentions the adjacent suppco_refresh_stack_score, so the agent gets no guidance on when to read a score versus trigger a recomputation.

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

suppco_manage_stackManage stackA
Destructive
Inspect

Legacy: prefer suppco_add_to_stack / suppco_remove_from_stack / suppco_swap_products. Add, remove, or swap products in user's supplement stack using natural language commands.

NameRequiredDescriptionDefault
action_descriptionYesNatural language stack action. Examples: "add thorne-vitamin-d-k2", "remove life-extension-magnesium", "swap thorne-creatine for momentous-creatine"

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and a non-read-only profile, so the safety burden is largely covered. The description adds the useful behavioral fact that input is free-form natural language and that the tool is deprecated, but says nothing about confirmation, partial-failure, or what exactly a swap destroys. Moderate added value against low annotation burden is a 3.

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

Conciseness5/5

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

Two sentences, ~25 words, with the deprecation/routing guidance front-loaded ahead of the capability statement. Every clause earns its place and nothing is padded.

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 single-parameter, no-output-schema, fully annotated tool, this covers purpose, routing, and input style adequately. It stops short of explaining what the agent sees back after a mutation or how conflicts in a free-text command are resolved, which is a minor remaining 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?

There is only one parameter and schema description coverage is 100%, with the schema already supplying example strings ('add thorne-vitamin-d-k2', 'swap thorne-creatine for momentous-creatine'). The description restates the natural-language input style but adds no syntax, naming, or format constraint 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.

Purpose5/5

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

It states a specific verb set and resource ('Add, remove, or swap products in user's supplement stack') and explicitly distinguishes itself from the very siblings it overlaps with (add_to_stack, remove_from_stack, swap_products). An agent can decide whether this legacy tool or a specific sibling applies without opening any schema.

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

Usage Guidelines5/5

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

The first sentence is an explicit routing instruction: 'Legacy: prefer suppco_add_to_stack / suppco_remove_from_stack / suppco_swap_products.' It names the exact alternatives by tool id and tells the agent when not to use this tool, which is the strongest form of usage guidance.

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

suppco_refresh_stack_scoreRefresh my StackScoreAInspect

Kick off a StackScore refresh. The score recalculates asynchronously and takes a few minutes. Only use when the user confirms they want to refresh.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare the non-idempotent, non-read-only profile, and the description adds genuinely new context: the recalculation is asynchronous and takes a few minutes. It doesn't say what the agent should do while waiting or whether repeated calls queue/stack, so it stops short of a 5.

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

Conciseness5/5

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

Three short sentences, zero filler, and the most important fact (this triggers an async refresh) is front-loaded ahead of the confirmation constraint.

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 zero-parameter, no-output-schema trigger action, the description supplies the essentials: what fires, that it's async with a multi-minute latency, and the confirmation precondition. Only the post-trigger expectation (e.g., poll get_stack_score) is left unstated.

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?

Zero parameters, so the schema has nothing to document and the description is not expected to explain parameter semantics. Baseline 4 applies.

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 and resource: 'Kick off a StackScore refresh.' The action semantics (trigger a recalculation) are clearly distinct from the read-only sibling suppco_get_stack_score, 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 an explicit gating condition: 'Only use when the user confirms they want to refresh.' This is a real when-to-use rule. It stops short of naming the alternative (get_stack_score) for agents that just want to read the existing score.

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

suppco_remove_from_cartRemove from cartA
DestructiveIdempotent
Inspect

Remove a product from the signed-in user's cart, or set remove_unavailable to true to clear items that are no longer available. Removing a product removes every cart line for it, one-time and subscription. Returns the updated cart.

NameRequiredDescriptionDefault
product_id_or_slugNoSuppCo product ID (UUID) or slug of the product to remove, as shown by suppco_get_my_cart.
remove_unavailableNotrue to remove every item that is no longer available (the stale items suppco_get_my_cart lists).

Output Schema

NameRequiredDescription
cartYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only flag this as destructive/idempotent; the description adds the crucial blast radius – removing a product deletes every cart line for it, both one-time and subscription, not just one line. It also states the signed-in-user cart scope and that an updated cart is returned, which 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.

Conciseness5/5

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

Three sentences, front-loaded with the primary action, then the alternate mode, then the side-effect and return. No filler; every clause carries information an agent needs.

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?

Covers scope (signed-in user's cart), both modes, destructive blast radius, and the return value, while an output schema exists for the returned cart. Nothing material is missing for correct invocation.

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 100%, so the baseline is 3, but the description adds real meaning beyond the schema: it clarifies that product_id_or_slug removal acts on all matching cart lines (one-time and subscription), which the schema's 'product to remove' wording leaves ambiguous.

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

Purpose5/5

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

States a specific verb (remove) and resource (product from the signed-in user's cart), plus a second mode (clear unavailable items). An agent can distinguish this from suppco_add_to_cart, suppco_update_cart_item, and suppco_get_my_cart without opening any schema.

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 a clear conditional for the remove_unavailable mode ('set remove_unavailable to true to clear items that are no longer available'), which covers two distinct use cases. It does not, however, name an alternative for partial edits (e.g., suppco_update_cart_item for quantity changes) or state when not to remove.

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

suppco_remove_from_stackRemove from stackA
Destructive
Inspect

Use this when the user has stopped taking a product or wants it off their SuppCo stack. Removes the product from the signed-in user's stack. id is a SuppCo product UUID or slug, as shown by suppco_get_my_stack.

NameRequiredDescriptionDefault
idYesSuppCo Product ID

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the agent knows this is a non-reversible mutation. The description adds that the target is the signed-in user's own stack (implying auth scope), but says nothing about what happens to historical data or whether the removal can be undone.

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

Conciseness5/5

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

Three sentences, front-loaded with the trigger condition and the action, followed by the parameter note. No 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?

For a one-parameter destructive tool with no output schema, the description covers purpose, trigger, and the parameter's accepted forms. The remaining gap is behavioral consequence (reversibility, effect on stack score/history), which annotations only partially address.

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 100% and the schema only says 'SuppCo Product ID', while the description adds that the value may be a UUID or a slug and points to suppco_get_my_stack as the source. That is genuine meaning beyond the schema, though it omits any format example.

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

Purpose5/5

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

States a specific verb and resource ('Removes the product from the signed-in user's stack') and frames the motivating user situation. Clearly separable from suppco_add_to_stack and suppco_manage_stack without opening a schema.

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?

Explicit when-to-use trigger: the user has stopped taking a product or wants it off their stack. It stops short of naming an alternative (e.g. suppco_manage_stack) or stating when not to use it, but the context is unambiguous.

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

suppco_save_memorySave a note about meAInspect

Use this when the user explicitly asks SuppCo to remember a preference or fact about them for future SuppCo conversations. Saves one short note to their SuppCo account.

NameRequiredDescriptionDefault
memoryYesThe note to remember

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description usefully adds that only one *short* note is stored and that persistence is scoped to future SuppCo conversations, but it does not say what happens on repeated calls, whether notes can be replaced or deleted, or if any account permission is required.

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

Conciseness5/5

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

Two short sentences with no waste, and the when-to-use trigger is front-loaded before the effect. Nothing could be removed without losing information.

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 one-parameter write tool with full annotation coverage and no output schema, the description supplies the trigger, the effect, and the persistence scope, which is close to everything an agent needs. Only the relationship to the profile-update sibling is left unaddressed.

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?

With a single parameter at 100% schema description coverage, the schema already documents `memory` as 'The note to remember', establishing the 3 baseline. The description's 'one short note' adds a minor sizing/quantity hint for that parameter but no format or content guidance beyond it.

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 and resource — saving a short note about the user to their SuppCo account — so the effect is unambiguous. It does not distinguish itself from the sibling suppco_update_my_profile, which is also a write to the user's account, so an agent can't fully tell the two apart from the description alone.

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 a clear trigger condition: use only when the user explicitly asks SuppCo to remember a preference or fact. That is stronger than implied usage, but it names no alternative (e.g., update_my_profile for structured profile data) and states no when-not to use it.

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

suppco_search_effectsSearch supplement effectsA
Read-onlyIdempotent
Inspect

Use this when the user asks what published research says about a supplement: its overall effects, or whether it does something for a specific health area such as heart health, stress or focus. Also use it when the user asks which supplements have the most research behind them for a health area. Returns SuppCo's summaries of published studies with evidence grades. General information only; does not diagnose, treat or recommend treatment for any condition. For dosing and nutrient basics, use suppco_get_nutrient_info; for a full supplement routine for a goal, use suppco_search_protocols.

NameRequiredDescriptionDefault
supplement_nameNoThe supplement name (e.g., "Fish Oil", "Magnesium"). Optional - omit to search for all supplements related to the condition.
health_conditionNoThe health area or outcome to look up (e.g., "Heart Health", "Bone & Joint Health", "Focus and Attention"). Optional - omit to get all research for a supplement.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuine value beyond that: the return is SuppCo's summaries of published studies with evidence grades, and it carries a medical disclaimer (no diagnosis, treatment, or recommendation). It does not discuss pagination or result volume.

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-loaded with the primary usage trigger, then the return shape, then the disclaimer and sibling routing. Three dense sentences with little waste; the only minor redundancy is restating the two search modes already implied by the parameters.

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?

There is no output schema, so the description usefully characterizes the return (study summaries with evidence grades) and frames the tool's limits. Both optional parameters, the zero-required-parameter case, and the sibling alternatives are all accounted for; only result breadth or pagination behavior is unaddressed.

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 parameters are optional with their own examples and 'omit to search all' semantics already stated in the schema. The description adds no syntax, format, or matching behavior beyond what the schema provides, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('search' for published research on a supplement's effects) and immediately clarifies scope with concrete examples (heart health, stress, focus). It also names two sibling tools it is not, so an agent can route without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use triggers (overall effects, effect on a specific health area, which supplements have the most research) and explicit alternatives with their own conditions: suppco_get_nutrient_info for dosing/nutrient basics and suppco_search_protocols for a full routine for a goal. Nothing 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.

suppco_search_protocolsSearch protocolsA
Read-onlyIdempotent
Inspect

Use this when the user asks for a supplement protocol for a health goal, such as sleep, energy or weight loss. Searches SuppCo's protocols and returns the matches. For protocols the user already follows, use suppco_get_my_protocols.

NameRequiredDescriptionDefault
queryYesQuery (e.g., 'Protocol for weight loss')

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, covering the safety profile. The description adds only 'returns the matches', which is thin, and says nothing about result volume, ranking, or whether an empty match is possible. Adequate but not value-adding beyond the annotations.

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

Conciseness5/5

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

Two sentences, zero waste, and the trigger condition is front-loaded before the disambiguation sentence. Every clause earns its place.

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 one-parameter, read-only search with no output schema, the description covers trigger, scope, and the sibling alternative. It could say slightly more about the shape or breadth of returned matches, but nothing essential for correct invocation is missing.

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 coverage is 100% with a single 'query' parameter already documented in the schema. The description adds no syntax, format, or query-construction guidance beyond the example already present. Baseline 3 is appropriate when the schema carries the load.

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

Purpose5/5

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

States a specific verb and resource ('Searches SuppCo's protocols') plus the trigger domain (health goals like sleep, energy, weight loss). Explicitly distinguishes itself from suppco_get_my_protocols, so an agent can route without opening either schema.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use condition ('when the user asks for a supplement protocol for a health goal') and names the alternative for the contrasting case (protocols the user already follows → suppco_get_my_protocols). Nothing 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.

suppco_swap_productsSwap stack productsA
Destructive
Inspect

Use this when the user wants to replace a product in their stack with a different one, for example after comparing alternatives. Removes old_product_id from the stack and adds new_product_id. Both are SuppCo product UUIDs or slugs.

NameRequiredDescriptionDefault
new_product_idYesSuppCo Product ID to add
old_product_idYesSuppCo Product ID to remove

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is covered. The description adds real value beyond that by disclosing exactly what is destroyed (old_product_id removed from the stack) and that the removal and addition are described as a single operation. It does not cover failure behavior, e.g. what happens if old_product_id is not currently in the stack.

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

Conciseness5/5

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

Two tight sentences, trigger first, mechanics second. Every clause carries information and nothing is padded.

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 two-parameter mutation with no output schema and annotations covering the safety profile, the description supplies purpose, trigger, effect, and identifier format. The only real omission is edge-case behavior on an invalid or absent old_product_id.

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 100% and the schema already labels both fields, so baseline is 3. The description earns an extra point by specifying the accepted identifier format ('SuppCo product UUIDs or slugs'), a detail the schema's generic 'SuppCo Product ID' wording does not provide.

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+resource: 'replace a product in their stack with a different one', and spells out the mechanics (removes old_product_id, adds new_product_id). It implicitly separates itself from suppco_add_to_stack and suppco_remove_from_stack by being the atomic swap, but never names those siblings explicitly, so an agent must infer the distinction.

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 a clear when-to-use trigger ('when the user wants to replace a product in their stack') and even a scenario ('after comparing alternatives') that points toward the compare tools. It stops short of stating when NOT to use it, e.g. that add_to_stack plus remove_from_stack would be the alternative for non-swap edits.

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

suppco_update_cart_itemUpdate cart itemA
DestructiveIdempotent
Inspect

Set the quantity of a product that is already in the signed-in user's cart. quantity is the new total, not an amount to add, so repeating the call is safe; 0 removes the item. If the product is in the cart as both a one-time purchase and a subscription, set subscription to choose which one to change. Returns the updated cart.

NameRequiredDescriptionDefault
quantityYesNew total number of units for this item. 0 removes it.
subscriptionNotrue to change the subscription item, false for the one-time item. Only needed when the product is in the cart as both.
product_id_or_slugYesSuppCo product ID (UUID) or slug of a product in the cart, as shown by suppco_get_my_cart.

Output Schema

NameRequiredDescription
cartYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare idempotentHint, destructiveHint and openWorldHint, but the description adds genuine specifics beyond them: quantity is a new total rather than an increment (explaining why repeats are safe), and 0 is the destructive trigger that removes the item. It also notes the return value. Minor gap: no mention of auth requirements or what happens to a subscription item when quantity is set to 0.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the core action, then the non-obvious semantics, then the conditional flag. Every sentence carries information an agent needs; nothing is padding.

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?

With an output schema present and full annotation coverage, the description supplies exactly the missing pieces: set-vs-increment semantics, the destructive zero case, and the disambiguation flag. An agent has everything required to invoke this correctly.

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%, so the schema already documents all three parameters, including 'new total', '0 removes it', and the both-types condition for subscription. The description largely restates this at the prose level, adding the repeat-safety framing but no new syntax or format detail. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource with an explicit scope constraint: 'Set the quantity of a product that is already in the signed-in user's cart.' The 'already in the cart' qualifier immediately separates it from suppco_add_to_cart and suppco_remove_from_cart without needing to open either schema.

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?

Clearly establishes the trigger condition (item already in cart) and gives an explicit conditional rule for the optional subscription flag when a product exists as both a one-time purchase and a subscription, plus the 0-means-removal rule. It stops short of naming sibling tools (e.g. remove_from_cart or add_to_cart) as alternatives, so routing is implied rather than explicit.

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

suppco_update_my_profileUpdate my profileA
DestructiveIdempotent
Inspect

Use this when the user gives profile details they want saved: age, sex, health goals, dietary preferences, experience level, buying preference, preferred form or biggest challenge. Only the fields you pass are changed, and each one replaces the stored value. Saved preferences change the defaults other SuppCo tools use, such as product search ranking.

NameRequiredDescriptionDefault
ageNoUser's age in years (integer between 13 and 150)
sexNoUser's biological sex (valid options: male, female, intersex, not_specified)
expertiseNoUser's experience level with supplements (valid options: Beginner, Routine, SuperUser)
health_goalsNoUser's health goals as an array, CSV string, or single string (valid options: Bone & Joint, Cardiovascular, Cognition, Detox, Energy, Essential Health, Fertility, Fitness, Gut Health, Hair & Skin, Immune Support, Inflammation, Longevity, Men's Hormones, Organ Function, Sexual Health, Sleep, Stress & Mood, Weight Management, Women's Hormones)
preferred_formNoUser's preferred supplement form (valid options: Single Ingredient, Blends, Both)
biggest_challengeNoUser's biggest challenge with supplements (free text)
buying_preferenceNoUser's supplement buying preference (valid options: Highest quality available, Best value, Most affordable)
dietary_preferencesNoUser's dietary preferences as an array

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare the mutation profile (readOnly=false, destructive=true, idempotent=true), and the description adds genuinely useful non-structured behavior: partial-merge semantics ('Only the fields you pass are changed') and overwrite semantics ('each one replaces the stored value'), plus the cross-tool side effect on product search ranking. It doesn't state permission/auth requirements or what happens to existing arrays like health_goals, which keeps it from a 5.

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?

Two tight sentences, with the usage trigger front-loaded before the behavioral details. The field enumeration in sentence one largely restates schema properties, so it isn't perfectly waste-free, but it doubles as a quick scan of scope.

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 an 8-optional-parameter mutation tool with no output schema, the description covers the trigger, the merge/replace semantics, and the cross-tool consequence, which is most of what an agent needs. Minor gaps remain around array-field replacement behavior and confirmation of the resulting state.

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% with enums and ranges documented inline, so the schema already carries parameter meaning. The description lists the field names but adds no format or syntax detail beyond what the schema provides; baseline 3 is appropriate.

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 states a specific verb (update/save) and resource (my profile) and enumerates the exact fields it accepts, so an agent knows precisely what this tool writes. It doesn't need to name a sibling because no other tool in the list updates profile data, though it also doesn't explicitly rule out overlap with suppco_save_memory.

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?

The trigger is explicit: 'Use this when the user gives profile details they want saved.' It also explains downstream context (saved preferences change defaults for other SuppCo tools). It stops short of saying when NOT to use it or pointing at a specific alternative, but the usage condition is clear.

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

suppco_update_product_scheduleUpdate product scheduleA
DestructiveIdempotent
Inspect

Use this when the user wants to change when or how they take a product that is already in their stack. Replaces that product's schedule: time-of-day amounts, daily, specific-days or every-other-day timing, as-needed, with food, and timing notes.

NameRequiredDescriptionDefault
scheduleYesJSON array of time-slot assignments, e.g. [{"activity":"morning","units":2},{"activity":"bedtime","units":1}]. "units" is the number of capsules/tablets/scoops for that time slot — NOT servings. Valid activities: morning, midday, evening, bedtime, workout, unscheduled.
as_neededNoWhether the product is taken as needed (true/false). Omit to keep the current value — only pass it when the user asked to change it.
with_foodNoWhether the product should be taken with food (true/false). Omit to keep the current value — only pass it when the user asked to change it.
product_idYesProduct slug or UUID
schedule_daysNoArray of day names (e.g. ["monday","wednesday","friday"]) for specific_days schedule_type
schedule_typeNoSchedule type: daily, specific_days, or every_other_day
schedule_notesNoBrief timing instructions that the schedule cannot capture (e.g., "take 2 hours apart from calcium", "take on empty stomach 30 min before bed"). Set to empty string to clear.
change_daily_amountNoSet true ONLY when the user asked to change how many units they take per day. Without it, a schedule whose total differs from the current daily amount is rejected, so timing changes keep the same total.
every_other_day_startNoWhen to start every_other_day schedule: "today" or "tomorrow"

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, and the word "Replaces" aligns with that by disclosing full-replacement semantics for the schedule rather than patching it. The description does not clarify that non-schedule fields (as_needed, with_food) are preserved when omitted, though the schema carries that detail.

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?

Two sentences, trigger front-loaded and scope enumerated second, with no filler. The enumeration is a touch list-like but each item corresponds to a real capability an agent must expose.

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?

For a 9-parameter mutation tool with full schema coverage, present destructive/idempotent annotations, and no output schema, the description supplies the trigger, the resource, and the replacement contract an agent needs. Remaining details live in structured fields where they belong.

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%, so the schema already documents all 9 parameters in detail, including the change_daily_amount rejection rule and the units-vs-servings caveat. The description's enumeration of schedule aspects maps loosely onto parameters but adds no format, syntax, or constraint detail beyond the schema.

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

Purpose5/5

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

The description states a specific verb and resource ("Replaces that product's schedule") and scopes it to a product "already in their stack", which separates it cleanly from siblings like suppco_get_my_schedule and suppco_add_to_stack. It then enumerates the schedule dimensions it governs, so an agent knows exactly what this tool owns.

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?

"Use this when the user wants to change when or how they take a product that is already in their stack" gives a clear trigger condition, and the 'already in stack' qualifier implicitly excludes new products. There is no explicit when-not or named alternative (e.g., add to stack for new products), so it stops short of full routing guidance.

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.

  1. 2 tool updates
    • Changedsuppco_get_product_info3 fields changed
      • addedInput schema / properties / products / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / products / description
        Previous value: -"One or more product identifiers separated by ' | ' (max 5). Each can be a UUID, slug, or product name. Prefer slugs or UUIDs when available. Examples: 'thorne-vitamin-d-k2' (single slug), 'Thorne Magnesium | Pure Encapsulations Vitamin D' (multiple by name)"New value: +"One or more product identifiers (max 5): an array of strings, or one string separated by ' | '. Each can be a UUID, slug, or product name. Prefer the ids you already have from a previous product result."
      • removedInput schema / properties / products / type
        Removed value: -"string"
    • Changedsuppco_get_product_trust_score3 fields changed
      • addedInput schema / properties / products / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / products / description
        Previous value: -"One or more product identifiers separated by ' | ' (max 5). Each can be a UUID, slug, or product name. Prefer the ids you already have from a previous product result."New value: +"One or more product identifiers (max 5): an array of strings, or one string separated by ' | '. Each can be a UUID, slug, or product name. Prefer the ids you already have from a previous product result."
      • removedInput schema / properties / products / type
        Removed value: -"string"
  2. 30 tool updates
    • First observedsuppco_add_to_cart
    • First observedsuppco_add_to_stack
    • First observedsuppco_compare_product_to_alternatives
    • First observedsuppco_compare_to_buying_club
    • First observedsuppco_find_brands
    • First observedsuppco_find_buying_club_products
    • First observedsuppco_find_products
    • First observedsuppco_get_brand_trust_score
    • First observedsuppco_get_checkout_url
    • First observedsuppco_get_my_cart
    • First observedsuppco_get_my_nutrient_plan
    • First observedsuppco_get_my_nutrient_totals
    • First observedsuppco_get_my_protocols
    • First observedsuppco_get_my_schedule
    • First observedsuppco_get_my_stack
    • First observedsuppco_get_nutrient_info
    • First observedsuppco_get_product_info
    • First observedsuppco_get_product_trust_score
    • First observedsuppco_get_stack_score
    • First observedsuppco_manage_stack
    • First observedsuppco_refresh_stack_score
    • First observedsuppco_remove_from_cart
    • First observedsuppco_remove_from_stack
    • First observedsuppco_save_memory
    • First observedsuppco_search_effects
    • First observedsuppco_search_protocols
    • First observedsuppco_swap_products
    • First observedsuppco_update_cart_item
    • First observedsuppco_update_my_profile
    • First observedsuppco_update_product_schedule

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Evidence-based supplement intelligence in your terminal, exposed as an MCP server for AI agents to research, compare, stack, and manage supplements.
    23 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables assistants and editors to query a curated, read-only evidence graph for graded findings about what compounds, supplements, nutrients and foods have been shown to do in the human body, each with an automatic A–F grade, the verbatim source sentence, paper, population, dose and a permalink, plus reference-database relations labelled as hypotheses. It also exposes no products, prices or purchase links, and returns no medical advice or rankings of what to take.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources