Constat MCP — FDA Device Evidence Lifecycle
REMOTE · CONSTAT.DEV · SCANNED AUG 3
FDA and CMS evidence for AI medical devices: 510(k), postmarket, reimbursement, and compliance.
Available components
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 →
Endpoint Security74
- 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. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- 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 Usability71
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1916 tokens (~136/item across 14 items; 14 tools + 0 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 Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage96
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 85% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · constat.dev
claude mcp add --transport http com-healthai-radar https://constat.dev/api/mcp
[mcp_servers.com-healthai-radar] url = "https://constat.dev/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-healthai-radar": {
"type": "remote",
"url": "https://constat.dev/api/mcp",
"enabled": true
}
}
} openclaw mcp add com-healthai-radar --url https://constat.dev/api/mcp --transport streamable-http
mcp_servers:
com-healthai-radar:
url: "https://constat.dev/api/mcp" {
"mcpServers": {
"com-healthai-radar": {
"type": "http",
"url": "https://constat.dev/api/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 2 Aug 26 +5
- HTTPS: unverified → pass ▲ security
- 1 Aug 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
- 31 Jul 26 −2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +5
- Authorization: unverified → partial ▲ security
- Tool “reimbursement_stats” now declares an output schema ▲ functional
- Tool “vehicle_risk_lookup” now declares an output schema ▲ functional
- Tool “watchlist_diff” now declares an output schema ▲ functional
- Tool “cohort_postmarket_stats” now declares an output schema ▲ functional
- Tool “device_evidence_lookup” now declares an output schema ▲ functional
- Tool “device_postmarket_lookup” now declares an output schema ▲ functional
- Tool “device_risk_lookup” now declares an output schema ▲ functional
- Tool “evidence_cohort_stats” now declares an output schema ▲ functional
- Tool “evidence_search” now declares an output schema ▲ functional
- Tool “firm_compliance_history” now declares an output schema ▲ functional
- Tool “postmarket_search” now declares an output schema ▲ functional
- Tool “predicate_chain” now declares an output schema ▲ functional
- Tool “reimbursement_lookup” now declares an output schema ▲ functional
- Tool “reimbursement_search” now declares an output schema ▲ functional
- First check of Tool coverage: 100 functional
- Server version: 0.5.2 → 0.5.3 functional
- Server version: 0.5.0 → 0.5.2 functional
- Tool “reimbursement_stats” changed its title: Summarize Reimbursement Cohort cosmetic
- Tool “vehicle_risk_lookup” changed its title: Look Up Vehicle Safety History cosmetic
- Tool “watchlist_diff” changed its title: Poll Watchlist Changes cosmetic
- Tool “cohort_postmarket_stats” changed its title: Summarize Postmarket Cohort cosmetic
- Tool “device_evidence_lookup” changed its title: Look Up Device Evidence cosmetic
- Tool “device_postmarket_lookup” changed its title: Look Up Device Postmarket Signals cosmetic
- Tool “device_risk_lookup” changed its title: Review Device Category Risk Signals cosmetic
- Tool “evidence_cohort_stats” changed its title: Summarize Evidence Cohort cosmetic
- Tool “evidence_search” changed its title: Search Device Evidence cosmetic
- Tool “firm_compliance_history” changed its title: Review Firm Compliance History cosmetic
- Tool “postmarket_search” changed its title: Search Postmarket Signals cosmetic
- Tool “predicate_chain” changed its title: Trace Predicate Chain cosmetic
- Tool “reimbursement_lookup” changed its title: Look Up Reimbursement Pathways cosmetic
- Tool “reimbursement_search” changed its title: Search Reimbursement Pathways cosmetic
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 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 Jul 26 59
First indexed and scored.
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 3 Aug 2026 · Probed https://constat.dev/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=constat.dev | CN=WE1,O=Google Trust Services,C=US | 11 Jul 2026 | 9 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 303bdaf1349e884513eb268b24e80ae5 |
| SANs: constat.dev, www.constat.dev, *.www.constat.dev | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of constat.dev. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| dev. | present | 60074 | 8 | Verified |
| constat.dev. | absent | 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 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://constat.dev/api/mcp | Verified | 200 | |
| http (plaintext) | http://constat.dev/api/mcp | HTTPS enforced | 301 | https://constat.dev/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.
cohort_postmarket_stats Summarize Postmarket Cohort ~89
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.
| Name | Type | Req | Description |
|---|---|---|---|
| panel | string | — | Advisory panel, e.g. Radiology; omit for all |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
device_evidence_lookup Look Up Device Evidence ~110
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.
| Name | Type | Req | Description |
|---|---|---|---|
| k_number | string | yes | 510(k) or De Novo number, e.g. K252148 or DEN180001 |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
device_postmarket_lookup Look Up Device Postmarket Signals ~123
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.
| Name | Type | Req | Description |
|---|---|---|---|
| k_number | string | yes | 510(k) or De Novo number, e.g. K252148 or DEN180001 |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
device_risk_lookup Review Device Category Risk Signals ~87
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.
| Name | Type | Req | Description |
|---|---|---|---|
| product_code | string | yes | FDA product code, e.g. FRN |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
evidence_cohort_stats Summarize Evidence Cohort ~121
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.
| Name | Type | Req | Description |
|---|---|---|---|
| panel | string | — | Advisory panel, e.g. Radiology; omit for all |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
evidence_search Search Device Evidence ~210
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 matching records with their parsed evidence. Presence flags are descriptive: 'reports a sensitivity metric' is not 'reports a comparable sensitivity' — analysis units differ across devices.
| Name | Type | Req | Description |
|---|---|---|---|
| applicant | string | — | Substring match on applicant/company name |
| has_clinical_data | boolean | — | — |
| has_pccp | boolean | — | Included a Predetermined Change Control Plan |
| limit | integer | — | — |
| panel | string | — | Advisory panel, e.g. Radiology |
| product_code | string | — | FDA product code, e.g. QAS |
| reports_any_sensitivity_metric | boolean | — | Reported any sensitivity metric (canonical — includes per-finding sensitivities, not just the top-level slot). Not a claim of cross-device comparability. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
firm_compliance_history Review Firm Compliance History ~200
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.
| Name | Type | Req | Description |
|---|---|---|---|
| fei_numbers | array | — | Optional exact FDA FEI numbers; improves Form 483 attribution. |
| firm_name | string | yes | FDA applicant or company name, e.g. 'Medtronic' |
| limit | integer | — | Maximum records per source and events in the timeline (default 50). |
| product_codes | array | — | Optional FDA product-code scope. When omitted, Constat discovers codes from applicant matches in its device corpus. |
| since | string | — | Earliest event date, YYYY-MM-DD. Defaults to five years ago. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
postmarket_search Search Postmarket Signals ~225
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.
| Name | Type | Req | Description |
|---|---|---|---|
| applicant | string | — | Substring match on applicant/company name |
| has_drift_signal | boolean | — | — |
| limit | integer | — | — |
| maude_trend_up | boolean | — | Code-level MAUDE trend above its own 3-year baseline |
| min_recalls_24mo | integer | — | Product-code recalls in trailing 24 months |
| panel | string | — | Advisory panel, e.g. Radiology |
| product_code | string | — | FDA product code, e.g. QIH |
| signal_specificity | string | — | Restrict the drift-signal filter to one tier: 'device' = attributable to this device (own line re-cleared, own applicant's recall, predicate neighbors) — the high-signal tier; 'product_code' = observ… |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
predicate_chain Trace Predicate Chain ~92
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.
| Name | Type | Req | Description |
|---|---|---|---|
| depth | integer | — | Max ancestry depth (default 4) |
| k_number | string | yes | 510(k) or De Novo number, e.g. K252148 or DEN180001 |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
reimbursement_lookup Look Up Reimbursement Pathways ~184
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cpt_code | string | — | Bare CPT code, e.g. 75580 or 0932T |
| k_number | string | — | FDA clearance number, e.g. DEN170073 or K252148 |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
reimbursement_search Search Reimbursement Pathways ~157
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).
| Name | Type | Req | Description |
|---|---|---|---|
| applicant | string | — | Substring match on device maker / applicant name |
| cpt_category | string | — | CPT category |
| has_cms_rate | boolean | — | Only pathways with a known CMS dollar rate |
| limit | integer | — | — |
| mechanism | string | — | Payment mechanism |
| ntap_status | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
reimbursement_stats Summarize Reimbursement Cohort ~84
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
vehicle_risk_lookup Look Up Vehicle Safety History ~85
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).
| Name | Type | Req | Description |
|---|---|---|---|
| make | string | yes | e.g. honda |
| model | string | yes | e.g. civic |
| year | string | yes | model year, e.g. 2020 |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.
watchlist_diff Poll Watchlist Changes ~149
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Maximum changes to return (default 100). |
| product_codes | array | — | FDA product codes to poll. Omit for the default Radar watchlist. |
| since | string | — | Return changes on or after this ISO date or UTC timestamp. Defaults to the last seven days; pass the prior response's next_since for exact polling. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| message | string | — | — |
| status | string | yes | — |
No examples provided.