Skip to content

Query FDA device data from Claude or ChatGPT

DeviceSignal runs a Model Context Protocol server, so an AI assistant can look up FDA product codes, clearances, recalls, adverse-event baselines and predicate chains directly — and every answer it gets back carries the openFDA record ids behind it, so the assistant can cite rather than assert.

Last updated

What it can do

Seven read-only tools. Every one returns the source endpoint and the record ids behind its figures, and every one states absence explicitly — "no recall on record" and "we have not looked" read identically once a model has paraphrased them, so the tools distinguish the two.

The tools an assistant can call, and what each answers.
ToolAnswers
search_product_codesWhich FDA product code covers this kind of device?
get_product_code_summaryWhat is happening in this code right now, across six datasets?
check_predicate_riskHas anything in this device's predicate chain been recalled?
get_recall_blast_radiusIf this device were recalled, which later devices cite it?
get_adverse_event_baselineIs adverse-event reporting unusual for this code?
find_companyWhich product codes does this manufacturer file in?
find_quiet_product_codesWhere is nothing happening — which categories have stopped moving?
get_data_freshnessHow current is this data?

Connecting from Claude Desktop

Add this to your MCP configuration. The server is read-only: every tool is a SELECT, and the database role it uses cannot write.

  • Open Settings → Developer → Edit Config.
  • Add a "devicesignal" entry under mcpServers pointing at the server command.
  • Restart Claude Desktop. The tools appear under the connect menu.

Two things to hold on to when it answers

A verdict of no_chain_known on a predicate check means we hold no ancestry for that device — FDA publishes the chain only inside 510(k) summary PDFs — not that the chain is clean. And insufficient_history on a baseline means there is no expected range to compare against, not that reporting was zero. Both distinctions survive in the tool output; ask your assistant to keep them.