Skip to main content
Glama

Constat — 483 Risk Radar (MCP server)

MCP Queen grade

The MCP server behind Constat — FDA & NHTSA regulatory-risk intelligence for AI agents, over the Model Context Protocol. Live public regulatory data — recalls, adverse events, warning letters, 510(k) premarket evidence, postmarket drift signals, reimbursement pathways, and vehicle safety. Decision support, not regulatory advice.

  • Endpoint: https://constat.dev/api/mcp (legacy https://radar.healthai.com/api/mcp still serves)

  • Transport: Streamable HTTP (JSON-RPC 2.0)

  • Auth: none for anonymous access (10 work units/min and 50/day per anonymous source); an optional X-API-Key header enables the separately assigned metered allowance. Tool calls have documented work-unit costs.

  • Registry: com.healthai/radar (official MCP registry)

The evidence corpus and tool logic run hosted at the endpoint above. This repo also ships server.mjs, a zero-dependency stdio bridge to that endpoint, so stdio-only MCP clients can use the server like any local one:

node server.mjs            # stdio MCP server, bridges to constat.dev/api/mcp
// e.g. in an MCP client config
{ "mcpServers": { "constat": { "command": "node", "args": ["/path/to/server.mjs"] } } }
docker build -t constat-mcp . && docker run -i constat-mcp   # same, containerized

Tools

Tool

What it does

device_risk_lookup

FDA compliance risk for a device category by 3-letter product code — recalls, MAUDE trend, warning-letter matches, composite score

firm_compliance_history

Source-bounded FDA public-record timeline for a device firm — recalls, warning letters, 483s, clearances

watchlist_diff

Machine-detected FDA public-record changes for monitored product codes since a given date

device_evidence_lookup

Parsed 510(k) premarket evidence for an AI/ML device, each field with a verbatim source quote + page

evidence_search

Find AI/ML clearances by product code, panel, applicant, clinical data, sensitivity metric, or PCCP

predicate_chain

Trace a device's predicate ancestry with each predicate's age at clearance

evidence_cohort_stats

Reporting-rate stats across the parsed AI/ML corpus — presence figures with denominators

device_postmarket_lookup

Post-clearance intelligence for one device — recalls, MAUDE trend, letter/483 matches, drift signals

postmarket_search

Find devices by postmarket criteria — drift signals, recalls in 24mo, rising MAUDE trend

cohort_postmarket_stats

Postmarket presence rates across the AI/ML cohort, each with its denominator

reimbursement_lookup

Clearance-to-payment pathway by K/DEN or CPT code — NTAP, Cat I/III, CMS rates, HCPCS, LCDs

reimbursement_search

Find payment pathways by mechanism, CPT category, NTAP status, applicant

reimbursement_stats

Mechanism distribution across the reimbursement corpus with dollar ranges

vehicle_risk_lookup

NHTSA safety history by make/model/year — recall campaigns and complaint stats

Related MCP server: fedramp-docs-mcp

Quick start

curl -s https://constat.dev/api/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"device_risk_lookup","arguments":{"product_code":"FRN"}}}'

List tools with {"method":"tools/list"}. Note the Accept header must include text/event-stream (streamable-HTTP requirement).

Each of the 14 tools declares an output schema. Tool calls return structured content with an explicit ok, not_found, invalid_request, or unavailable status while preserving a text result for older clients.

The tools are observational and non-destructive, but advertise readOnlyHint: false because calls write bounded quota and operational- telemetry state. They do not publish or modify FDA, CMS, NHTSA, or other third-party records.

See the integration guide, architecture and trust boundaries, privacy notice, and support page.

  • Clarity MCP — condition-aware ingredient, product & supplement safety (verdict + evidence tier + citation).

  • MCP Queen — the graded MCP registry that independently probes and grades this server.

About

Built by Health AI, the team behind Constat. Informational only; verify against primary FDA/NHTSA sources.

License

MIT — see LICENSE.

Available Tools

14 tools
cohort_postmarket_statsBInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
panelNoAdvisory panel, e.g. Radiology; omit for all

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that rates are per-device with denominator inline and based on a snapshotted cohort. However, it does not mention authentication, rate limits, data freshness, or side effects. The disclosure is helpful but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the main purpose. It is efficient but somewhat dense due to the colon and dash. Every phrase adds value, though readability could be improved slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one optional parameter and no output schema, the description explains the output metrics and denominator policy. However, it does not cover data source, update frequency, or interpretation guidance. For a statistical tool, additional context would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single optional parameter 'panel', with a description already stating 'Advisory panel, e.g. Radiology; omit for all'. The description adds 'optionally by panel' which aligns with schema, but provides no extra semantic detail beyond what the schema offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it computes postmarket presence rates for an AI/ML device cohort, listing specific metrics (recall, MAUDE trend, drift signal, warning-letter match). It specifies the resource and action, though it doesn't explicitly differentiate from sibling tools like device_postmarket_lookup or evidence_cohort_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies cohort-level analysis, but does not mention exclusions or provide comparison with sibling tools such as device_postmarket_lookup for individual devices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

