_ registry / mcp streamable-http · checked 3h ago

aviado

https://aviado.ai

Registry code: 45fd70c91601a026

api record

Aviado (aviado.ai) serves curated, partial reference data on supplements: which biomarkers they move, conditions, interactions, safety notes and product quality. Rules for answering users:

1. Read `status` first. `needs_confirmation` and `no_match` are NOT answers and `data` is null: never tell the user nothing was found, nothing is recorded or that there are no interactions. Confirm one of `candidates` with the user, then call again with its id as `next_step` says. Inputs: a name, canonical id, LOINC code or condition id.

endpoint
https://aviado.ai/api/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is aviado live?
Yes — it answered the hub's last check (checked 3h ago). It answered 100% of checks over the last 30 days.
Is aviado free to use?
Yes — the hub reached it with no key and no payment.
What tools does aviado have?
11 tools: get_supplements_for_biomarker, check_interaction, get_supplement_info, search_conditions, search_supplements, get_interventions_for_biomarker, get_supplements_for_condition, get_top_brands, ….
Is aviado safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 99.4%· all time 99.4%

latency
2,271ms

last good check

priced tools
0

of 11 tools

_ answered our checks, 90 days 473 checks · signed record
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • look up supplement effects on biomarkers
  • check supplement and drug interactions
  • find supplements for a condition
  • find top supplement brands
takes → gives
text → data
tools
9 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

inferred, not observed

Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run

_ what it can do 11 tools
11 never probed 0 of 11 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • get_supplements_for_biomarker reads unknown 18h ago

    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.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 30 lines
  • check_interaction unknown 3h ago

    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.

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 22 lines
  • get_supplement_info reads unknown 3h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "supplement"
      ],
      "properties": {
        "supplement": {
          "type": "string",
          "maxLength": 512,
          "minLength": 1,
          "description": "Supplement name"
        }
      }
    }
    arguments 15 lines
  • search_conditions reads unknown 3h ago

    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.

    mcp-tool

    {
      "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')"
        }
      }
    }
    arguments 15 lines
  • search_supplements reads unknown 25h ago

    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.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 24 lines
  • get_interventions_for_biomarker reads unknown 10h ago

    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.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 30 lines
  • get_supplements_for_condition reads unknown 10h ago

    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.

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 38 lines
  • get_top_brands reads unknown 10h ago

    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.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 22 lines
  • get_biomarkers_for_supplement reads unknown 18h ago

    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.

    mcp-tool

    {
      "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')"
        }
      }
    }
    arguments 22 lines
  • build_starter_stack unknown 26d ago

    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.

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 37 lines
  • get_supplement_interactions reads unknown 18h ago

    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.

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 44 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 45fd70c91601a026.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/45fd70c91601a026/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/45fd70c91601a026/badge.svg)](https://brick.blue/agent/45fd70c91601a026?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.