Medlineplus
Skill BioTender-max/awesome-bio-agent-skills/skills/drugclaw/medlineplus
Query MedlinePlus for consumer-oriented drug and health-topic information. Accepts drug names, RxCUI codes, NDC codes, or ICD-10-CM diagnosis codes. Uses two free, keyless NLM APIs: the Web Service (keyword search) and MedlinePlus Connect (code-based lookup).From its SKILL.md
npx -y skills add BioTender-max/awesome-bio-agent-skills --skill medlineplusAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.7 KB, 714 tokens by cl100k_base, as published. Nobody here has run it
MedlinePlus Drug Info Skill
Search MedlinePlus drug / health-topic pages. Auto-detects input type:
| Input Pattern | Detected As | Example | Endpoint Used |
|---|---|---|---|
0069-3060-30 | NDC code | NDC → drug page | Connect (NDC) |
637188 (5-7 digits) | RxCUI | RxNorm concept | Connect (RxCUI) |
E11.9, J45.20 | ICD-10-CM | Diagnosis code → topic | Connect (ICD-10) |
| anything else | free text | metformin, aspirin | Connect (name) + wsearch |
Both APIs are free, require no API key, and are rate-limited to 85 req/min.
API
| Function | Input | Returns |
|---|---|---|
search(query, max_results=10) | single entity string | dict with connect_results, wsearch_results |
search_batch(queries, max_results=10) | list of entity strings | dict[str, dict] |
summarize(result) | one search() result dict | compact text for LLM |
to_json(result) | one search() result dict | list[dict] flat records |
Result dict structure
{
"query": "metformin",
"input_type": "text", # ndc | rxcui | icd10 | text
"connect_results": [ # from MedlinePlus Connect
{"title": "...", "url": "...", "summary": "...", "source": "..."},
],
"wsearch_results": [ # from keyword web service
{"title": "...", "url": "...", "snippet": "...", "rank": "..."},
],
"errors": [],
}
Usage
See if __name__ == "__main__" block in 57_MEDLINEPLUS_DRUG_INFO.py for
runnable examples covering: drug name, RxCUI, NDC, ICD-10, batch search,
summarize, and JSON output.
Key Fields
| Field | Source | Description |
|---|---|---|
title | Connect / wsearch | MedlinePlus page title |
url | Connect / wsearch | Direct link to MedlinePlus page |
summary | Connect | HTML-stripped page summary (≤400 chars) |
snippet | wsearch | Keyword-in-context excerpt (≤300 chars) |
source | Connect | Content attribution (e.g., AHFS, ASHP) |
rank | wsearch | Relevance rank returned by NLM |
Data Source
- Provider: U.S. National Library of Medicine (NLM)
- Web Service:
https://wsearch.nlm.nih.gov/ws/query(XML, keyword search) - Connect API:
https://connect.medlineplus.gov/service(JSON, code-based) - Rate limit: 85 requests / minute / IP
- Update frequency: daily (Tue–Sat)
- License: Public domain (U.S. Government work); attribution to MedlinePlus.gov requested
What ships with it: 5 files
23.7 KB alongside SKILL.md, 4 of them executable
- example.pyruns10.9 KB
- __init__.pyruns150 B
- medlineplus_skill.pyruns10.9 KB
- README.md1016 B
- retrieve.pyruns807 B