Verified ICD-10-CM code lookup & validation for AI agents.
Ask an LLM what an ICD-10 code means and it answers confidently — and often wrongly: wrong laterality, wrong severity, wrong condition, and it will invent a description for a code that doesn't exist. icdwise looks the code up in the official U.S. code set and returns the real description, or an honest "not found". "Qiniso" means "truth" in Zulu.
ICD-10-CM has ~74,000 highly specific codes — the exact wording encodes laterality, severity, and encounter type, and the set changes every year. That is precisely the kind of large, exact, shifting reference data a language model cannot recall reliably; it pattern-matches a plausible description and states it with full confidence. For coding, billing, or clinical documentation, a silently wrong description is a real problem.
| Code | LLM said (cold) | Official (icdwise) |
|---|---|---|
| H40.1131 | "severe stage, right eye" | Primary open-angle glaucoma, bilateral, mild stage |
| T63.011A | "ingested mushrooms" | Toxic effect of rattlesnake venom, accidental, initial encounter |
| S52.521A | "displaced shaft, left arm" | Torus fracture of lower end of right radius, initial encounter |
| J45.999 (fake) | "Other asthma" | not a valid code |
Method: real ICD-10-CM codes (common → obscure) plus well-formed fakes, asked of a frontier model with no tools, scored against the official descriptions (NIH Clinical Tables / CMS). ~38% of real codes wrong, plus fabrication on fakes and a false rejection of a real code. icdwise returns the official text by lookup, so it is correct by construction; reproduce it with the harness in the repo (bench/).
The official description of a code, plus its canonical dotted form and 3-char category. Accepts E11.9 or E119.
Is this a real code? Well-formed and present in the official set — catches fabricated or retired codes.
Reverse lookup: find the code(s) for a condition by keywords, e.g. "generalized anxiety".
As a library:
npm i icdwise
import { lookupIcd10, validateIcd10, searchIcd10 } from "icdwise";
lookupIcd10("E11.9").description; // "Type 2 diabetes mellitus without complications"
validateIcd10("E11.99").valid; // false — well-formed but not a real code
searchIcd10("generalized anxiety"); // → [{ code: "F41.1", ... }]
Settings → Connectors → Add custom connector, and paste — hosted on the edge, no login, no key:
https://icdwise.qinisolabs.workers.dev/mcp
Add this under mcpServers in your client config and restart:
{
"mcpServers": {
"icdwise": { "command": "npx", "args": ["-y", "icdwise"] }
}
}
icdwise looks up and validates codes against the official ICD-10-CM (U.S. Clinical Modification) set. It is not medical advice, not a determination of billability or coverage, and not ICD-10 (WHO) or ICD-11. Unknown codes return an honest "not found" — never a fabricated description.