@cyanheads/medical-codes-mcp-server 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +1 -1
- package/CLAUDE.md +1 -1
- package/README.md +6 -6
- package/changelog/0.1.x/0.1.3.md +17 -0
- package/changelog/0.1.x/0.1.4.md +18 -0
- package/data/medical-codes.db +0 -0
- package/dist/mcp-server/tools/definitions/browse-hierarchy.tool.d.ts +4 -3
- package/dist/mcp-server/tools/definitions/browse-hierarchy.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/browse-hierarchy.tool.js +15 -9
- package/dist/mcp-server/tools/definitions/browse-hierarchy.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/map-codes.tool.d.ts +5 -3
- package/dist/mcp-server/tools/definitions/map-codes.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/map-codes.tool.js +33 -6
- package/dist/mcp-server/tools/definitions/map-codes.tool.js.map +1 -1
- package/dist/services/code-index/code-index-service.d.ts.map +1 -1
- package/dist/services/code-index/code-index-service.js +11 -3
- package/dist/services/code-index/code-index-service.js.map +1 -1
- package/dist/services/code-index/schema.d.ts +16 -0
- package/dist/services/code-index/schema.d.ts.map +1 -1
- package/dist/services/code-index/schema.js +36 -0
- package/dist/services/code-index/schema.js.map +1 -1
- package/package.json +3 -3
- package/server.json +3 -3
package/AGENTS.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** medical-codes-mcp-server
|
|
4
|
-
**Version:** 0.1.
|
|
4
|
+
**Version:** 0.1.4
|
|
5
5
|
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.6`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
package/CLAUDE.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** medical-codes-mcp-server
|
|
4
|
-
**Version:** 0.1.
|
|
4
|
+
**Version:** 0.1.4
|
|
5
5
|
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.6`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/medical-codes-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -106,7 +106,7 @@ Validate whether a code is safe to submit, before a claim goes out.
|
|
|
106
106
|
|
|
107
107
|
Crosswalk a code across systems and within a hierarchy.
|
|
108
108
|
|
|
109
|
-
- Hierarchy directions (available now): `parents` and `children` walk a code's prefix hierarchy (ICD-10-CM / HCPCS; ICD-10-PCS codes have no prefix parent)
|
|
109
|
+
- Hierarchy directions (available now): `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)
|
|
110
110
|
- Drug directions (`name_to_rxcui`, `ndc_to_rxcui`, `rxcui_to_ndc`, `rxcui_to_ingredients`, `rxcui_to_brands`) are RxNorm-backed and return `direction_unavailable` until RxNorm is bundled in a later release
|
|
111
111
|
- Every result carries `source` provenance (which system or edge answered) so a chained call uses the right identifier
|
|
112
112
|
|
|
@@ -118,7 +118,7 @@ Orient in an unfamiliar system or enumerate a category's specific codes, without
|
|
|
118
118
|
|
|
119
119
|
- With no `node`: top-level entries (ICD-10-CM categories, HCPCS range buckets, or ICD-10-PCS first-axis values)
|
|
120
120
|
- With a `node`: its immediate children
|
|
121
|
-
- ICD-10-CM and HCPCS use a prefix hierarchy (a shorter code is the parent of a longer one); ICD-10-PCS is axis-based —
|
|
121
|
+
- ICD-10-CM and HCPCS use a prefix hierarchy (a shorter code is the parent of a longer one); ICD-10-PCS is axis-based — only the top-level Section axis is browsable; positions 2–7 are context-dependent on the preceding axis path and aren't enumerable from a flat partial code
|
|
122
122
|
|
|
123
123
|
## Features
|
|
124
124
|
|
|
@@ -301,13 +301,13 @@ See [`.env.example`](./.env.example) for the full list of optional overrides.
|
|
|
301
301
|
|
|
302
302
|
### Building the bundled index
|
|
303
303
|
|
|
304
|
-
The bundled `data/medical-codes.db` is committed and shipped — you only rebuild it when refreshing to a new federal release:
|
|
304
|
+
The bundled `data/medical-codes.db` is committed and shipped — you only rebuild it when refreshing to a new federal release. The script never downloads: extract the canonical `.gov` source files (ICD-10-CM/PCS order files, HCPCS `ANWEB.txt` — URLs in the script header) into a directory, then point the script at it:
|
|
305
305
|
|
|
306
306
|
```sh
|
|
307
|
-
bun run scripts/build-index.ts
|
|
307
|
+
bun run scripts/build-index.ts --from-dir <dir-with-source-files> --fy 2026
|
|
308
308
|
```
|
|
309
309
|
|
|
310
|
-
|
|
310
|
+
It parses the source files and emits the single `.db` file. It runs at build time only — the server never downloads anything.
|
|
311
311
|
|
|
312
312
|
### Docker
|
|
313
313
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Fix unreachable HCPCS hierarchy by seeding letter-range bucket rows, and make the map_codes no_mapping example match the requested direction."
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.1.3 — 2026-06-15
|
|
8
|
+
|
|
9
|
+
## Fixed
|
|
10
|
+
|
|
11
|
+
- **HCPCS hierarchy is now browsable** ([#1](https://github.com/cyanheads/medical-codes-mcp-server/issues/1)). HCPCS codes carry a single-letter range parent (`J0120` → `J`), but the federal ANWEB source file has no row for the buckets, so top-level `medcode_browse_hierarchy(system="HCPCS")` returned `[]`, `node="J"` threw `unknown_node`, and `medcode_map_codes(direction="parents")` on a HCPCS code threw `no_mapping`. The index now materializes one parentless header row per distinct present first letter (`new hcpcsSectionRows`), labeled from `HCPCS_SECTION_LABELS` / `hcpcsBucketLabel` (e.g. `J` → "Drugs administered other than oral method"; unmapped letters fall back to a generic section label so a range CMS adds later stays browsable). With the buckets present as `parent IS NULL` roots, top-level browse, bucket browse, and `map_codes` parents all work without service-layer changes — parallel to the ICD-10-CM 3-char categories.
|
|
12
|
+
- **`medcode_browse_hierarchy` empty-result notice** ([#1](https://github.com/cyanheads/medical-codes-mcp-server/issues/1)) no longer tells you to omit `node` when `node` was already omitted. It now branches: a missing-node case suggests the node may be a leaf; a genuinely empty top level reads "{system} has no top-level entries to browse in this release."
|
|
13
|
+
- **`medcode_map_codes` `no_mapping` example matches the direction** ([#2](https://github.com/cyanheads/medical-codes-mcp-server/issues/2)). The message hardcoded `(e.g. a top-level code has no parent)` for every direction, so `direction="children"` on a leaf code contradicted itself. The parenthetical is now keyed off `input.direction` (`children` → "a leaf code has no children", `parents` → "a top-level code has no parent") and omitted for directions that never reach the empty-hits branch.
|
|
14
|
+
|
|
15
|
+
## Changed
|
|
16
|
+
|
|
17
|
+
- **`better-sqlite3`** (optional) `^12.10.1` → `^12.11.1`.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "map_codes returns ok-empty with a notice for a resolvable code with no edge (no_mapping reserved for an unresolvable source); check_code names RxNorm as unbundled for out-of-scope numeric codes; PCS browse and depth-1 hierarchy walking documented accurately."
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.1.4 — 2026-06-19
|
|
8
|
+
|
|
9
|
+
## Changed
|
|
10
|
+
|
|
11
|
+
- **`medcode_map_codes` `parents`/`children` documented as depth-1** ([#7](https://github.com/cyanheads/medical-codes-mcp-server/issues/7)). The tool description and `direction` field now state they return the immediate parent or children only — one level per call — and that a full ancestor/descendant path requires iterative calls.
|
|
12
|
+
- **`medcode_browse_hierarchy` ICD-10-PCS description corrected** ([#4](https://github.com/cyanheads/medical-codes-mcp-server/issues/4)). The `@fileoverview`, tool description, `node` field, and `axes` output description no longer promise partial-code axis expansion. Only the top-level Section axis (position 1) is browsable; positions 2–7 are context-dependent on the preceding axis path and aren't enumerable from a flat partial code, so a partial PCS `node` returns no axes plus a notice. The test fixture (`build-fixture-db.ts`) now seeds only position-1 Section axes, mirroring the shipped index.
|
|
13
|
+
- **`@types/node`** (dev) `^25.9.3` → `^26.0.0`.
|
|
14
|
+
|
|
15
|
+
## Fixed
|
|
16
|
+
|
|
17
|
+
- **`medcode_map_codes` resolvable-but-no-edge is a success, not an error** ([#5](https://github.com/cyanheads/medical-codes-mcp-server/issues/5)). A resolvable code with no edge in the requested direction — an ICD-10-PCS code (no prefix parent) or a top-level ICD-10-CM/HCPCS code — now returns `hits: []` with a `ctx.enrich.notice(...)`, matching `medcode_get_code` (`parent: null`) and `medcode_search_codes`/`medcode_browse_hierarchy` (empty + notice). `no_mapping` is now reserved for a `from` that does not resolve to any bundled code.
|
|
18
|
+
- **`medcode_check_code` names RxNorm as unbundled for out-of-scope numeric codes** ([#8](https://github.com/cyanheads/medical-codes-mcp-server/issues/8)). A bare integer matches only the RXCUI shape, but RxNorm is not bundled in this release, so a CPT / HCPCS Level I code such as `99213` previously came back as "No RXNORM code matches …" — implying a populated table was searched. It now reports RxNorm as not bundled and flags the likely CPT / HCPCS Level I origin (out of scope — this server bundles ICD-10-CM, ICD-10-PCS, HCPCS Level II), gated on `hasRxNorm()` so the message auto-corrects to a genuine per-concept not-found once RxNorm lands. The `medcode_browse_hierarchy` empty-result notice for `system: RXNORM` is aligned to the same "not bundled" phrasing.
|
package/data/medical-codes.db
CHANGED
|
Binary file
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* @fileoverview medcode_browse_hierarchy — walk a code system's hierarchy
|
|
3
3
|
* without a search term. Returns the children of a node, or the top-level
|
|
4
4
|
* entries when no node is given. ICD-10-CM/HCPCS browse the prefix hierarchy
|
|
5
|
-
* (chapter → category → code); ICD-10-PCS
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* (chapter → category → code); ICD-10-PCS exposes only its top-level Section
|
|
6
|
+
* axis (position 1) — positions 2–7 are context-dependent on the preceding axis
|
|
7
|
+
* path and are not enumerable from a flat partial code, so a partial PCS node
|
|
8
|
+
* returns no axes plus a notice.
|
|
8
9
|
* @module mcp-server/tools/definitions/browse-hierarchy.tool
|
|
9
10
|
*/
|
|
10
11
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browse-hierarchy.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/browse-hierarchy.tool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"browse-hierarchy.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/browse-hierarchy.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA6BjE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6H9B,CAAC"}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* @fileoverview medcode_browse_hierarchy — walk a code system's hierarchy
|
|
3
3
|
* without a search term. Returns the children of a node, or the top-level
|
|
4
4
|
* entries when no node is given. ICD-10-CM/HCPCS browse the prefix hierarchy
|
|
5
|
-
* (chapter → category → code); ICD-10-PCS
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* (chapter → category → code); ICD-10-PCS exposes only its top-level Section
|
|
6
|
+
* axis (position 1) — positions 2–7 are context-dependent on the preceding axis
|
|
7
|
+
* path and are not enumerable from a flat partial code, so a partial PCS node
|
|
8
|
+
* returns no axes plus a notice.
|
|
8
9
|
* @module mcp-server/tools/definitions/browse-hierarchy.tool
|
|
9
10
|
*/
|
|
10
11
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
@@ -34,7 +35,7 @@ const AxisNodeSchema = z
|
|
|
34
35
|
.describe('A valid ICD-10-PCS axis value at a given character position.');
|
|
35
36
|
export const browseHierarchyTool = tool('medcode_browse_hierarchy', {
|
|
36
37
|
title: 'medical-codes-mcp-server',
|
|
37
|
-
description: "Walk a US medical code system's hierarchy for discovery without a search term. With no `node`, returns the top-level entries (ICD-10-CM categories, HCPCS range buckets, or ICD-10-PCS first-axis values). With a `node`, returns its immediate children. ICD-10-CM and HCPCS use a prefix hierarchy (a shorter code is the parent of a longer one); ICD-10-PCS is axis-based — each of its 7 characters is an independent axis (section, body system, root operation, body part, approach, device, qualifier),
|
|
38
|
+
description: "Walk a US medical code system's hierarchy for discovery without a search term. With no `node`, returns the top-level entries (ICD-10-CM categories, HCPCS range buckets, or ICD-10-PCS first-axis values). With a `node`, returns its immediate children. ICD-10-CM and HCPCS use a prefix hierarchy (a shorter code is the parent of a longer one); ICD-10-PCS is axis-based — each of its 7 characters is an independent axis (section, body system, root operation, body part, approach, device, qualifier), but only the top-level Section axis is browsable (omit `node`): positions 2–7 are context-dependent on the preceding axis path and are not enumerable from a flat partial code. Lets an agent orient in an unfamiliar system or enumerate a category's specific codes.",
|
|
38
39
|
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
|
|
39
40
|
sourceUrl: SOURCE_URL,
|
|
40
41
|
input: z.object({
|
|
@@ -42,7 +43,7 @@ export const browseHierarchyTool = tool('medcode_browse_hierarchy', {
|
|
|
42
43
|
node: z
|
|
43
44
|
.string()
|
|
44
45
|
.optional()
|
|
45
|
-
.describe('A node to expand. For ICD-10-CM/HCPCS, a code whose children to list.
|
|
46
|
+
.describe('A node to expand. For ICD-10-CM/HCPCS, a code whose children to list. ICD-10-PCS supports only top-level Section browsing (omit `node`) — a partial PCS code does not expand to next-position axis values. Omit for the top level.'),
|
|
46
47
|
limit: z
|
|
47
48
|
.number()
|
|
48
49
|
.int()
|
|
@@ -60,7 +61,7 @@ export const browseHierarchyTool = tool('medcode_browse_hierarchy', {
|
|
|
60
61
|
.describe('Child codes under the requested node or top level. Empty when kind is "axes".'),
|
|
61
62
|
axes: z
|
|
62
63
|
.array(AxisNodeSchema)
|
|
63
|
-
.describe('
|
|
64
|
+
.describe('The top-level ICD-10-PCS Section axis values (only the Section axis is enumerable). Empty when kind is "codes".'),
|
|
64
65
|
}),
|
|
65
66
|
enrichment: {
|
|
66
67
|
truncated: z.boolean().describe('True when the returned list was capped at the limit.'),
|
|
@@ -81,7 +82,8 @@ export const browseHierarchyTool = tool('medcode_browse_hierarchy', {
|
|
|
81
82
|
],
|
|
82
83
|
handler(input, ctx) {
|
|
83
84
|
const limit = input.limit ?? getServerConfig().maxResults;
|
|
84
|
-
const
|
|
85
|
+
const svc = getCodeIndexService();
|
|
86
|
+
const result = svc.browse(input.system, input.node, limit);
|
|
85
87
|
if (result.kind === 'unknown_node') {
|
|
86
88
|
throw ctx.fail('unknown_node', `Node "${input.node}" does not exist in ${input.system}.`, {
|
|
87
89
|
...ctx.recoveryFor('unknown_node'),
|
|
@@ -103,8 +105,12 @@ export const browseHierarchyTool = tool('medcode_browse_hierarchy', {
|
|
|
103
105
|
}
|
|
104
106
|
ctx.enrich({ truncated: result.codes.length >= limit, shown: result.codes.length, cap: limit });
|
|
105
107
|
if (result.codes.length === 0) {
|
|
106
|
-
ctx.enrich.notice(
|
|
107
|
-
|
|
108
|
+
ctx.enrich.notice(input.node
|
|
109
|
+
? `No children under "${input.node}" in ${input.system} — it may be a leaf code. ` +
|
|
110
|
+
'Omit `node` to list the top level, or browse a parent category.'
|
|
111
|
+
: input.system === 'RXNORM' && !svc.hasRxNorm()
|
|
112
|
+
? 'RxNorm is not bundled in this release — the drug-crosswalk layer (RXCUI, NDC, ingredients, brands) lands in a later release.'
|
|
113
|
+
: `${input.system} has no top-level entries to browse in this release.`);
|
|
108
114
|
}
|
|
109
115
|
ctx.log.info('Browsed hierarchy', { node: input.node ?? null, count: result.codes.length });
|
|
110
116
|
return { kind: 'codes', codes: result.codes, axes: [] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browse-hierarchy.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/browse-hierarchy.tool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"browse-hierarchy.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/browse-hierarchy.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,UAAU,GACd,2HAA2H,CAAC;AAE9H,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC9D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAClF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACxF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACxE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACrF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CAC1E,CAAC;KACD,QAAQ,CAAC,uDAAuD,CAAC,CAAC;AAErE,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;IACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACrF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;CAC7E,CAAC;KACD,QAAQ,CAAC,8DAA8D,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAA0B,EAAE;IAClE,KAAK,EAAE,0BAA0B;IACjC,WAAW,EACT,wvBAAwvB;IAC1vB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;IAC/E,SAAS,EAAE,UAAU;IAErB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACjE,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,oOAAoO,CACrO;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,2EAA2E,CAAC;KACzF,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aACvB,QAAQ,CACP,6FAA6F,CAC9F;QACH,KAAK,EAAE,CAAC;aACL,KAAK,CAAC,cAAc,CAAC;aACrB,QAAQ,CAAC,+EAA+E,CAAC;QAC5F,IAAI,EAAE,CAAC;aACJ,KAAK,CAAC,cAAc,CAAC;aACrB,QAAQ,CACP,iHAAiH,CAClH;KACJ,CAAC;IAEF,UAAU,EAAE;QACV,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QACzE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACvD,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,qFAAqF,CACtF;KACJ;IAED,MAAM,EAAE;QACN;YACE,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,wCAAwC;YAC9C,QAAQ,EAAE,iEAAiE;SAC5E;KACF;IAED,OAAO,CAAC,KAAK,EAAE,GAAG;QAChB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,UAAU,CAAC;QAC1D,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACnC,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,KAAK,CAAC,IAAI,uBAAuB,KAAK,CAAC,MAAM,GAAG,EAAE;gBACxF,GAAG,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9F,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,GAAG,CAAC,MAAM,CAAC,MAAM,CACf,KAAK,CAAC,IAAI;oBACR,CAAC,CAAC,gFAAgF;wBAC9E,gFAAgF;wBAChF,4EAA4E;wBAC5E,gFAAgF;wBAChF,sBAAsB;oBAC1B,CAAC,CAAC,qDAAqD,CAC1D,CAAC;YACJ,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1F,OAAO,EAAE,IAAI,EAAE,MAAe,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACjE,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAChG,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,MAAM,CAAC,MAAM,CACf,KAAK,CAAC,IAAI;gBACR,CAAC,CAAC,sBAAsB,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,MAAM,4BAA4B;oBAC9E,iEAAiE;gBACrE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;oBAC7C,CAAC,CAAC,8HAA8H;oBAChI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,sDAAsD,CAC5E,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5F,OAAO,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACnE,CAAC;IAED,+EAA+E;IAC/E,gFAAgF;IAChF,gFAAgF;IAChF,iCAAiC;IACjC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,CAAC,qBAAqB,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvD,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,gBAAgB,CAAC,CAAC;YACvD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CACR,4BAA4B,EAC5B,EAAE,EACF,gCAAgC,EAChC,kBAAkB,CACnB,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -39,8 +39,8 @@ export declare const mapCodesTool: import("@cyanheads/mcp-ts-core").ToolDefiniti
|
|
|
39
39
|
}, z.core.$strip>, readonly [{
|
|
40
40
|
readonly reason: "no_mapping";
|
|
41
41
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
42
|
-
readonly when: "The source
|
|
43
|
-
readonly recovery: "
|
|
42
|
+
readonly when: "The source value did not resolve to any bundled code.";
|
|
43
|
+
readonly recovery: "Check the code, or decode it with medcode_get_code first. A resolvable code with no edge in the requested direction returns an empty result with a notice, not this error.";
|
|
44
44
|
}, {
|
|
45
45
|
readonly reason: "direction_unavailable";
|
|
46
46
|
readonly code: JsonRpcErrorCode.InvalidParams;
|
|
@@ -51,5 +51,7 @@ export declare const mapCodesTool: import("@cyanheads/mcp-ts-core").ToolDefiniti
|
|
|
51
51
|
readonly code: JsonRpcErrorCode.InvalidParams;
|
|
52
52
|
readonly when: "The source code is present in more than one system and no `system` was given.";
|
|
53
53
|
readonly recovery: "Re-call with an explicit `system` to disambiguate.";
|
|
54
|
-
}],
|
|
54
|
+
}], {
|
|
55
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
56
|
+
}>;
|
|
55
57
|
//# sourceMappingURL=map-codes.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-codes.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/map-codes.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAkBjE,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"map-codes.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/map-codes.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAkBjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6KvB,CAAC"}
|
|
@@ -23,7 +23,7 @@ const DIRECTIONS = [
|
|
|
23
23
|
];
|
|
24
24
|
export const mapCodesTool = tool('medcode_map_codes', {
|
|
25
25
|
title: 'medical-codes-mcp-server',
|
|
26
|
-
description: "Crosswalk a US medical code or drug across systems and within a hierarchy. Hierarchy directions (available now): `parents` and `children` walk a code's prefix hierarchy (ICD-10-CM/HCPCS; ICD-10-PCS codes have no prefix parent). Drug directions (RxNorm): `name_to_rxcui`, `ndc_to_rxcui`, `rxcui_to_ndc`, `rxcui_to_ingredients`, `rxcui_to_brands` — these return an error until RxNorm is bundled in a later release. Every result carries `source` provenance (which system or edge answered) so a chained call (e.g. into openfda with a resolved NDC) uses the right identifier.",
|
|
26
|
+
description: "Crosswalk a US medical code or drug across systems and within a hierarchy. Hierarchy directions (available now): `parents` and `children` walk a code's prefix hierarchy one level per call — immediate parent/children only (depth-1); call iteratively for the full ancestor or descendant path (ICD-10-CM/HCPCS; ICD-10-PCS codes have no prefix parent). A resolvable code with no edge in the requested direction is a successful empty result with a notice, not an error. Drug directions (RxNorm): `name_to_rxcui`, `ndc_to_rxcui`, `rxcui_to_ndc`, `rxcui_to_ingredients`, `rxcui_to_brands` — these return an error until RxNorm is bundled in a later release. Every result carries `source` provenance (which system or edge answered) so a chained call (e.g. into openfda with a resolved NDC) uses the right identifier.",
|
|
27
27
|
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
|
|
28
28
|
sourceUrl: SOURCE_URL,
|
|
29
29
|
input: z.object({
|
|
@@ -33,7 +33,7 @@ export const mapCodesTool = tool('medcode_map_codes', {
|
|
|
33
33
|
.describe('The source value: a code (for parents/children), a drug name, an NDC, or an RXCUI.'),
|
|
34
34
|
direction: z
|
|
35
35
|
.enum(DIRECTIONS)
|
|
36
|
-
.describe('What to map to. parents/children
|
|
36
|
+
.describe('What to map to. parents/children return the immediate parent or children only (depth-1) — call iteratively to walk a full path; the rxcui/ndc/name directions are RxNorm drug crosswalks (phase 2).'),
|
|
37
37
|
system: z
|
|
38
38
|
.enum(SYSTEM_IDS)
|
|
39
39
|
.optional()
|
|
@@ -65,12 +65,18 @@ export const mapCodesTool = tool('medcode_map_codes', {
|
|
|
65
65
|
.describe('One crosswalk result tagged with the edge that produced it.'))
|
|
66
66
|
.describe('Crosswalk results, each tagged with the edge that produced it.'),
|
|
67
67
|
}),
|
|
68
|
+
enrichment: {
|
|
69
|
+
notice: z
|
|
70
|
+
.string()
|
|
71
|
+
.optional()
|
|
72
|
+
.describe('Guidance when a resolvable code has no edge in the requested direction (e.g. a top-level code has no parent; a leaf has no children; ICD-10-PCS codes have no prefix parent).'),
|
|
73
|
+
},
|
|
68
74
|
errors: [
|
|
69
75
|
{
|
|
70
76
|
reason: 'no_mapping',
|
|
71
77
|
code: JsonRpcErrorCode.NotFound,
|
|
72
|
-
when: 'The source
|
|
73
|
-
recovery: '
|
|
78
|
+
when: 'The source value did not resolve to any bundled code.',
|
|
79
|
+
recovery: 'Check the code, or decode it with medcode_get_code first. A resolvable code with no edge in the requested direction returns an empty result with a notice, not this error.',
|
|
74
80
|
},
|
|
75
81
|
{
|
|
76
82
|
reason: 'direction_unavailable',
|
|
@@ -95,10 +101,31 @@ export const mapCodesTool = tool('medcode_map_codes', {
|
|
|
95
101
|
throw ctx.fail('ambiguous_system', `"${input.from.trim()}" exists in multiple systems: ${result.systems.join(', ')}.`, { candidateSystems: result.systems, ...ctx.recoveryFor('ambiguous_system') });
|
|
96
102
|
}
|
|
97
103
|
if (result.kind === 'source_not_found') {
|
|
98
|
-
throw ctx.fail('no_mapping', `No
|
|
104
|
+
throw ctx.fail('no_mapping', `No bundled code matches "${input.from.trim()}".`, {
|
|
105
|
+
...ctx.recoveryFor('no_mapping'),
|
|
106
|
+
});
|
|
99
107
|
}
|
|
100
108
|
if (result.hits.length === 0) {
|
|
101
|
-
|
|
109
|
+
// Resolved, but no edge in this direction — a successful empty result with a
|
|
110
|
+
// notice, consistent with search_codes / browse_hierarchy. Only `parents` and
|
|
111
|
+
// `children` reach this branch (drug directions return source_not_found).
|
|
112
|
+
const reason = input.direction === 'children'
|
|
113
|
+
? 'it is a leaf code with no children'
|
|
114
|
+
: result.resolvedSystem === 'ICD10PCS'
|
|
115
|
+
? 'ICD-10-PCS codes are axis-based and have no prefix parent'
|
|
116
|
+
: 'it is a top-level code with no parent';
|
|
117
|
+
ctx.enrich.notice(`"${input.from.trim()}" resolved in ${result.resolvedSystem} but has no ${input.direction} — ${reason}. Decode it with medcode_get_code, or map the opposite direction.`);
|
|
118
|
+
ctx.log.info('Mapped code (no edge)', {
|
|
119
|
+
from: input.from,
|
|
120
|
+
direction: input.direction,
|
|
121
|
+
resolvedSystem: result.resolvedSystem,
|
|
122
|
+
});
|
|
123
|
+
return {
|
|
124
|
+
from: input.from.trim(),
|
|
125
|
+
direction: input.direction,
|
|
126
|
+
resolvedSystem: result.resolvedSystem,
|
|
127
|
+
hits: [],
|
|
128
|
+
};
|
|
102
129
|
}
|
|
103
130
|
ctx.log.info('Mapped code', {
|
|
104
131
|
from: input.from,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-codes.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/map-codes.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EAAqB,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE/E,MAAM,UAAU,GACd,oHAAoH,CAAC;AAEvH,MAAM,UAAU,GAAG;IACjB,SAAS;IACT,UAAU;IACV,eAAe;IACf,cAAc;IACd,cAAc;IACd,sBAAsB;IACtB,iBAAiB;CACyB,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE;IACpD,KAAK,EAAE,0BAA0B;IACjC,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"map-codes.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/map-codes.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EAAqB,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE/E,MAAM,UAAU,GACd,oHAAoH,CAAC;AAEvH,MAAM,UAAU,GAAG;IACjB,SAAS;IACT,UAAU;IACV,eAAe;IACf,cAAc;IACd,cAAc;IACd,sBAAsB;IACtB,iBAAiB;CACyB,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE;IACpD,KAAK,EAAE,0BAA0B;IACjC,WAAW,EACT,yyBAAyyB;IAC3yB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;IAC/E,SAAS,EAAE,UAAU;IAErB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,oFAAoF,CACrF;QACH,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,UAAU,CAAC;aAChB,QAAQ,CACP,qMAAqM,CACtM;QACH,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,UAAU,CAAC;aAChB,QAAQ,EAAE;aACV,QAAQ,CACP,oFAAoF,CACrF;KACJ,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QACzE,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,oEAAoE,CAAC;QACjF,IAAI,EAAE,CAAC;aACJ,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CACP,gGAAgG,CACjG;YACH,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,kGAAkG,CACnG;YACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YAC9E,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,2CAA2C,CAAC;SACzD,CAAC;aACD,QAAQ,CAAC,6DAA6D,CAAC,CAC3E;aACA,QAAQ,CAAC,gEAAgE,CAAC;KAC9E,CAAC;IAEF,UAAU,EAAE;QACV,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+KAA+K,CAChL;KACJ;IAED,MAAM,EAAE;QACN;YACE,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,uDAAuD;YAC7D,QAAQ,EACN,4KAA4K;SAC/K;QACD;YACE,MAAM,EAAE,uBAAuB;YAC/B,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,8EAA8E;YACpF,QAAQ,EAAE,iFAAiF;SAC5F;QACD;YACE,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,+EAA+E;YACrF,QAAQ,EAAE,oDAAoD;SAC/D;KACF;IAED,OAAO,CAAC,KAAK,EAAE,GAAG;QAChB,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;QAElC,IAAI,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1E,MAAM,GAAG,CAAC,IAAI,CACZ,uBAAuB,EACvB,QAAQ,KAAK,CAAC,SAAS,iEAAiE,EACxF,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE,CAChD,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAEtE,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,GAAG,CAAC,IAAI,CACZ,kBAAkB,EAClB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,iCAAiC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAClF,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAC7E,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACvC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,4BAA4B,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;gBAC9E,GAAG,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC;aACjC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,6EAA6E;YAC7E,8EAA8E;YAC9E,0EAA0E;YAC1E,MAAM,MAAM,GACV,KAAK,CAAC,SAAS,KAAK,UAAU;gBAC5B,CAAC,CAAC,oCAAoC;gBACtC,CAAC,CAAC,MAAM,CAAC,cAAc,KAAK,UAAU;oBACpC,CAAC,CAAC,2DAA2D;oBAC7D,CAAC,CAAC,uCAAuC,CAAC;YAChD,GAAG,CAAC,MAAM,CAAC,MAAM,CACf,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,MAAM,CAAC,cAAc,eAAe,KAAK,CAAC,SAAS,MAAM,MAAM,mEAAmE,CACzK,CAAC;YACF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACpC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,cAAc,EAAE,MAAM,CAAC,cAAc;aACtC,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;gBACvB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,IAAI,EAAE,EAAE;aACT,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;SACzB,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;YACvB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5B,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzD,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG;YACZ,MAAM,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,IAAI,EAAE;YACxC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,wBAAwB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;YAC5E,EAAE;SACH,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CACR,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAClH,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-index-service.d.ts","sourceRoot":"","sources":["../../../src/services/code-index/code-index-service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"code-index-service.d.ts","sourceRoot":"","sources":["../../../src/services/code-index/code-index-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -218,15 +218,23 @@ export class CodeIndexService {
|
|
|
218
218
|
if (present.length === 0) {
|
|
219
219
|
// Echo a best-guess system for the caller's orientation, if shape suggests one.
|
|
220
220
|
const detected = system ?? detectSystems(rawCode)[0];
|
|
221
|
+
// A bare integer matches only the RXCUI shape, but RxNorm is not bundled yet
|
|
222
|
+
// (phase 2). "No RXNORM code matches X" would imply we searched a populated
|
|
223
|
+
// table; instead name it as unbundled and flag the likely CPT / HCPCS Level I
|
|
224
|
+
// origin. Gating on hasRxNorm() lets the message auto-correct to a genuine
|
|
225
|
+
// per-concept not-found once RxNorm lands.
|
|
226
|
+
const whyNot = detected === 'RXNORM' && !this.hasRxNorm()
|
|
227
|
+
? `"${rawCode.trim()}" looks like an RxNorm RXCUI or a CPT / HCPCS Level I code. RxNorm is not bundled in this release, and CPT / HCPCS Level I are out of scope — this server bundles ICD-10-CM, ICD-10-PCS, and HCPCS Level II.`
|
|
228
|
+
: detected
|
|
229
|
+
? `No ${detected} code matches "${rawCode.trim()}" in the bundled release.`
|
|
230
|
+
: `"${rawCode.trim()}" does not match the shape of any bundled code system.`;
|
|
221
231
|
return {
|
|
222
232
|
kind: 'resolved',
|
|
223
233
|
result: {
|
|
224
234
|
system: detected ?? 'ICD10CM',
|
|
225
235
|
code: rawCode.trim().toUpperCase(),
|
|
226
236
|
status: 'unknown',
|
|
227
|
-
whyNot
|
|
228
|
-
? `No ${detected} code matches "${rawCode.trim()}" in the bundled release.`
|
|
229
|
-
: `"${rawCode.trim()}" does not match the shape of any bundled code system.`,
|
|
237
|
+
whyNot,
|
|
230
238
|
},
|
|
231
239
|
};
|
|
232
240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-index-service.js","sourceRoot":"","sources":["../../../src/services/code-index/code-index-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-index-service.js","sourceRoot":"","sources":["../../../src/services/code-index/code-index-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,22 @@ export declare function icd10cmParent(code: string): string | null;
|
|
|
43
43
|
* to (e.g. `J0120` → `J`). The bucket itself (a 1-char "code") has no parent.
|
|
44
44
|
*/
|
|
45
45
|
export declare function hcpcsParent(code: string): string | null;
|
|
46
|
+
/**
|
|
47
|
+
* Human-readable label for each HCPCS Level II single-letter range bucket. The
|
|
48
|
+
* federal ANWEB source file lists individual codes but carries no row for the
|
|
49
|
+
* letter ranges themselves, so the bucket rows the index materializes (parallel
|
|
50
|
+
* to ICD-10-CM 3-char categories) are labeled from this map. Descriptions follow
|
|
51
|
+
* the CMS HCPCS Level II section groupings. A letter absent here falls back to a
|
|
52
|
+
* generic label in {@link hcpcsBucketLabel} so a range CMS introduces later is
|
|
53
|
+
* still browsable rather than a dead branch.
|
|
54
|
+
*/
|
|
55
|
+
export declare const HCPCS_SECTION_LABELS: Record<string, string>;
|
|
56
|
+
/**
|
|
57
|
+
* Label a HCPCS letter-range bucket from {@link HCPCS_SECTION_LABELS}, falling
|
|
58
|
+
* back to a generic section label for an unmapped letter so a range CMS adds in
|
|
59
|
+
* a future quarterly revision is still materialized as a browsable header.
|
|
60
|
+
*/
|
|
61
|
+
export declare function hcpcsBucketLabel(letter: string): string;
|
|
46
62
|
/**
|
|
47
63
|
* ICD-10-CM chapter label from the first character + leading digits of the
|
|
48
64
|
* category. The 3-char category prefix (letter + 2 digits) is a coarse but
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/services/code-index/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,UAAU,u+CA4DtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,gKACa,CAAC;AAE1C,eAAO,MAAM,cAAc,oFAAoF,CAAC;AAEhH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEzD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD"}
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/services/code-index/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,UAAU,u+CA4DtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,gKACa,CAAC;AAE1C,eAAO,MAAM,cAAc,oFAAoF,CAAC;AAEhH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEzD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEvD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkBvD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD"}
|
|
@@ -115,6 +115,42 @@ export function icd10cmParent(code) {
|
|
|
115
115
|
export function hcpcsParent(code) {
|
|
116
116
|
return code.length > 1 ? code.charAt(0) : null;
|
|
117
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Human-readable label for each HCPCS Level II single-letter range bucket. The
|
|
120
|
+
* federal ANWEB source file lists individual codes but carries no row for the
|
|
121
|
+
* letter ranges themselves, so the bucket rows the index materializes (parallel
|
|
122
|
+
* to ICD-10-CM 3-char categories) are labeled from this map. Descriptions follow
|
|
123
|
+
* the CMS HCPCS Level II section groupings. A letter absent here falls back to a
|
|
124
|
+
* generic label in {@link hcpcsBucketLabel} so a range CMS introduces later is
|
|
125
|
+
* still browsable rather than a dead branch.
|
|
126
|
+
*/
|
|
127
|
+
export const HCPCS_SECTION_LABELS = {
|
|
128
|
+
A: 'Transportation services and medical & surgical supplies',
|
|
129
|
+
B: 'Enteral and parenteral therapy',
|
|
130
|
+
C: 'Outpatient prospective payment system (OPPS) temporary codes',
|
|
131
|
+
E: 'Durable medical equipment (DME)',
|
|
132
|
+
G: 'Procedures and professional services (temporary)',
|
|
133
|
+
H: 'Behavioral health and substance abuse treatment services',
|
|
134
|
+
J: 'Drugs administered other than oral method',
|
|
135
|
+
K: 'Durable medical equipment (temporary)',
|
|
136
|
+
L: 'Orthotic and prosthetic procedures and devices',
|
|
137
|
+
M: 'Other medical services',
|
|
138
|
+
P: 'Pathology and laboratory services',
|
|
139
|
+
Q: 'Temporary codes',
|
|
140
|
+
R: 'Diagnostic radiology services',
|
|
141
|
+
S: 'Temporary national codes (non-Medicare)',
|
|
142
|
+
T: 'National codes for state Medicaid agencies',
|
|
143
|
+
U: 'Coronavirus diagnostic and laboratory tests',
|
|
144
|
+
V: 'Vision and hearing services',
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* Label a HCPCS letter-range bucket from {@link HCPCS_SECTION_LABELS}, falling
|
|
148
|
+
* back to a generic section label for an unmapped letter so a range CMS adds in
|
|
149
|
+
* a future quarterly revision is still materialized as a browsable header.
|
|
150
|
+
*/
|
|
151
|
+
export function hcpcsBucketLabel(letter) {
|
|
152
|
+
return HCPCS_SECTION_LABELS[letter] ?? `HCPCS Level II section ${letter}`;
|
|
153
|
+
}
|
|
118
154
|
/**
|
|
119
155
|
* ICD-10-CM chapter label from the first character + leading digits of the
|
|
120
156
|
* category. The 3-char category prefix (letter + 2 digits) is a coarse but
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/services/code-index/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;yCACU,CAAC;AAE1C,MAAM,CAAC,MAAM,cAAc,GAAG,iFAAiF,CAAC;AAEhH;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAgB,EAAE,WAAmB;IAC/D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAC7C,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IAChD,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACtC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/services/code-index/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;yCACU,CAAC;AAE1C,MAAM,CAAC,MAAM,cAAc,GAAG,iFAAiF,CAAC;AAEhH;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAgB,EAAE,WAAmB;IAC/D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAC7C,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IAChD,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,CAAC,EAAE,yDAAyD;IAC5D,CAAC,EAAE,gCAAgC;IACnC,CAAC,EAAE,8DAA8D;IACjE,CAAC,EAAE,iCAAiC;IACpC,CAAC,EAAE,kDAAkD;IACrD,CAAC,EAAE,0DAA0D;IAC7D,CAAC,EAAE,2CAA2C;IAC9C,CAAC,EAAE,uCAAuC;IAC1C,CAAC,EAAE,gDAAgD;IACnD,CAAC,EAAE,wBAAwB;IAC3B,CAAC,EAAE,mCAAmC;IACtC,CAAC,EAAE,iBAAiB;IACpB,CAAC,EAAE,+BAA+B;IAClC,CAAC,EAAE,yCAAyC;IAC5C,CAAC,EAAE,4CAA4C;IAC/C,CAAC,EAAE,6CAA6C;IAChD,CAAC,EAAE,6BAA6B;CACjC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,OAAO,oBAAoB,CAAC,MAAM,CAAC,IAAI,0BAA0B,MAAM,EAAE,CAAC;AAC5E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACtC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/medical-codes-mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Decode, search, validate, and crosswalk US medical codes — ICD-10-CM, ICD-10-PCS, HCPCS Level II — over a bundled offline index via MCP. STDIO or Streamable HTTP.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -77,12 +77,12 @@
|
|
|
77
77
|
"zod": "^4.4.3"
|
|
78
78
|
},
|
|
79
79
|
"optionalDependencies": {
|
|
80
|
-
"better-sqlite3": "^12.
|
|
80
|
+
"better-sqlite3": "^12.11.1"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@biomejs/biome": "2.5.0",
|
|
84
84
|
"@types/better-sqlite3": "^7.6.13",
|
|
85
|
-
"@types/node": "
|
|
85
|
+
"@types/node": "^26.0.0",
|
|
86
86
|
"depcheck": "^1.4.7",
|
|
87
87
|
"ignore": "^7.0.5",
|
|
88
88
|
"tsc-alias": "^1.8.17",
|
package/server.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"url": "https://github.com/cyanheads/medical-codes-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.4",
|
|
10
10
|
"remotes": [
|
|
11
11
|
{
|
|
12
12
|
"type": "streamable-http",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
20
20
|
"identifier": "@cyanheads/medical-codes-mcp-server",
|
|
21
21
|
"runtimeHint": "node",
|
|
22
|
-
"version": "0.1.
|
|
22
|
+
"version": "0.1.4",
|
|
23
23
|
"packageArguments": [
|
|
24
24
|
{
|
|
25
25
|
"type": "positional",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
62
62
|
"identifier": "@cyanheads/medical-codes-mcp-server",
|
|
63
63
|
"runtimeHint": "node",
|
|
64
|
-
"version": "0.1.
|
|
64
|
+
"version": "0.1.4",
|
|
65
65
|
"packageArguments": [
|
|
66
66
|
{
|
|
67
67
|
"type": "positional",
|