Skip to content

Constat MCP — FDA Device Evidence Lifecycle

by healthai.com · remote · no sign-in to list tools · v0.5.3 · published by com.healthai

FDA and CMS evidence for AI medical devices: 510(k), postmarket, reimbursement, and compliance.

Changes · 14

14 tools: 14 change things.

Scanned Oct 21, 2026

8 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http radar https://constat.dev/api/mcp

Findings

Matches of fixed checks, with the text they matched.

8 warn
  • The server marks "device_risk_lookup" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "device_risk_lookup" says "lookup": a word for reading.

    What this check looks for
  • The server marks "watchlist_diff" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "watchlist_diff" says "diff": a word for reading.

    What this check looks for
  • The server marks "device_evidence_lookup" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "device_evidence_lookup" says "lookup": a word for reading.

    What this check looks for
  • The server marks "evidence_search" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "evidence_search" says "search": a word for reading.

    What this check looks for
  • The server marks "postmarket_search" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "postmarket_search" says "search": a word for reading.

    What this check looks for
  • The server marks "reimbursement_lookup" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "reimbursement_lookup" says "lookup": a word for reading.

    What this check looks for
Show 2 more findings
  • The server marks "reimbursement_search" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "reimbursement_search" says "search": a word for reading.

    What this check looks for
  • The server marks "vehicle_risk_lookup" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "vehicle_risk_lookup" says "lookup": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

14 tools

