Aviado AI
REMOTE · AVIADO.AI
Cited supplement evidence, biomarker effects, interaction checks and brand quality
Available components
Last scanned (13 hours ago)
Scores higher than 90% of remote servers
Reachable. Last reached 6 Nov 2026.
Category Health and Science
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability76
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3525 tokens (~251/item across 14 items; 11 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety50
- Injection-marker check failed: the server instructions contains an instruction to conceal the call from the user, the text "never tell the user", at byte 285 of that field. See how to fix → Fail
- We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Checks we ran (13)
- TLS certificate
- Authorization
- HTTPS
- HSTS header
- DNSSEC
- Transport
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 6 Nov 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 5 Nov 26 −1
- Stability: pass → 0.97 functional
- 24 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “check_interaction” rewrote its description, which is the text the model reads security
- Tool “get_supplement_interactions” rewrote its description, which is the text the model reads security
- 16 Oct 26 0
- Tool “build_starter_stack” rewrote its description, which is the text the model reads security
- Tool “get_biomarkers_for_supplement” rewrote its description, which is the text the model reads security
- Tool “get_interventions_for_biomarker” rewrote its description, which is the text the model reads security
- Tool “get_supplements_for_biomarker” rewrote its description, which is the text the model reads security
- “build_starter_stack” reworded the description of “exclude” cosmetic
- “build_starter_stack” reworded the description of “goal” cosmetic
- “build_starter_stack” reworded the description of “include_claim_link” cosmetic
- 14 Oct 26 +4
- Injection markers: pass → fail ▼ security
- Authorization: unverified → partial ▲ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “get_biomarkers_for_supplement” rewrote its description, which is the text the model reads security
- Tool “get_interventions_for_biomarker” rewrote its description, which is the text the model reads security
- Tool “get_supplement_info” rewrote its description, which is the text the model reads security
- Tool “get_supplement_interactions” rewrote its description, which is the text the model reads security
- Tool “get_supplements_for_biomarker” rewrote its description, which is the text the model reads security
- Tool “get_supplements_for_condition” rewrote its description, which is the text the model reads security
- Tool “get_top_brands” rewrote its description, which is the text the model reads security
- Tool “search_conditions” rewrote its description, which is the text the model reads security
- Tool “search_supplements” rewrote its description, which is the text the model reads security
- Schema quality: pass → fail ▼ functional
- First check of Schema quality: 100 functional
- New prompt “analyze_supplement” functional
- New prompt “check_my_stack” functional
- New prompt “what_moves_my_biomarker” functional
- New resource “coverage” functional
- New resource “glossary” functional
- New resource “methodology” functional
- New tool “build_starter_stack” functional
- New tool “check_interaction” functional
- “get_interventions_for_biomarker” added an optional parameter “direction” cosmetic
- “get_supplement_interactions” added an optional parameter “drug” cosmetic
- “get_supplement_interactions” added an optional parameter “drug_limit” cosmetic
- “get_supplement_interactions” added an optional parameter “drug_offset” cosmetic
- “get_supplement_interactions” added an optional parameter “include_supplement_interactions” cosmetic
- “get_supplements_for_biomarker” added an optional parameter “direction” cosmetic
- “get_supplements_for_condition” added an optional parameter “include_non_supplements” cosmetic
- Tool “get_biomarkers_for_supplement” changed its title: Biomarkers a supplement affects cosmetic
- Tool “get_interventions_for_biomarker” changed its title: All interventions for a biomarker cosmetic
- Tool “get_supplement_info” changed its title: Supplement overview and safety cosmetic
- Tool “get_supplement_interactions” changed its title: Supplement interactions (drugs and supplements) cosmetic
- Tool “get_supplements_for_biomarker” changed its title: Supplements for a biomarker cosmetic
- Tool “get_supplements_for_condition” changed its title: Supplements for a condition cosmetic
- Tool “get_top_brands” changed its title: Top brands by ProofMark cosmetic
- Tool “search_conditions” changed its title: Find a health condition cosmetic
- Tool “search_supplements” changed its title: Find a supplement cosmetic
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 6 Nov 2026 · Probed https://aviado.ai/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=aviado.ai | CN=YR1,O=Let's Encrypt,C=US | 2 Nov 2026 | 31 Jan 2027 | RSA 2048 | SHA256-RSA | 61f7fc1077aee4a2cb92df829c9ef35fa1b |
| SANs: aviado.ai | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of aviado.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | DS published | 1814, 3799 | 8, 8 | Verified |
| aviado.ai. | No DS | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains |
| content-security-policy | default-src 'none'; frame-ancestors 'none' |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=(), payment=(), usb=() |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://aviado.ai/api/mcp | Verified | 200 | |
| http (plaintext) | http://aviado.ai/api/mcp | HTTPS enforced | 308 | https://aviado.ai/api/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
build_starter_stack Build a starter stack ~331
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
| goal | string | yes | Goal, condition or biomarker (e.g. 'insomnia', 'LDL cholesterol') |
| include_claim_link | boolean | – | Opt in (default false): create a claim link, which stores a small record for 30 days (only when enabled) |
| max_items | integer | – | Stack size (default 3, max 5) |
No output schema declared.
No examples provided.
check_interaction Check an interaction ~215
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.
| Name | Type | Req | Description |
|---|---|---|---|
| a | string | yes | First supplement (name or canonical id) or medication (generic name) |
| b | string | yes | Second supplement (name or canonical id) or medication (generic name) |
No output schema declared.
No examples provided.
get_biomarkers_for_supplement Biomarkers a supplement affects ~249
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max results (default 25, max 100) |
| supplement | string | yes | Supplement name (e.g., 'fish oil', 'curcumin', 'vitamin D3') |
No output schema declared.
No examples provided.
get_interventions_for_biomarker All interventions for a biomarker ~306
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.
| Name | Type | Req | Description |
|---|---|---|---|
| biomarker | string | yes | 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 |
| limit | integer | – | Max results (default 25, max 100) |
No output schema declared.
No examples provided.
get_supplement_info Supplement overview and safety ~172
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.
| Name | Type | Req | Description |
|---|---|---|---|
| supplement | string | yes | Supplement name |
No output schema declared.
No examples provided.
get_supplement_interactions Supplement interactions (drugs and supplements) ~481
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.
| Name | Type | Req | 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 match… |
| drug_limit | integer | – | Max drug interactions to return (default 20, max 200) |
| 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) |
| supplement | string | yes | Supplement name |
No output schema declared.
No examples provided.
get_supplements_for_biomarker Supplements for a biomarker ~367
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.
| Name | Type | Req | Description |
|---|---|---|---|
| biomarker | string | yes | 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 |
| limit | integer | – | Max results (default 25, max 100) |
No output schema declared.
No examples provided.
get_supplements_for_condition Supplements for a condition ~336
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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition | string | yes | Health condition, symptom, or goal (e.g., 'insomnia', 'anxiety', 'brain fog', 'joint pain') |
| include_non_supplements | boolean | – | Also list prescription drugs, research compounds and other non-recommendable entities, labelled (default false) |
| limit | integer | – | Max supplements to return, ranked by evidence (default: 25, max: 50) |
| min_grade | string | – | Minimum evidence grade to include (default: D = all) |
No output schema declared.
No examples provided.
get_top_brands Top brands by ProofMark ~233
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of results (max 20) |
| supplement | string | yes | Supplement name |
No output schema declared.
No examples provided.
search_conditions Find a health condition ~118
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.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Search query (e.g., 'sleep', 'anxiety', 'brain fog', 'joint pain') |
No output schema declared.
No examples provided.
search_supplements Find a supplement ~188
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.
| Name | Type | Req | Description |
|---|---|---|---|
| mode | string | – | Explicit routing mode; retail titles require supplement_retail |
| query | string | yes | Supplement identity or raw retail product title |
No output schema declared.
No examples provided.
How do I install the Aviado AI MCP server?
Aviado AI is a hosted endpoint at https://aviado.ai/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · aviado.ai
claude mcp add --transport http ai-aviado-health 'https://aviado.ai/api/mcp'
What is the Aviado AI MCP server?
Aviado AI is an MCP server listed in the public MCP registry as ai.aviado/health. Cited supplement evidence, biomarker effects, interaction checks and brand quality. This page covers its hosted endpoint (https://aviado.ai/api/mcp).
Is the Aviado AI MCP server safe to use?
Aviado AI scores 85 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Aviado AI MCP server expose?
Aviado AI exposes 11 tools: get_supplements_for_biomarker, get_interventions_for_biomarker, get_biomarkers_for_supplement, get_supplement_info, get_supplement_interactions, and 6 more. Their descriptions and schemas cost roughly 2,996 tokens of context every time the server is loaded.
Does the Aviado AI MCP server require authentication?
No. We connected to Aviado AI without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Aviado AI MCP server still maintained?
Aviado AI is still listed as active in the MCP registry. We last reached this channel on 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the Aviado AI MCP server?
VerifyMCP ran 13 checks on Aviado AI, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.