Icdwise

io.github.qinisolabsPublished by GitHub account qinisolabsv0.1.1Updated Oct 24, 2026

Verified ICD-10-CM code lookup & validation for AI agents — official descriptions, not guesses.

Overview

AI-generated overview

A local MCP server that lets an assistant look up, validate and reverse-search ICD-10-CM diagnosis codes against the official U.S. code set instead of guessing.

What you can do
Look up the official description, canonical form and 3-character category for an ICD-10-CM code, with or without the dot. Validate whether a code is both well-formed and present in the official set. Search by keywords to find the code or codes matching a condition. Every response reports the dataset version used, and unknown or retired codes return an honest not-found result.
When to use it
Use it when an assistant needs to quote or check ICD-10-CM diagnosis codes for U.S. healthcare content, claims or records, and accuracy matters more than a plausible-sounding answer. It is not intended for clinical decisions or billing determinations.
Requirements
Runs locally over stdio via npx (Node.js required) or as an npm library. No account, API key or secrets needed; the full code set is bundled, so no network access is required for the local package.
Before you install
Not medical advice, and it does not determine billability, coverage or clinical appropriateness. It covers ICD-10-CM (U.S. Clinical Modification) only, not ICD-10 (WHO) or ICD-11. The README also advertises a hosted endpoint; the local package itself is described as making no network calls and collecting no data.

Installation

In SourceWeft

  1. Open Icdwise in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[Qiniso]

icdwise

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:

https://icdwise.qinisolabs.workers.dev/mcp

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

bash
npm i icdwise
ts
import { lookupIcd10, validateIcd10, searchIcd10 } from "icdwise";
lookupIcd10("E11.9").description;     // "Type 2 diabetes mellitus without complications"lookupIcd10("H40.1131").description;  // "Primary open-angle glaucoma, bilateral, mild stage"validateIcd10("E11.99").valid;        // false — well-formed but not a real codesearchIcd10("generalized anxiety");   // → [{ code: "F41.1", description: "Generalized anxiety disorder" }, ...]

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

ToolWhat it answers
lookup_icd10The official description of a code (+ canonical form and 3-char category)
validate_icd10Is this a real ICD-10-CM code? (well-formed and in the official set)
search_icd10Reverse 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 <icd10cm-codes-YYYY.txt> (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.

Architecture

A single TypeScript package exposing one MCP server over two transports — stdio (local / npx) and a Cloudflare Worker (hosted edge endpoint) — both driven by the same core.ts tool definitions, which also power the importable library.

bash
npm installnpm run buildnpm test

Privacy

This tool runs locally on your machine and is built not to collect, store, or transmit your data — no analytics, no telemetry, no account. All reference data is bundled — no network calls, and nothing leaves your device. Full policy: https://qinisolabs.github.io/privacy.html.

License

Apache-2.0. ICD-10-CM data is U.S. public domain (NCHS/CMS); see NOTICE.

Source: README.md at commit c822a28

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts