get_data_freshness
Returns when the data was last activated, how many segments are live, and the state of the last run. Call this first when you need to know whether the data is fresh.
Takes no parameters.

xyz.crossgrainPublished by crossgrain.xyzOfficial publisherv0.1.4Updated Oct 24, 2026
Federal drug shortages and recalls joined to the federal contracts that buy those drugs.
Epitaxy exposes FDA drug shortages and recalls joined to US federal drug contracts, so an assistant can look up suppliers with shortage or recall exposure.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/xyz.crossgrain%2Fepitaxy/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"epitaxy": {
"type": "http",
"url": "https://drugs.crossgrain.xyz/v1/mcp"
}
}
}mcp-name: xyz.crossgrain/epitaxy
Federal drug shortages and recalls, joined to the federal contracts that buy those drugs. One call, no signup.
What it claims: this government supplier has an active FDA shortage or recall. What it does not claim: that a specific contract supplies a specific drug. Federal contract descriptions average 47 characters and almost never name the drug, so we say so instead of pretending otherwise.
One row of the answer, shortened:
Remote, nothing to install:
Local, stdio:
Tools: get_data_freshness, list_drug_shortages, list_drug_recalls,
list_federal_drug_contracts, get_supplier_exposure.
Matching on both company and drug at once is not promoted to
exact. Cross source joins are never exact, because FDA and
USAspending share no identifier. Anyone claiming otherwise has a
different source or is guessing.
Works forever, no key, no signup. Returns at most 20 rows, without the
evidence field, without weak matches, and with data delayed by 24
hours. Nothing is stored: no counters, no IP addresses. If a version
that old does not exist yet, you get the oldest one available, so the
free tier is never empty while data exists.
These two addresses are the same segment and both work permanently:
Later segments arrive as /devices/v1/..., /food/v1/... and so on. A
path whose segment is reserved but not live yet answers 404 with
segment_not_live, it never returns another segment's data. An address
that has been published is never withdrawn.
Data is unvalidated and must not be used for medical decisions. This project is MIT licensed. Docs: https://drugs.crossgrain.xyz/docs
Source: README.md at commit 934d45b
Returns when the data was last activated, how many segments are live, and the state of the last run. Call this first when you need to know whether the data is fresh.
Takes no parameters.
Current and resolved US drug shortages as reported by the FDA. Each row carries the generic name, the reporting company and its company_id. Filters: status, generic_name, company_id, limit.
limitstatuscompany_idgeneric_nameFDA drug recalls and enforcement reports. Filters: classification (Class I, II, III), company_id, limit.
limitcompany_idclassificationUS federal contracts for drugs, product service code 6505, from USAspending. Filters: agency, company_id, limit.
limitagencycompany_idThe join: a federal contract whose supplier has an FDA shortage or recall. Every row carries company_name, confidence (exact, probable or weak) and match_method. A cross source join is NEVER exact, because FDA and USAspending share no identifier. The claim is: this government supplier has an active FDA shortage or recall. It does NOT claim that this contract delivers that drug. Without a key you get exact and probable matches only, at most 20 rows, without the evidence field.
limitaward_idcompany_idmin_confidence100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
curl https://drugs.crossgrain.xyz/v1/exposure?limit=5{"exposure_id": "0026624dec7b6d9f", "award_id": "SPE2DP25F109W", "company_id": "a4fdd4a7530f4962", "company_name": "TEVA PHARMACEUTICALS USA, INC.", "company_key": "teva pharmaceuticals usa", "shortage_id": "022c478fb3af28c4", "confidence": "probable", "match_method": "company_name_normalized"}{ "mcpServers": { "epitaxy": { "url": "https://drugs.crossgrain.xyz/v1/mcp" } } }{ "mcpServers": { "epitaxy": { "command": "uvx", "args": ["epitaxy-mcp"] } } }https://drugs.crossgrain.xyz/v1/exposurehttps://drugs.crossgrain.xyz/drugs/v1/exposure