device_evidence_lookupAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
k_numberYes510(k) or De Novo number, e.g. K252148 or DEN180001

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description fully bears the burden. It discloses that the tool returns parsed summary fields with source quotes and page numbers, and clarifies that null means the information was not stated. This is sufficient for a safe, read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. The first sentence states the purpose and input, the second explains the output and null behavior. Every sentence adds unique information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple one-parameter input and no output schema, the description adequately covers the output structure (list of fields) and special cases (null). Minor gaps include lack of error handling or authentication details, but these are not critical for this lookup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema defines the k_number parameter with pattern and description. The description adds value by providing an example (K252148) and specifying the domain (AI/ML-enabled devices), which clarifies the intended use beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool looks up structured premarket evidence for AI/ML-enabled devices using a 510(k) number. It lists the specific fields returned (validation study design, sample sizes, etc.) and distinguishes from sibling tools like device_risk_lookup and evidence_search by its focused scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a specific device number is known and premarket evidence is needed. It does not explicitly exclude other scenarios or mention alternatives, but the context from sibling tool names provides adequate guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

device_postmarket_lookupAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
k_numberYes510(k) or De Novo number, e.g. K252148 or DEN180001

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It states it returns 'descriptive observables with sources — never a safety judgment,' clarifying its non-judgmental nature. It lists all included data types, but lacks details on authentication, rate limits, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that efficiently lists all key points without any wasted words. Every clause adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description sufficiently explains return values (recalls, MAUDE, warning letters, drift signals) and notes sources. It is complete for a lookup tool, though an example would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with a clear pattern and description. The description adds 'by 510(k) number,' but does not provide additional meaning beyond the schema's specification.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides 'post-clearance intelligence' for a device by 510(k) number and lists specific data points (recalls, MAUDE, warning letters, drift signals). It distinguishes itself from sibling tools like 'device_risk_lookup' by focusing on post-clearance data and from 'postmarket_search' by being per-device.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need post-clearance data for a specific device by 510(k) number. It clearly defines the context but does not explicitly state when not to use it or provide alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

device_risk_lookupAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_codeYesFDA product code, e.g. FRN

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It lists outputs and a limitation, but does not explicitly state that the tool is read-only or describe any side effects, authentication, or rate limits. The negation about enforcement is useful but insufficient for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the core action and example, the second enumerates outputs and a key limitation. Every sentence is information-dense and front-loaded, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description adequately covers input semantics, output list, and a limitation. It could be slightly more precise about data scope (e.g., single category) but overall is comprehensive enough for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'product_code' has 100% schema coverage, but the description adds semantic value by providing an example ('FRN = infusion pump') and noting it is three-letter, reinforcing the schema constraints beyond the schema's description field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: review FDA signals for a medical-device category via product code. It lists specific returns (recalls, MAUDE trend, etc.) and provides an example ('FRN = infusion pump'), making the purpose unambiguous and well-distinguished from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an implicit usage hint by requiring a product code and noting what the tool does not do ('does not predict enforcement against a firm'). However, it lacks explicit guidance on when to use this tool versus alternatives like device_postmarket_lookup or firm_compliance_history, leaving the agent to infer from the output description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evidence_cohort_statsAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
panelNoAdvisory panel, e.g. Radiology; omit for all

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden for behavioral disclosure. It explains that rates are reported as 'X of Y audited devices', excludes not-yet-parsed devices, discloses the parse queue separately, and details the condition for including predicate age (60% decision-date coverage). This provides clear insight into how the tool behaves, though auth and error handling are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each serving a purpose: stating the main function and optionality, clarifying the rate format, and explaining exclusions and predicate age condition. It is front-loaded and efficient, though the third sentence could be slightly more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one optional parameter, no output schema, and no annotations, the description covers the essential aspects: what stats are provided, their format, exclusions, and a conditional element. It does not detail return structure or error cases, but for a stats tool this level of completeness is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter 'panel' is described in the input schema as 'Advisory panel, e.g. Radiology; omit for all', and the description reinforces that it's optional and filters results. Since schema description coverage is 100%, the description adds minimal extra meaning beyond clarifying the optionality, but does not introduce new semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides reporting-rate stats across the parsed AI/ML corpus, optionally filtered by panel. It emphasizes that rates are presence figures with denominators, not pooled performance, which distinguishes it from other stats tools. The mention of predicate age conditional on coverage adds further specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for getting reporting rates on parsed devices, but it does not explicitly say when to use this vs. alternatives like cohort_postmarket_stats. No when-not-to-use guidance or comparisons to siblings are provided, leaving the agent to infer usage from the context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

firm_compliance_historyAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum records per source and events in the timeline (default 50).
sinceNoEarliest event date, YYYY-MM-DD. Defaults to five years ago.
firm_nameYesFDA applicant or company name, e.g. 'Medtronic'
fei_numbersNoOptional exact FDA FEI numbers; improves Form 483 attribution.
product_codesNoOptional FDA product-code scope. When omitted, Constat discovers codes from applicant matches in its device corpus.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It discloses source-bounded nature, use of FEI numbers, product code discovery, and includes a caveat that it is not a finding of noncompliance. However, it could clarify data freshness or potential delays.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences covering purpose, sources, constraints, and disclaimer. No wasted words; key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters and no output schema, the description covers purpose, sources, and limitations. It mentions 'returns attribution and coverage limits' but could elaborate on response format or pagination for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds context about product code discovery from a corpus but does not provide additional specifics for individual parameters beyond what the schema already defines.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it builds a timeline of FDA records (recalls, warning letters, Form 483) with specific constraints (exact FEI numbers, product code discovery). It clearly distinguishes from sibling tools like device_evidence_lookup which are more general searches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for firm compliance history but does not explicitly state when to use this tool versus alternatives like evidence_search or device_postmarket_lookup. No when-not or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

predicate_chainAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoMax ancestry depth (default 4)
k_numberYes510(k) or De Novo number, e.g. K252148 or DEN180001

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It reveals that the output includes the age of each predicate and that it shows how AI/ML devices chain to older predicates. While it lacks detail on edge cases (e.g., missing predicates, depth limits), it provides meaningful behavioral insight beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, no filler, and front-loads the primary action and resource. Every word adds value, making it efficient for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the specialized function and good schema coverage, the description covers the core purpose and distinctive features (predicate age, AI/ML focus). It lacks mention of output format or error behavior, but these are not critical for basic selection; it is sufficiently complete for the complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the schema already documents both parameters (k_number and depth) with descriptions. The tool description does not add new semantic meaning to the parameters beyond what the schema provides, earning the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Trace' and identifies the resource as 'predicate ancestry of a 510(k) device'. It adds unique value by mentioning the age of predicates and the focus on AI/ML devices, clearly distinguishing it from sibling tools like device_risk_lookup or evidence_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for analyzing predicate chains and specifically highlights AI/ML devices, providing clear context. However, it does not explicitly state when not to use it or name alternative tools, missing a chance to guide the agent away from inappropriate uses.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reimbursement_lookupAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpt_codeNoBare CPT code, e.g. 75580 or 0932T
k_numberNoFDA clearance number, e.g. DEN170073 or K252148

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It explains the outputs (payment mechanisms, amounts, dates, links) and clarifies that CPT codes are bare identifiers. However, it omits details on error handling, required permissions, rate limits, or side effects, leaving some transparency gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose, includes examples, and summarizes the answer. Every sentence adds meaningful information without fluff, making it concise yet comprehensive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers inputs, outputs (payment mechanisms, amounts, dates, links), and special notes (CPT codes as bare identifiers). It lacks error handling or edge cases, but for a lookup tool, it provides sufficient context for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by providing examples (DEN170073, 75580) and explaining the function of each parameter (FDA clearance number vs. bare CPT code). It also warns that CPT codes are bare identifiers requiring official source lookup, going beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('Trace the clearance-to-payment pathway') and a clear resource (AI/ML device by FDA clearance number or CPT code). It defines what it returns (payment mechanisms, amounts, dates) and answers a specific question, distinguishing it from vague siblings like reimbursement_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but does not explicitly state when to use this tool over siblings like reimbursement_search or reimbursement_stats. It lacks exclusions or alternative guidance, leaving the agent to infer usage context from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reimbursement_statsAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and discloses key behavioral traits: it never gives a single pooled rate, and reports NTAP and CMS rates separately. Good transparency for what it does and does not do.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no wasted words. Efficiently conveys scope and behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description fully explains what the tool returns (counts and dollar amounts per mechanism) and how it handles rate types, making it complete for a stat tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, schema coverage 100% (empty). Baseline 4 applies as description adds context about return values without needing parameter explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns distribution of payment mechanisms with counts and dollar amounts, using specific verbs like 'Distribution... counts... amounts'. It distinguishes from siblings by explicitly stating it never provides a single pooled rate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for reimbursement statistics and warns against expecting a pooled rate, but does not explicitly name alternative tools or when-not-to-use scenarios, though sibling names (e.g., reimbursement_lookup) give context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vehicle_risk_lookupAInspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
makeYese.g. honda
yearYesmodel year, e.g. 2020
modelYese.g. civic

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose whether the operation is read-only, requires authentication, or has any side effects, leaving behavioral aspects unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no extraneous information, front-loading the core purpose and listing return types efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no output schema, the description covers the basic inputs and outputs but lacks behavioral context, making it adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for each parameter, so the description adds minimal extra value beyond reiterating the parameters' purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool looks up NHTSA safety history for a vehicle using make, model, and model year, distinguishing it from siblings like device_risk_lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly tells when to use (for vehicle safety history) and the required parameters (make, model, year), but lacks explicit exclusions or alternative tool references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

