Offline US medical code lookup and crosswalk β ICD-10-CM, ICD-10-PCS, HCPCS Level II. Keyless.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Decode, search, validate, and crosswalk US medical codes β ICD-10-CM, ICD-10-PCS, HCPCS Level II, RxNorm β over a bundled offline index via MCP. STDIO or Streamable HTTP.
Public Hosted Server: https://medical-codes.caseyjhand.com/mcp
[!NOTE] Informational, not clinical or coding advice. This server returns official code descriptions and billable/validity flags from public-domain federal releases to help you decode and look up codes. It is not medical advice, and a
valid_billableresult is not a coding or reimbursement decision. Always verify codes against the official source releases (CMS, CDC/NCHS, NLM) and your payer's rules before submitting a claim. The bundled data is only as current as the release baked into the build β callmedcode_list_systemsto see exactly which releases are active.
The code data is bundled inside the package β a single SQLite + FTS5 database (data/medical-codes.db) built at package-build time from the canonical federal source files and shipped in the npm tarball and Docker image. The server opens it read-only at startup and answers every tool call from disk.
That means the server is offline, keyless, and deterministic: no runtime network calls, no API key, no rate limit, single-tenant. The same inputs against the same bundled build always return the same output.
Only freely-redistributable, public-domain US federal code sets are bundled:
| System | Source | Covers |
|---|---|---|
| ICD-10-CM | CDC/NCHS β US federal, public domain | Diagnoses (billable leaf codes + non-billable category headers) |
| ICD-10-PCS | CMS β US federal, public domain | Inpatient procedures (axis-based 7-character codes) |
| HCPCS Level II | CMS β US federal, public domain | Supplies, drugs, and non-physician services |
| RxNorm | NLM RxNav β public domain | Drugs: name β RXCUI, NDC β RXCUI crosswalk, ingredients, and brands |
RxNorm bundles the current RxNorm normalized drug vocabulary β ingredients, brand names, clinical & branded drugs, and packs, with their NDC and ingredient/brand crosswalks. It is sourced at build time from the keyless RxNav REST API, which serves the public-domain normalized layer β never the UMLS-licensed source vocabularies, so it stays freely redistributable in an offline package. (The full UMLS RxNorm release, which pulls in those licensed sources, is intentionally excluded.) This powers medcode_map_codes' drug directions and direct NDC β drug decode in medcode_get_code.
CPT (AMA copyright) and SNOMED CT / LOINC (UMLS-license-gated) are intentionally absent β they are not freely redistributable, so they cannot ship in an offline package.
US scope. ICD-10-CM and ICD-10-PCS are the US clinical modifications, not the WHO ICD-10/ICD-11 base or another country's national modification.
Six tools organized goal-first β one per user action, with a system discriminator instead of a per-system tool for each of the bundled code sets. All are read-only.
| Tool | Description |
|---|---|
medcode_get_code | Decode 1β50 codes to their official descriptions. Auto-detects the system per code; partial-success found / notFound. |
medcode_search_codes | Full-text search over official descriptions β go from a clinical description to the code. |
medcode_check_code | Validate a code's existence, currency, and billability, with a whyNot for non-billable/terminated cases. |
medcode_map_codes | Crosswalk a code within its hierarchy (parents/children) or a drug across RxNorm (name β RXCUI, NDC β RXCUI, RXCUI β ingredients/brands). |
medcode_browse_hierarchy | Walk a system's hierarchy for discovery without a search term. |
medcode_list_systems | List bundled systems with release identifiers, effective dates, and code counts (provenance). |
medcode_get_codeDecode one or more codes seen in a claim, EHR field, or another health server's output. The 80% entry point.
0777-3105-02, 5-3-2, 5-4-1, or the 11-digit 5-4-2) or as bare 10/11 digits β offline via the bundled NDCβRxNorm map, tagged source: "NDC"found, unresolved in notFound with a per-code reason, so one bad code never fails the batchsystem overrides auto-detection when a value is genuinely ambiguous (an ambiguous code lists its candidateSystems)includeHierarchy attaches each code's parent and immediate childrensystem is echoed on every result for chaining into medcode_map_codes or a billability checkmedcode_search_codesFind codes whose official descriptions match a described concept β the reverse of medcode_get_code.
"diabetic neuropathy" returns codes mentioning bothsystem, billableOnly (exclude headers/categories), and chaptermedcode_check_codeValidate whether a code is safe to submit, before a claim goes out.
valid_billable, valid_not_billable, valid_header, or terminatedwhyNot string explains the non-billable and terminated cases (e.g. "valid ICD-10-CM category but not billable β submit a more specific child code")whyNot, not an error β only a code absent from every bundled system raises unknown_codemedcode_map_codesCrosswalk a code across systems and within a hierarchy.
parents and children walk a code's prefix hierarchy one level per call β immediate parent/children only (depth-1); call iteratively for the full path (ICD-10-CM / HCPCS; ICD-10-PCS codes have no prefix parent)name_to_rxcui (drug name β RXCUI), ndc_to_rxcui / rxcui_to_ndc (NDC β RXCUI; NDCs accepted hyphenated in an FDA segment configuration β 4-4-2, 5-3-2, 5-4-1, or the 11-digit 5-4-2 β or as bare 10/11 digits), rxcui_to_ingredients / rxcui_to_brands (RXCUI β ingredient/brand RXCUIs, each with the target's RxNorm name)source provenance (which system or edge answered) so a chained call uses the right identifierchildren, name_to_rxcui, and rxcui_to_ndc can return large sets and paginate β a product can carry thousands of package NDCs; pass a response's nextCursor back as cursor (with an optional limit) to walk the full setmedcode_browse_hierarchyOrient in an unfamiliar system or enumerate a category's specific codes, without a search term.
node: top-level entries (ICD-10-CM categories, HCPCS range buckets, or ICD-10-PCS first-axis values)node: its immediate childrenBuilt on @cyanheads/mcp-ts-core:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/medical-codes-mcp-server)<a href="https://allmcps.com/mcp/medical-codes-mcp-server"><img src="https://allmcps.com/api/badge/medical-codes-mcp-server?style=directory" alt="Medical Codes MCP Server on AllMCPs" /></a>