Changes things 14Claude Code: ask
  • cohort_postmarket_statsPostmarket presence rates across the snapshotted AI/ML device cohort (optionally by panel): share with any recall in 24 months, with a rising MAUDE trend, with any drift signal, wi…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
    Postmarket presence rates across the snapshotted AI/ML device cohort (optionally by panel): share with any recall in 24 months, with a rising MAUDE trend, with any drift signal, with a warning-letter match — every rate with its denominator inline, never pooled across devices.

    Annotations the server declares

    • title: Summarize Postmarket Cohort
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • device_evidence_lookupLook up the structured premarket evidence FDA accepted for a specific AI/ML-enabled device by 510(k) number (e.g.1 finding

    Why it is in this group

    • The name "device_evidence_lookup" says "lookup": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "device_evidence_lookup" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "device_evidence_lookup" says "lookup": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Look up the structured premarket evidence FDA accepted for a specific AI/ML-enabled device by 510(k) number (e.g. K252148). Returns parsed summary fields — validation study design, sample sizes, endpoints, reported performance, predicate chain, PCCP — each with a verbatim source quote and page. Null means the summary did not state it.

    Annotations the server declares

    • title: Look Up Device Evidence
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • device_postmarket_lookupPost-clearance intelligence for one AI/ML device by 510(k) number: its product code's recalls, MAUDE adverse-event level and trend, warning-letter and 483 matches for the applicant…No findings

    Why it is in this group

    • The name "device_postmarket_lookup" says "lookup": a word for reading.
    • The description's first verb is "post": a word for a change.
    Description, as the server wrote it
    Post-clearance intelligence for one AI/ML device by 510(k) number: its product code's recalls, MAUDE adverse-event level and trend, warning-letter and 483 matches for the applicant, plus per-device drift signals (adverse-event inflection, re-clearances of the same device line, software-recall patterns, predicate-cohort recall activity). Descriptive observables with sources — never a safety judgment.

    Annotations the server declares

    • title: Look Up Device Postmarket Signals
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • device_risk_lookupReview a medical-device category's public FDA signals by three-letter product code (e.g.1 finding

    Why it is in this group

    • The name "device_risk_lookup" says "lookup": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "device_risk_lookup" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "device_risk_lookup" says "lookup": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Review a medical-device category's public FDA signals by three-letter product code (e.g. FRN = infusion pump). Returns recalls, MAUDE adverse-event trend, warning-letter matches, a normalized category signal, its driver contributions, and interpretation limits. It does not predict enforcement against a firm.

    Annotations the server declares

    • title: Review Device Category Risk Signals
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • evidence_cohort_statsReporting-rate stats across the parsed AI/ML corpus (optionally by panel).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
    Reporting-rate stats across the parsed AI/ML corpus (optionally by panel). Each rate is a presence figure with its denominator — 'reported in X of Y audited devices' — never a pooled performance value. Excludes not-yet-parsed devices from every denominator and discloses the parse queue separately. Predicate age (median years between a clearance and its cited predicates) is included when decision-date coverage clears a 60% floor, and withheld otherwise.

    Annotations the server declares

    • title: Summarize Evidence Cohort
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • firm_compliance_historyBuild a recent, source-bounded FDA public-record timeline for a device firm: matched recalls, warning letters, and Form 483 citations where exact FEI numbers are available.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
    Build a recent, source-bounded FDA public-record timeline for a device firm: matched recalls, warning letters, and Form 483 citations where exact FEI numbers are available. Product codes are discovered from Constat's AI/ML-device corpus or may be supplied explicitly. Returns attribution and coverage limits with the records; it is not a finding of noncompliance or a prediction of FDA action.

    Annotations the server declares

    • title: Review Firm Compliance History
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • predicate_chainTrace the predicate ancestry of a 510(k) device, with each cited predicate's age (how many years old the predicate was when the child cleared).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
    Trace the predicate ancestry of a 510(k) device, with each cited predicate's age (how many years old the predicate was when the child cleared). Reveals how AI/ML devices chain to older predicates.

    Annotations the server declares

    • title: Trace Predicate Chain
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • reimbursement_lookupTrace the clearance-to-payment pathway for an AI/ML device by FDA clearance number (K/DEN, e.g.1 finding

    Why it is in this group

    • The name "reimbursement_lookup" says "lookup": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "reimbursement_lookup" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "reimbursement_lookup" says "lookup": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Trace the clearance-to-payment pathway for an AI/ML device by FDA clearance number (K/DEN, e.g. DEN170073) OR bare CPT code (e.g. 75580). Returns every payment mechanism (NTAP add-on, Category I/III CPT + CMS rate, HCPCS, MAC LCD) with amounts, effective dates, and source links, plus any commercial/MAC payer coverage policies that reference the clearance or its codes. Answers 'who got paid, how much, through which mechanism, on what basis.' CPT codes are bare factual identifiers only — no procedure descriptors; follow the CMS source link for the official descriptor.

    Annotations the server declares

    • title: Look Up Reimbursement Pathways
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • reimbursement_statsDistribution of payment mechanisms across the AI/ML reimbursement corpus — pathway and distinct-device counts per mechanism (NTAP, Cat I, Cat III/APC, …) with the min/median/max do…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
    Distribution of payment mechanisms across the AI/ML reimbursement corpus — pathway and distinct-device counts per mechanism (NTAP, Cat I, Cat III/APC, …) with the min/median/max dollar amounts for each. Deliberately never a single pooled 'reimbursement rate': NTAP add-on amounts and CMS rates are different measurements and are reported separately with their own spreads.

    Annotations the server declares

    • title: Summarize Reimbursement Cohort
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • vehicle_risk_lookupLook up NHTSA safety history for a vehicle by make, model, and model year.1 finding

    Why it is in this group

    • The name "vehicle_risk_lookup" says "lookup": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "vehicle_risk_lookup" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "vehicle_risk_lookup" says "lookup": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Look up NHTSA safety history for a vehicle by make, model, and model year. Returns recall campaigns and complaint statistics (crashes, fires, injuries, top components).

    Annotations the server declares

    • title: Look Up Vehicle Safety History
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • watchlist_diffReturn machine-generated FDA public-record changes detected for monitored product codes since a caller-supplied date, plus each code's latest category snapshot and postmarket cover…1 finding

    Why it is in this group

    • The name "watchlist_diff" says "diff": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "watchlist_diff" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "watchlist_diff" says "diff": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Return machine-generated FDA public-record changes detected for monitored product codes since a caller-supplied date, plus each code's latest category snapshot and postmarket coverage. Defaults to Constat Radar's five-code watchlist and the last seven days. Analyst verdict text and internal review status are excluded; use next_since as the next polling cursor.

    Annotations the server declares

    • title: Poll Watchlist Changes
    • readOnlyHint: false
    • destructiveHint: false
    • 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.5.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http radar https://constat.dev/api/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [],
    "ask": [
      "mcp__radar__device_risk_lookup",
      "mcp__radar__firm_compliance_history",
      "mcp__radar__watchlist_diff",
      "mcp__radar__device_evidence_lookup",
      "mcp__radar__evidence_search",
      "mcp__radar__predicate_chain",
      "mcp__radar__evidence_cohort_stats",
      "mcp__radar__device_postmarket_lookup",
      "mcp__radar__postmarket_search",
      "mcp__radar__cohort_postmarket_stats",
      "mcp__radar__reimbursement_lookup",
      "mcp__radar__reimbursement_search",
      "mcp__radar__reimbursement_stats",
      "mcp__radar__vehicle_risk_lookup"
    ],
    "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 radar. Review it before you use it.