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.
14 tools: 14 change things.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things14Claude Code: ask: see these tools
- Only reads0Claude Code: allow
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/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "device_risk_lookup" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "device_risk_lookup" says "lookup": a word for reading.
- Warnwatchlist_diff
The server marks "watchlist_diff" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "watchlist_diff" says "diff": a word for reading.
The server marks "device_evidence_lookup" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "device_evidence_lookup" says "lookup": a word for reading.
- Warnevidence_search
The server marks "evidence_search" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "evidence_search" says "search": a word for reading.
The server marks "postmarket_search" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "postmarket_search" says "search": a word for reading.
The server marks "reimbursement_lookup" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "reimbursement_lookup" says "lookup": a word for reading.
Show 2 more findingsShow fewer
The server marks "reimbursement_search" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "reimbursement_search" says "search": a word for reading.
The server marks "vehicle_risk_lookup" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "vehicle_risk_lookup" says "lookup": a word for reading.
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.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "device_evidence_lookup" says "lookup": a word for reading.
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.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "device_risk_lookup" says "lookup": a word for reading.
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
evidence_searchFind AI/ML device clearances by filter — product code, panel, applicant, and whether the submission reported clinical data, any sensitivity metric, or a PCCP.1 finding
Why it is in this group
- The name "evidence_search" says "search": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "evidence_search" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "evidence_search" says "search": a word for reading.
Description, as the server wrote it Find AI/ML device clearances by filter — product code, panel, applicant, and whether the submission reported clinical data, any sensitivity metric, or a PCCP. Answers 'what evidence did FDA accept for devices like mine'. Returns bounded discovery summaries; call device_evidence_lookup with a result's K-number for the full source-quoted FDA record. Presence flags are descriptive: 'reports a sensitivity metric' is not 'reports a comparable sensitivity' — analysis units differ across devices.
Annotations the server declares
- title: Search Device Evidence
- 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
postmarket_searchFind AI/ML devices by postmarket criteria — product code, panel, applicant, whether any drift signal exists, minimum recalls in 24 months, or a rising MAUDE trend.1 finding
Why it is in this group
- The name "postmarket_search" says "search": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "postmarket_search" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "postmarket_search" says "search": a word for reading.
Description, as the server wrote it Find AI/ML devices by postmarket criteria — product code, panel, applicant, whether any drift signal exists, minimum recalls in 24 months, or a rising MAUDE trend. Returns per-device postmarket summaries with drift-signal counts.
Annotations the server declares
- title: Search Postmarket Signals
- 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.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "reimbursement_lookup" says "lookup": a word for reading.
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_searchFind AI/ML device payment pathways by mechanism — e.g.1 finding
Why it is in this group
- The name "reimbursement_search" says "search": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "reimbursement_search" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "reimbursement_search" says "search": a word for reading.
Description, as the server wrote it Find AI/ML device payment pathways by mechanism — e.g. 'devices that got NTAP', 'devices paid under a Category I CPT code', 'pathways with a known CMS dollar rate'. Filters: mechanism, CPT category, NTAP status, applicant. Returns pathways with amounts, effective dates, and sources. Use reimbursement_stats for the mechanism distribution (never a single pooled reimbursement rate).
Annotations the server declares
- title: Search 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.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "vehicle_risk_lookup" says "lookup": a word for reading.
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.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "watchlist_diff" says "diff": a word for reading.
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/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .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.