Cited supplement evidence, biomarker effects, interaction checks and brand quality
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Starter stack (default 3, max 5) of recommendable supplements for a goal (e.g. 'insomnia', 'LDL cholesterol'), best-replicated app-visible evidence first; never Rx or research; biomarker-proxy rows are hypotheses. Not offered for cancer or other serious disease (no_match). One item per ingredient family, checked for supplement interactions with each other and with `exclude`, which also takes medications by generic name (checked against FDA labels: major picks dropped, moderate flagged; unlisted medications are NOT checked, so ask, then use get_supplement_interactions with `drug`). Each item: why, grade, study dose (context), PMIDs, cited cautions (an avoid-level caution leads as cautions_summary and in data.important_cautions: state those first), same-mechanism and interaction flags. include_claim_link is opt-in (default false): true stores a small claim record and returns data.claim.claim_url for saving the stack in a free Aviado account.
Goal, condition or biomarker (e.g. 'insomnia', 'LDL cholesterol')
Supplements the user takes or avoids, and medications by generic name (e.g. 'sertraline'): supplements are never suggested; medications are checked against every pick
Stack size (default 3, max 5)
Opt in (default false): create a claim link, which stores a small record for 30 days (only when enabled)
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Starter stack (default 3, max 5) of recommendable supplements for a goal (e.g. 'insomnia', 'LDL cholesterol'), best-replicated app-visible evidence first; never Rx or research; biomarker-proxy rows are hypotheses. Not offered for cancer or other serious disease (no_match). One item per ingredient family, checked for supplement interactions with each other and with `exclude`, which also takes medications by generic name (checked against FDA labels: major picks dropped, moderate flagged; unlisted medications are NOT checked, so ask, then use get_supplement_interactions with `drug`). Each item: why, grade, study dose (context), PMIDs, cited cautions (an avoid-level caution leads as cautions_summary and in data.important_cautions: state those first), same-mechanism and interaction flags. include_claim_link is opt-in (default false): true stores a small claim record and returns data.claim.claim_url for saving the stack in a free Aviado account.
| Argument | Type | Description |
|---|---|---|
| goal* | string | Goal, condition or biomarker (e.g. 'insomnia', 'LDL cholesterol') |
| exclude | array | Supplements the user takes or avoids, and medications by generic name (e.g. 'sertraline'): supplements are never suggested; medications are checked against every pick |
| max_items | integer | Stack size (default 3, max 5) |
| include_claim_link | boolean | Opt in (default false): create a claim link, which stores a small record for 30 days (only when enabled) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"goal"
],
"properties": {
"goal": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Goal, condition or biomarker (e.g. 'insomnia', 'LDL cholesterol')"
},
"exclude": {
"type": "array",
"items": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"maxItems": 10,
"description": "Supplements the user takes or avoids, and medications by generic name (e.g. 'sertraline'): supplements are never suggested; medications are checked against every pick"
},
"max_items": {
"type": "integer",
"default": 3,
"maximum": 5,
"minimum": 1,
"description": "Stack size (default 3, max 5)"
},
"include_claim_link": {
"type": "boolean",
"default": false,
"description": "Opt in (default false): create a claim link, which stores a small record for 30 days (only when enabled)"
}
}
}Point check of one pair, about 1-3 KB: a and b are each a supplement (name or canonical_id) or a medication (generic name; salt forms merged, brand names not matched). Supplement + supplement uses Aviado's verified pairs only (components and classes included); supplement + medication uses FDA drug-label rows only; two medications are not covered (no_match). Returns verdict {found, severity, direction, summary, recommendation, recorded_for, evidence_level, sources} and coverage (level none/sparse/moderate/broad). found:false is NOT a safety answer: an empty result is not evidence that there is no interaction, so read coverage.note and say so. Check status first: needs_confirmation / no_match means the input did not resolve, data is null and next_step says how to retry.
| Argument | Type | Description |
|---|---|---|
| a* | string | First supplement (name or canonical id) or medication (generic name) |
| b* | string | Second supplement (name or canonical id) or medication (generic name) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"a",
"b"
],
"properties": {
"a": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "First supplement (name or canonical id) or medication (generic name)"
},
"b": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Second supplement (name or canonical id) or medication (generic name)"
}
}
}Biomarkers a supplement moves in the Aviado app's evidence graph, one entry per biomarker (strongest edge), ordered by prior_weight (graph evidence weight 0-1, not a calibrated probability or effect size). Each entry has direction (up/down/bidirectional), goal/subgoal, has_verified_support / mixed_evidence, up to 3 PubMed IDs (pmids; URL template in coverage) with n_studies / rct_count, and dose (mean study dose {value, unit}: evidence context, not a dosing recommendation; see coverage.dose_note); null fields are omitted. Partial and non-exhaustive: a missing biomarker is not evidence of no effect. The supplement may be a name or an Aviado canonical_id (from search_supplements or a candidates list). Check status first: needs_confirmation / no_match means the input did not resolve, data is null and next_step says how to retry.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results (default 25, max 100) |
| supplement* | string | Supplement name (e.g., 'fish oil', 'curcumin', 'vitamin D3') |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"supplement"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Max results (default 25, max 100)"
},
"supplement": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Supplement name (e.g., 'fish oil', 'curcumin', 'vitamin D3')"
}
}
}All mixed interventions in Aviado's evidence graph that move a biomarker, each labelled with intervention_type: supplement, food_substance, prescription_drug, research_compound, research_nootropic, medical_compound, form_dependent, not_recommendable or unknown (omitted on plain recommendable supplement rows; see coverage.row_defaults). Rows that are not supplements are context, never a recommendation, and carry no dose or pathway details. Rows carry up to 3 PubMed IDs (pmids; URL template in coverage); optional direction (up/down) filters. graph_status (proven/suspected) is an internal eligibility label, not clinical validation; pathway_tags are raw graph metadata, not validated mechanisms. Coverage is partial and non-exhaustive; absence is not evidence of no effect (see coverage). The biomarker may be a name, an abbreviation, an Aviado id or a LOINC code (e.g. '4548-4'). Check status first: needs_confirmation / no_match means the input did not resolve, data is null and next_step says how to retry.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results (default 25, max 100) |
| biomarker* | string | Biomarker name, abbreviation, or LOINC code |
| direction | string | Only rows whose strongest edge moves the biomarker this way ('down' lowers it, 'up' raises it); bidirectional rows match neither |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"biomarker"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Max results (default 25, max 100)"
},
"biomarker": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Biomarker name, abbreviation, or LOINC code"
},
"direction": {
"enum": [
"up",
"down"
],
"type": "string",
"description": "Only rows whose strongest edge moves the biomarker this way ('down' lowers it, 'up' raises it); bidirectional rows match neither"
}
}
}Overview of one supplement: description, typical uses, its top 5 biomarkers (with up to 3 PubMed citations each), goals, mechanism tags and cited safety contraindications. Contraindications include those recorded for what it contains (e.g. turmeric shows curcumin's), labelled with recorded_for; only cited rows are shown, so an empty list is not proof of safety. For all biomarkers use get_biomarkers_for_supplement; for drug interactions use get_supplement_interactions. The supplement may be a name or an Aviado canonical_id (from search_supplements or a candidates list). Check status first: needs_confirmation / no_match means the input did not resolve, data is null and next_step says how to retry.
| Argument | Type | Description |
|---|---|---|
| supplement* | string | Supplement name |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"supplement"
],
"properties": {
"supplement": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Supplement name"
}
}
}Drug interactions come only from FDA drug labels and supplement-supplement ones only from Aviado's verified pairs; an empty result is not evidence that there is no interaction. Labels are thorough for some supplements and sparse or missing for most; read coverage.drug, and never treat an empty or short list as proof of safety. To check one medication pass drug (generic name; salt forms merged, so 'warfarin' matches 'warfarin sodium'; brand names are not matched). Also returns supplement-supplement interactions from Aviado's verified pairs only (synergies, antagonisms, absorption conflicts, timing), except on a drug check unless include_supplement_interactions is true. Interactions recorded for what the supplement contains are included and labelled: fish oil returns EPA, DHA and omega-3 interactions (interaction_sources, recorded_for). Drug entries are one per drug, most severe first, paged with drug_limit/drug_offset (drug_page.total, next_offset); label_artifact_suspected marks an entry whose drug name contains the supplement only as a salt (e.g. esomeprazole magnesium) and whose text does not mention it. Data-source failures return an error, never an empty list. The supplement may be a name or an Aviado canonical_id (from search_supplements or a candidates list). Check status first: needs_confirmation / no_match means the input did not resolve, data is null and next_step says how to retry.
| Argument | Type | Description |
|---|---|---|
| drug | string | Only return drug interactions for this drug: its generic name (e.g. 'warfarin', 'sertraline'), matched exactly with salt forms merged ('warfarin' matches 'warfarin sodium'); brand names are not matched. Supplement-supplement interactions are then omitted unless include_supplement_interactions is true |
| drug_limit | integer | Max drug interactions to return (default 20, max 200) |
Supplements in Aviado's evidence graph that move a biomarker (e.g. 'LDL cholesterol', 'HbA1c'). Lists only registry-classified supplements: entities Aviado's identity vocabulary types as supplement, class or combination and marks recommendable; prescription drugs, research compounds, foods and unknown ids are excluded (use get_interventions_for_biomarker for all of them). Each hit has direction (up/down/bidirectional), prior_weight (evidence confidence 0-1, not effect size), graph_status (proven/suspected: internal eligibility labels, not clinical verification), has_verified_support / mixed_evidence, and dose (mean study dose {value, unit}: evidence context, not a dosing recommendation; see coverage.dose_note). Rows carry up to 3 PubMed IDs (pmids; URL template in coverage) with n_studies / rct_count; optional direction (up/down) filters. Null fields and default typing (coverage.row_defaults) are omitted per row. Results are partial and non-exhaustive; pathway_tags are raw graph metadata, not validated mechanisms. The biomarker may be a name, an abbreviation, an Aviado id or a LOINC code (e.g. '4548-4'). Check status first: needs_confirmation / no_match means the input did not resolve, data is null and next_step says how to retry.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results (default 25, max 100) |
| biomarker* | string | Biomarker name, abbreviation, or LOINC code |
| direction | string | Only rows whose strongest edge moves the biomarker this way ('down' lowers it, 'up' raises it); bidirectional rows match neither |
Supplements associated with a health condition or goal (e.g. 'insomnia', 'anxiety', 'joint pain'), strongest evidence first. evidence_basis direct rows come from studies of the condition; biomarker_proxy rows are inferred from the supplement's effect on the named proxy_biomarkers (each backed by an effect the Aviado app shows), are hypotheses, and are graded at most D. Only recommendable supplements are listed by default (rows carry intervention_type, entity_type, regulatory_status and recommendable only where they differ from coverage.row_defaults; null fields are omitted); include_non_supplements lists prescription drugs and research compounds too, labelled, as context only. dose is a typical study dose {value, unit}: evidence context, not a dosing recommendation (coverage.dose_note). Partial: absence is not evidence a supplement does not help. A weak or ambiguous condition name returns needs_confirmation with candidate conditions; confirm one and pass its id. Check status first: needs_confirmation / no_match means the input did not resolve, data is null and next_step says how to retry.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max supplements to return, ranked by evidence (default: 25, max: 50) |
| condition* | string | Health condition, symptom, or goal (e.g., 'insomnia', 'anxiety', 'brain fog', 'joint pain') |
| min_grade | string | Minimum evidence grade to include (default: D = all) |
| include_non_supplements | boolean | Also list prescription drugs, research compounds and other non-recommendable entities, labelled (default false) |
Highest-quality brands for a supplement: one product per brand (its best), ranked by ProofMark, Aviado's product quality score (testing, ingredients, transparency, manufacturing, certifications). proofmark_100 is the 0-100 score (proofmark = proofmark_100/100) with a letter grade; proofmark_status is graded, below_coverage_floor (assessed but too little evidence to score; not a low score) or not_scored, and only graded products carry a score. Retired catalog products are excluded. match_basis says whether products matched the supplement identity or a text search (less precise; may include multi-ingredient products). price, retailer and product_url come from scraped listings and may be missing or stale. The supplement may be a name or an Aviado canonical_id (from search_supplements or a candidates list). Check status first: needs_confirmation / no_match means the input did not resolve, data is null and next_step says how to retry.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Number of results (max 20) |
| supplement* | string | Supplement name |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"supplement"
],
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 1,
"description": "Number of results (max 20)"
},
"supplement": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Supplement name"
}
}
}Find the condition id for a health condition, symptom or goal. Answers when the name matches one condition clearly (data.conditions lists it first, with up to 4 related suggestions); a weak or ambiguous name (e.g. 'blood pressure': high vs low) returns needs_confirmation with the suggestions in candidates. Ask the user which one they mean and pass its id as condition to get_supplements_for_condition.
| Argument | Type | Description |
|---|---|---|
| query* | string | Search query (e.g., 'sleep', 'anxiety', 'brain fog', 'joint pain') |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Search query (e.g., 'sleep', 'anxiety', 'brain fog', 'joint pain')"
}
}
}Find the Aviado id for a supplement name, exactly (no fuzzy matching). Answers with matches[0] = the identity: vocabulary_exact, or user_intent for salt/form names ('magnesium citrate' -> magnesium, with a form note). A name Aviado does not hold may be answered with a naming-model suggestion (match_type naming_slm_suggestion, identity false); confirm it with the user before using its id. Family names ('lithium') and confirm-only names return needs_confirmation with the members or candidates in candidates. Each match carries entity_type, regulatory_status and recommendable. Use mode='supplement_retail' only for raw retail product titles. Pass the confirmed canonical_id to the other supplement tools.
| Argument | Type | Description |
|---|---|---|
| mode | string | Explicit routing mode; retail titles require supplement_retail |
| query* | string | Supplement identity or raw retail product title |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"mode": {
"enum": [
"identity",
"supplement_retail"
],
"type": "string",
"default": "identity",
"description": "Explicit routing mode; retail titles require supplement_retail"
},
"query": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Supplement identity or raw retail product title"
}
}
}| supplement* |
| string |
| Supplement name |
| drug_offset | integer | Drug interactions to skip, for paging (use drug_page.next_offset) |
| include_drug_interactions | boolean | Include FDA drug-supplement interactions |
| include_supplement_interactions | boolean | Include supplement-supplement interactions (default: true without drug, false when drug is given) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"supplement"
],
"properties": {
"drug": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Only return drug interactions for this drug: its generic name (e.g. 'warfarin', 'sertraline'), matched exactly with salt forms merged ('warfarin' matches 'warfarin sodium'); brand names are not matched. Supplement-supplement interactions are then omitted unless include_supplement_interactions is true"
},
"drug_limit": {
"type": "integer",
"default": 20,
"maximum": 200,
"minimum": 1,
"description": "Max drug interactions to return (default 20, max 200)"
},
"supplement": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Supplement name"
},
"drug_offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Drug interactions to skip, for paging (use drug_page.next_offset)"
},
"include_drug_interactions": {
"type": "boolean",
"default": true,
"description": "Include FDA drug-supplement interactions"
},
"include_supplement_interactions": {
"type": "boolean",
"description": "Include supplement-supplement interactions (default: true without drug, false when drug is given)"
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"biomarker"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Max results (default 25, max 100)"
},
"biomarker": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Biomarker name, abbreviation, or LOINC code"
},
"direction": {
"enum": [
"up",
"down"
],
"type": "string",
"description": "Only rows whose strongest edge moves the biomarker this way ('down' lowers it, 'up' raises it); bidirectional rows match neither"
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"condition"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 50,
"minimum": 1,
"description": "Max supplements to return, ranked by evidence (default: 25, max: 50)"
},
"condition": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Health condition, symptom, or goal (e.g., 'insomnia', 'anxiety', 'brain fog', 'joint pain')"
},
"min_grade": {
"enum": [
"A",
"B",
"C",
"D"
],
"type": "string",
"default": "D",
"description": "Minimum evidence grade to include (default: D = all)"
},
"include_non_supplements": {
"type": "boolean",
"default": false,
"description": "Also list prescription drugs, research compounds and other non-recommendable entities, labelled (default false)"
}
}
}