watchlist_diffAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum changes to return (default 100).
sinceNoReturn 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.
product_codesNoFDA product codes to poll. Omit for the default Radar watchlist.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses that the tool returns only machine-generated changes, excluding analyst verdict and internal review status. It also explains the default behavior for product_codes and since, and hints at pagination via next_since. No destructive or hidden behaviors are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two sentences that front-load the core purpose and immediately follow with defaults, exclusions, and usage guidance. Every sentence earns its place without any unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description adequately outlines what is returned (changes, category snapshot, postmarket coverage) and what is omitted (analyst verdict, review status). Combined with the polling hint about next_since, this provides sufficient context for an agent to invoke and process results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by stating defaults ('Constat Radar's five-code watchlist and the last seven days') and the purpose of the since parameter for polling (use next_since). This provides context beyond the schema's field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it returns 'FDA public-record changes detected for monitored product codes since a caller-supplied date, plus each code's latest category snapshot and postmarket coverage.' This clearly identifies the verb (return), resource (changes and snapshots), and scope (monitored product codes), distinguishing it from sibling tools that perform static lookups or searches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that analyst verdict and review status are excluded and that next_since should be used as a polling cursor, providing some usage context. However, it does not explicitly guide when to use this tool over specific siblings like device_risk_lookup or firm_compliance_history, leaving the selection to the agent's inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 14 tool updatesv0.5.1
    • First observedcohort_postmarket_stats
    • First observeddevice_evidence_lookup
    • First observeddevice_postmarket_lookup
    • First observeddevice_risk_lookup
    • First observedevidence_cohort_stats
    • First observedevidence_search
    • First observedfirm_compliance_history
    • First observedpostmarket_search
    • First observedpredicate_chain
    • First observedreimbursement_lookup
    • First observedreimbursement_search
    • First observedreimbursement_stats
    • First observedvehicle_risk_lookup
    • First observedwatchlist_diff

TDQS

A3.9/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: device-level premarket/postmarket lookups, firm compliance history, search across evidence/postmarket/reimbursement, statistical aggregates, predicate tracing, watchlist diff, and even a vehicle safety lookup. The detailed descriptions further minimize ambiguity.

Naming Consistency5/5

Tool names follow a consistent pattern: domain prefix (device_, firm_, evidence_, etc.) plus operation suffix (lookup, search, stats, diff, chain). All snake_case. The sole outlier vehicle_risk_lookup still follows the same pattern, maintaining overall consistency.

Tool Count4/5

14 tools is on the higher end of the ideal range (3-15) but each tool serves a specific, non-redundant purpose within the regulatory intelligence domain. The count is reasonable given the breadth of covered areas (premarket, postmarket, reimbursement, and vehicle safety).

Completeness4/5

The tool set covers the key aspects of medical device regulatory intelligence: premarket evidence, postmarket surveillance, reimbursement, firm compliance, and trend monitoring. However, the inclusion of vehicle_risk_lookup (NHTSA) is a slight domain mismatch, and there is no tool for listing or searching product codes/panels directly, though these are used as filters elsewhere.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/thehealthai/fda-risk-radar-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server