Aviado AI
by aviado.ai · remote · no sign-in to list tools · v0.3.0 · published by ai.aviado
Cited supplement evidence, biomarker effects, interaction checks and brand quality
11 tools: 2 change things and 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads9Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http health https://aviado.ai/api/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
11 tools
Changes things 2Claude Code: ask
build_starter_stackStarter stack (default 3, max 5) of recommendable supplements for a goal (e.g.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote 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.
Annotations the server declares
- title: Build a starter stack
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
check_interactionPoint 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).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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 curated interactions (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: absence of a record is not evidence of safety, so read coverage 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.
Annotations the server declares
- title: Check an interaction
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 9Claude Code: allow
get_biomarkers_for_supplementBiomarkers 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 pro…No findings
Why it is in this group
- The name "get_biomarkers_for_supplement" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Biomarkers a supplement affects
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_interventions_for_biomarkerAll mixed interventions in Aviado's evidence graph that move a biomarker, each labelled with intervention_type: supplement, food_substance, prescription_drug, research_compound, re…No findings
Why it is in this group
- The name "get_interventions_for_biomarker" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: All interventions for a biomarker
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_supplement_infoOverview of one supplement: description, typical uses, its top 5 biomarkers (with up to 3 PubMed citations each), goals, mechanism tags and cited safety contraindications.No findings
Why it is in this group
- The name "get_supplement_info" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Supplement overview and safety
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_supplement_interactionsDrug interactions come only from FDA drug labels: thorough for supplements labels name often (St.No findings
Why it is in this group
- The name "get_supplement_interactions" says "get": a word for reading.
Description, as the server wrote it Drug interactions come only from FDA drug labels: thorough for supplements labels name often (St. John's wort, grapefruit, magnesium, ginkgo) and sparse or missing for most others (e.g. fish oil, vitamin K, berberine, ashwagandha); 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 curated supplement-supplement interactions (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, turmeric returns curcumin's (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.
Annotations the server declares
- title: Supplement interactions (drugs and supplements)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_supplements_for_biomarkerSupplements in Aviado's evidence graph that move a biomarker (e.g.No findings
Why it is in this group
- The name "get_supplements_for_biomarker" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Supplements for a biomarker
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_supplements_for_conditionSupplements associated with a health condition or goal (e.g.No findings
Why it is in this group
- The name "get_supplements_for_condition" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Supplements for a condition
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_top_brandsHighest-quality brands for a supplement: one product per brand (its best), ranked by ProofMark, Aviado's product quality score (testing, ingredients, transparency, manufacturing, c…No findings
Why it is in this group
- The name "get_top_brands" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Top brands by ProofMark
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_conditionsFind the condition id for a health condition, symptom or goal.No findings
Why it is in this group
- The name "search_conditions" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Find a health condition
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_supplementsFind the Aviado id for a supplement name, exactly (no fuzzy matching).No findings
Why it is in this group
- The name "search_supplements" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Find a supplement
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.3.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http health https://aviado.ai/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__health__get_supplements_for_biomarker",
"mcp__health__get_interventions_for_biomarker",
"mcp__health__get_biomarkers_for_supplement",
"mcp__health__get_supplement_info",
"mcp__health__get_supplement_interactions",
"mcp__health__get_top_brands",
"mcp__health__search_supplements",
"mcp__health__search_conditions",
"mcp__health__get_supplements_for_condition"
],
"ask": [
"mcp__health__check_interaction",
"mcp__health__build_starter_stack"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as health. Review it before you use it.