$npx -y skills add QSong-github/DrugClaw --skill rxnormQuery the RxNorm drug naming and normalization API. Use whenever the user asks to look up an RxCUI, normalize a drug name, find drug interactions, retrieve brand/trade names, or resolve any clinical drug name via RxNorm. Supports single drug or batch queries. Trigger on mentions
| 1 | # RxNorm Query Skill |
| 2 | |
| 3 | Look up clinical drug information via the RxNorm REST API (no API key required). |
| 4 | |
| 5 | ## Capabilities |
| 6 | |
| 7 | | Function | Input | Returns | |
| 8 | |---|---|---| |
| 9 | | `find_rxcui(name)` | drug name string | RxCUI string or None | |
| 10 | | `get_drug_info(rxcui)` | RxCUI string | full info dict | |
| 11 | | `get_drug_interactions(rxcui)` | RxCUI string | list of interaction dicts | |
| 12 | | `get_related_drugs(rxcui, tty)` | RxCUI + term type | list of related drug dicts | |
| 13 | | `normalize_drug_name(name)` | approximate drug string | normalized name string | |
| 14 | | `query(entity)` | **str or list[str]** | dict keyed by drug name | |
| 15 | | `summarize(results)` | output of `query()` | compact text summary | |
| 16 | |
| 17 | ## Quick Start |
| 18 | |
| 19 | ```python |
| 20 | from 08_RxNorm import query, summarize |
| 21 | |
| 22 | # Single drug |
| 23 | results = query("aspirin") |
| 24 | print(summarize(results)) |
| 25 | |
| 26 | # Batch drugs |
| 27 | results = query(["tylenol", "metformin", "ibuprofen"]) |
| 28 | print(summarize(results)) |
| 29 | ``` |
| 30 | |
| 31 | ## `query()` Output Schema |
| 32 | |
| 33 | ``` |
| 34 | { |
| 35 | "<drug_name>": { |
| 36 | "rxcui": "1191" | None, |
| 37 | "normalized_name": "aspirin", |
| 38 | "interactions": [ |
| 39 | {"description": "...", "severity": "...", "drugs": ["...", "..."]} |
| 40 | ], |
| 41 | "related": [ |
| 42 | {"rxcui": "...", "name": "...", "tty": "..."} |
| 43 | ] |
| 44 | } |
| 45 | } |
| 46 | ``` |
| 47 | |
| 48 | ## Notes |
| 49 | |
| 50 | - **API**: RxNorm REST — `https://rxnav.nlm.nih.gov/REST` |
| 51 | - **Auth**: None required |
| 52 | - **Rate limits**: NLM asks for reasonable use; no hard key-based limit |
| 53 | - **Related drug types** (`tty`): `BN` (brand name), `SBD` (branded dose), `SCD` (clinical dose), etc. |