icdwise
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**Verified ICD-10-CM code lookup & validation for AI agents — official descriptions, not guesses.**
*Verified, trustworthy data tools for AI agents. "Qiniso" means "truth" in Zulu.*
Website · npm · MCP endpoint · MCP Registry
---
Ask an LLM what an ICD-10-CM code means and it will answer confidently — and often **wrongly**: the wrong laterality, the wrong severity, the wrong condition entirely, and it will happily invent a description for a code that doesn't exist. **icdwise** looks the code up in the official U.S. ICD-10-CM code set and returns the real description — or an honest *"not found"* instead of a guess.
> Asked to describe real ICD-10-CM codes, a frontier model with no tools was **wrong ~38% of the time** — e.g. it called H40.1131 *"severe stage, right eye"* (it's *mild, bilateral*) and T63.011A *"ingested mushrooms"* (it's *rattlesnake venom*) — and it **fabricated a description for a code that doesn't exist**. icdwise: the official text, or "not found." Never a guess.
Add it to Claude
Settings → Connectors → **Add custom connector**, and paste — no login, no key:
Stateless, reads no user data, requires no secrets. Prefer to run it locally over stdio? Add { "command": "npx", "args": ["-y", "icdwise"] } under mcpServers in your client config.
Use it as a library
Codes are accepted with or without the dot (E11.9 or E119). A well-formed code that isn't in the official set returns found: false with a clear note — it never invents a description.
Tools — 3
| Tool | What it answers |
| --- | --- |
| **lookup_icd10** | The official description of a code (+ canonical form and 3-char category) |
| **validate_icd10** | Is this a real ICD-10-CM code? (well-formed *and* in the official set) |
| **search_icd10** | Reverse lookup — find the code(s) for a condition by keywords |
Data
ICD-10-CM is U.S. **public-domain** data (NCHS/CMS). The full code set (~74,000 codes) is bundled and generated from the official CMS release via npm run build-data (see scripts/build-data.mjs); every response reports the datasetVersion it used. Descriptions are the official text — the curated, versioned dataset kept current is the moat.
What it is *not*
- **Not medical advice**, and not a determination of billability, coverage, or clinical appropriateness.
- **Not ICD-10 (WHO) or ICD-11** — this is ICD-10-**CM** (the U.S. Clinical Modification).
- **Not a guesser** — unknown/retired/non-leaf codes return an honest "not found", never a fabricated description.