stillshort
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
stillshort
An MCP server that follows medicines in the FDA drug shortage register and answers the only question anybody asks twice, has anything changed since I last looked.
python demo.py --offline the frozen records, repeatable
python demo.py the live register
python -m stillshort the server on stdio, for a client that starts it
python -m unittest discover -s tests -t .What it does
Three tools, because a voice interface cannot hold more than three verbs.
watch follow a substance, and hear where it stands now
watching read the list back, forget one, or forget all of it
changed what moved since each one was last readThe register keys a shortage on generic_name, and that field carries the
dosage form inside the same string, Clonazepam Tablet rather than
Clonazepam. Nobody says that out loud, so a spoken name is matched against
the leading substance and the forms that came back are reported separately.
A substance can hold two hundred lines, one per package. Reading them is not an answer. What comes back is one reading per status, how many packages, how many suppliers, and the most useful note the register carries.
Related MCP server: Recall Radar MCP Server
What it refuses to do
It does not suggest a substitute, it does not say whether to worry, and it does not translate a status into advice. Every answer that carries a shortage carries the register's own words back with it, verbatim,
Do not rely on openFDA to make decisions regarding medical care. While we make every effort to ensure that data is accurate, you should assume all results are unvalidated.
When the register cannot be reached, it says so and adds nothing to the list. A silent server is worse than one that admits it could not look, because the caller reads silence as good news.
Where the data live
The watchlist is plain JSON under ~/.stillshort, or wherever
STILLSHORT_HOME points. Nothing leaves the machine, nothing is encrypted, and
watching with forget all empties it in one call. An encrypted file the
owner cannot read is worse than a readable one they can delete.
Heard, on a simulated Alexa+ display
python talk.py
python sim/film.pytalk.py holds a real spoken conversation with the server. A neural voice
says each line, Whisper transcribes it, a language model client that can reach
nothing but the three stillshort tools decides what to call over MCP on stdio,
and a second voice reads the answer. The last take is in
take/transcript.json, tool calls and register answers included. Whisper wrote
clonazapam, and the client still called watch with clonazepam.
sim/film.py plays that take on sim/device.html, a smart display with a
light bar, a caption of what it heard, the spoken reply and a card for the
result, with every tools/call and its outcome beside it. The caption, the
reply, the card's contents and the tool calls are read from the take, not
written for the video. The only edit is the model's thinking time, cut to a
fixed pause. One take cannot show the register moving, so its last answer is
Nothing has changed, which is true and is what the tool is for.
Two things the register does that will bite the next person
related_info is one free text field carrying two unrelated things. Estimated supply: August 2026 is an answer. Marketed by Advagen Pharma Ltd. is not,
and read out loud it sounds like one. A supply note wins whenever there is one.
update_date is written MM/DD/YYYY, which does not sort as text. 12/01/2025
sorts above 01/05/2026 character by character, so comparing these as strings
picks the wrong latest entry, and only across a year boundary, which is when
nobody is looking. There is a test for exactly that.
Fixtures
tests/fixtures holds real answers from the register, saved 2026-09-05, so the
shapes under test are the shapes the service really sends. The bench never
touches the network.
This server cannot be deployed
Maintenance
Related MCP Connectors
FDA drug shortage list: is a drug in shortage now, by name or NDC, with status and reason.
Which drugs are in shortage right now? FDA shortage status, reasons and availability.
US medication lookup: drug search, forms and strengths, NDC/RxCUI, recalls, shortages.
Federal drug shortages and recalls joined to the federal contracts that buy those drugs.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables conversational drug and supplement lookup, detailed profiles, and interaction checking via the MedData API.722 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables a voice assistant to answer household safety questions about whether products, food, or medicines have been recalled or are in short supply, drawing on public US and EU government data and proactively checking a saved household watchlist. Answers return a short spoken sentence plus structured detail including the source URL and date for every item.MIT
- AlicenseNot gradedqualityCmaintenanceEnables a family caregiver to ask spoken medication-safety questions and receive answers grounded in quoted FDA label text with citations, backed by one household's medication record, adherence tracking, and prescriber contacts. Read-only safety checks run against normalised drug names and current labels, while any record change requires a two-phase, single-use caregiver confirmation before it is applied.MIT
- AlicenseNot gradedqualityCmaintenanceEnables Alexa+ users to log scheduled medication doses by voice and lets family caregivers check taken, missed, or upcoming doses with spoken daily summaries.1MIT