{"_id":"@cyanheads/npi-providers-mcp-server","_rev":"13-44d17d9b721e65e42f35f5052b913234","name":"@cyanheads/npi-providers-mcp-server","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@cyanheads/npi-providers-mcp-server","version":"0.1.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/npi-providers-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/npi-providers-mcp-server@0.1.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"bin":{"npi-providers-mcp-server":"dist/index.js"},"dist":{"shasum":"bbb70129f1d5984ace75cc9e731a1af29e97b035","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.1.0.tgz","fileCount":57,"integrity":"sha512-L169d6DwKNp2AZE4K29uRBR7VEnV+3fPYRolglfCaPdaohWDuP4FGz97tqKxAFd3SVSn6NRgd9Mbr83vDhhiYA==","signatures":[{"sig":"MEUCIQCUCbTIAUbgL9LISQiNdroiwsWeN2QCxIZqz586Gnmb3wIgXeuA351xKasNSQvx7vwF8kMzg91WVzh38H6hbeu0hkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":939179},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"bbb70129f1d5984ace75cc9e731a1af29e97b035","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-L169d6DwKNp2AZE4K29uRBR7VEnV+3fPYRolglfCaPdaohWDuP4FGz97tqKxAFd3SVSn6NRgd9Mbr83vDhhiYA==","repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Look up US healthcare providers in the NPPES NPI registry and resolve NUCC specialty codes via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.2","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"25.9.3","@biomejs/biome":"2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/npi-providers-mcp-server_0.1.0_1781373293419_0.5078922785831239","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@cyanheads/npi-providers-mcp-server","version":"0.1.1","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"author":{"url":"https://github.com/cyanheads/npi-providers-mcp-server#readme","name":"cyanheads","email":"casey@caseyjhand.com"},"license":"Apache-2.0","_id":"@cyanheads/npi-providers-mcp-server@0.1.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"bin":{"npi-providers-mcp-server":"dist/index.js"},"dist":{"shasum":"6701bc6204a35c90bd98f1bcb6f01dd4af3007ef","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.1.1.tgz","fileCount":58,"integrity":"sha512-VXzCxEzFwDW/yey9MNL7DT5Aph58YdaxW0Nb5HfvS5VnLCSqy9w32mek0/NGOKeE5UdebEJXWNEVDwikQnD1Nw==","signatures":[{"sig":"MEUCIQDGjrc0zug/RyHfuhhDk8JAvQ+iLoDe6rPscdz84bw45gIgRPrl6kPhkXRYutsRdAO7t/KNFerj04riQTZm0eyQF4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":939604},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=24.0.0"},"gitHead":"a5efce82d25711fdc1a9b68ca956c9e3cfd386fa","mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"11.12.1","description":"Look up US healthcare providers in the NPPES NPI registry and resolve NUCC specialty codes via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.2","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"25.9.3","@biomejs/biome":"2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/npi-providers-mcp-server_0.1.1_1781433580929_0.9973963523087781","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@cyanheads/npi-providers-mcp-server","version":"0.1.2","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/npi-providers-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/npi-providers-mcp-server@0.1.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"bin":{"npi-providers-mcp-server":"dist/index.js"},"dist":{"shasum":"3becd50f44d593fdb842c6b88e2a1d3dfe288cc7","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.1.2.tgz","fileCount":59,"integrity":"sha512-mvdJMWx1vzW6J9Ls40phF6dZ/nC3fuauigIQ4TA8nfKbzB57cwSjF5CW2H/Qnj90iY6fx7jLZMTw/eY7i1HPfw==","signatures":[{"sig":"MEUCIQDh8koNvsx4/i/ItG1n6WZGSx99hyK/Mk7007dzxWt87AIgbyXl/ExNDVS/m/koahEpqmTmLEkltNOtpXZsDLZj8xA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":940698},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"3becd50f44d593fdb842c6b88e2a1d3dfe288cc7","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-mvdJMWx1vzW6J9Ls40phF6dZ/nC3fuauigIQ4TA8nfKbzB57cwSjF5CW2H/Qnj90iY6fx7jLZMTw/eY7i1HPfw==","repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Look up US healthcare providers in the NPPES NPI registry and resolve NUCC specialty codes via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.2","devDependencies":{"ignore":"^7.0.5","vitest":"4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"25.9.3","@biomejs/biome":"2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/npi-providers-mcp-server_0.1.2_1781545533289_0.2287249931589901","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@cyanheads/npi-providers-mcp-server","version":"0.1.3","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/npi-providers-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/npi-providers-mcp-server@0.1.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"bin":{"npi-providers-mcp-server":"dist/index.js"},"dist":{"shasum":"699ccc2630a2ffbb16251209aba8c263960ecf77","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.1.3.tgz","fileCount":60,"integrity":"sha512-SK0FgMadAV/J1aVfQslnkDZBw3uN7F5STONY4ZPbKG5QxvZXRBPOojuvaa7jX2x8d2L+BK1yA4HD7n/WnENxcQ==","signatures":[{"sig":"MEQCIHLTHXbJTFfKuTNRheVXZ1OpxNnbx2Ud3EIQ+1wu806aAiBQGHkjh+C2G/Q691Qngt7MQclkqer3nIKhKyp28IOLqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":943127},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"699ccc2630a2ffbb16251209aba8c263960ecf77","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-SK0FgMadAV/J1aVfQslnkDZBw3uN7F5STONY4ZPbKG5QxvZXRBPOojuvaa7jX2x8d2L+BK1yA4HD7n/WnENxcQ==","repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Look up US healthcare providers in the NPPES NPI registry and resolve NUCC specialty codes via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.2","devDependencies":{"ignore":"^7.0.5","vitest":"4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"26.0.0","@biomejs/biome":"2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/npi-providers-mcp-server_0.1.3_1781957543548_0.7356031044253624","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@cyanheads/npi-providers-mcp-server","version":"0.1.4","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/npi-providers-mcp-server@0.1.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"bin":{"npi-providers-mcp-server":"dist/index.js"},"dist":{"shasum":"1cfd82fb2c9673e4b7f74cf5b8980ab38ea1bddb","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.1.4.tgz","fileCount":61,"integrity":"sha512-3kBR/dcHxq2YOLwkqsrEgeGPTRHN5XAecJq4IMTE51xZ5SaM24qV0mKoJ+BQmHyFpT0eskO6NTShcNfg25OPaw==","signatures":[{"sig":"MEUCICRXi9JvHpWBGUkHihhGZiIh5PLAuxeUeexQ1FuZ5RgQAiEA1EmNIXXfp0w3bN9jqJJ/cbkpjUGDzfWtoFMdiMUv/Wo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":951204},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"1cfd82fb2c9673e4b7f74cf5b8980ab38ea1bddb","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-3kBR/dcHxq2YOLwkqsrEgeGPTRHN5XAecJq4IMTE51xZ5SaM24qV0mKoJ+BQmHyFpT0eskO6NTShcNfg25OPaw==","repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Look up US healthcare providers in the NPPES NPI registry and resolve NUCC specialty codes via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.9.0","typescript":"^6.0.3","@types/node":"26.1.1","@biomejs/biome":"2.5.3","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/npi-providers-mcp-server_0.1.4_1783787535699_0.1373419592447609","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@cyanheads/npi-providers-mcp-server","version":"0.1.5","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/npi-providers-mcp-server@0.1.5","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"bin":{"npi-providers-mcp-server":"dist/index.js"},"dist":{"shasum":"a9add89b40274bf5dde71453386acd916c658c4c","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.1.5.tgz","fileCount":62,"integrity":"sha512-CcmRp182exzETx86SbxmyNKff8ecQ8VsR6BJT6+sfkrwIwsdQOCSuF+8VciMCv2+wR5Qj0jVQWIwCpKWDNOPTQ==","signatures":[{"sig":"MEUCIQD+330HK7ffY4cC4Dn9kUk+Rpgvl/vln46P9NC5juMpaQIgQ/1cx6dXVHDOw4dQdJTCbCZwX5feexDHLZmSPofzoSI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":969349},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"a9add89b40274bf5dde71453386acd916c658c4c","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-CcmRp182exzETx86SbxmyNKff8ecQ8VsR6BJT6+sfkrwIwsdQOCSuF+8VciMCv2+wR5Qj0jVQWIwCpKWDNOPTQ==","repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Look up US healthcare providers in the NPPES NPI registry and resolve NUCC specialty codes via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.9.0","typescript":"^6.0.3","@types/node":"26.1.1","@biomejs/biome":"2.5.3","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/npi-providers-mcp-server_0.1.5_1783789718250_0.3716724364328001","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@cyanheads/npi-providers-mcp-server","version":"0.1.6","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/npi-providers-mcp-server@0.1.6","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"bin":{"npi-providers-mcp-server":"dist/index.js"},"dist":{"shasum":"8024b825732431b257902b0585d029079b65dc8d","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.1.6.tgz","fileCount":63,"integrity":"sha512-j6V+8RK38geI2hOd4tRetnledmh5+OyVekYOdFHef9hTF00YaL3IkVkSuvYpncCq+cv9bUm0EAUBiC55cZeyRA==","signatures":[{"sig":"MEQCIAp12PTCIJWjsbyGUVjQXiTiAcGF5CCpSgrLrJ9OwfVBAiAiphHnQOrHeF91he11JhaWn2/JBd+vl2zIv0W9zkvf7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":979771},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"8024b825732431b257902b0585d029079b65dc8d","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-j6V+8RK38geI2hOd4tRetnledmh5+OyVekYOdFHef9hTF00YaL3IkVkSuvYpncCq+cv9bUm0EAUBiC55cZeyRA==","repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Look up US healthcare providers in the NPPES NPI registry and resolve NUCC specialty codes via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.9.0","typescript":"^6.0.3","@types/node":"26.1.1","@biomejs/biome":"2.5.3","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/npi-providers-mcp-server_0.1.6_1783792494134_0.9725192023485505","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@cyanheads/npi-providers-mcp-server","version":"0.1.7","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/npi-providers-mcp-server@0.1.7","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"bin":{"npi-providers-mcp-server":"dist/index.js"},"dist":{"shasum":"2df633a5eabe39e21aa66c0699cba242ae64d6e0","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.1.7.tgz","fileCount":65,"integrity":"sha512-wWpWfgMJr3q2O15/11ixIQypzOCCodwR/k0Fv/D7GKpDP8VpGlku8A8DziXXWVcMKVb1zkpBqdeg8hDYutIsag==","signatures":[{"sig":"MEQCIA4fTknjDPpV6/EuBQ1xwczMkJmNV9FAAD3MnD97lBroAiBJsuDF9DmnfjbnsZFHizv/rlJSXER7csDx3H8fqothEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":981870},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"2df633a5eabe39e21aa66c0699cba242ae64d6e0","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-wWpWfgMJr3q2O15/11ixIQypzOCCodwR/k0Fv/D7GKpDP8VpGlku8A8DziXXWVcMKVb1zkpBqdeg8hDYutIsag==","repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Look up US healthcare providers in the NPPES NPI registry and resolve NUCC specialty codes via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.9.0","typescript":"^6.0.3","@types/node":"26.1.1","@biomejs/biome":"2.5.3","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/npi-providers-mcp-server_0.1.7_1783801129711_0.5200192182151584","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@cyanheads/npi-providers-mcp-server","version":"0.1.8","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/npi-providers-mcp-server@0.1.8","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"bin":{"npi-providers-mcp-server":"dist/index.js"},"dist":{"shasum":"d98e74262a67f3a3040b5cbf84fd6e89299185e0","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.1.8.tgz","fileCount":66,"integrity":"sha512-KBALp65dJqM0aLBR5d+3i9rg5gvtPy3wiVBqOc1G9+gBNbGv16/32kizsn/rXgLgKWy+qS107XjkdPigxzSYhw==","signatures":[{"sig":"MEUCIQD72F/1P6k/4aBSE19r9v+dyKIkJMnrWYZqs80gfMFaHgIgLsQkDOFp7ENMITeh3Px8h5lzoGZYSSwedt3NQkwn0i0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":986629},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"d98e74262a67f3a3040b5cbf84fd6e89299185e0","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-KBALp65dJqM0aLBR5d+3i9rg5gvtPy3wiVBqOc1G9+gBNbGv16/32kizsn/rXgLgKWy+qS107XjkdPigxzSYhw==","repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search NPPES providers and resolve NUCC specialty codes via MCP over STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.12.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.11","depcheck":"^1.4.7","tsc-alias":"^1.9.2","fast-check":"^4.9.0","typescript":"^7.0.2","@types/node":"26.2.0","@biomejs/biome":"2.5.10","@vitest/coverage-istanbul":"^4.1.11","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/npi-providers-mcp-server_0.1.8_1787627487424_0.626344406598174","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@cyanheads/npi-providers-mcp-server","version":"0.1.9","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/npi-providers-mcp-server@0.1.9","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"bin":{"npi-providers-mcp-server":"dist/index.js"},"dist":{"shasum":"1970b1c85b57eeaa2fff1661fa9e3c96c7bbfe90","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.1.9.tgz","fileCount":67,"integrity":"sha512-c6cK3H7xESPZVQy7rMOnubq6wT7FvLGHVRDcAtFF1nQoM0dcAWb+TK6AIoIISWU+aLUZqWKw7j2yDa69W8xKyQ==","signatures":[{"sig":"MEUCIQD8NUkcD7+/vJOWWw86IS6uscRmVmzJnwkObA6v/ZGlwQIgEB9Tyv0MtiGWyH/dus5JmioMUreCbVD663fOq7ZfwvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIQDJQav2ZJn8Keu8Fg6ZYEvWbdkWH8K2a877Ne0LLK/8iAIfTNctRUt9+qWm8bJBWt4UE4NWdpngBqQzSuWl5+Ul6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":998759},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"1970b1c85b57eeaa2fff1661fa9e3c96c7bbfe90","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-c6cK3H7xESPZVQy7rMOnubq6wT7FvLGHVRDcAtFF1nQoM0dcAWb+TK6AIoIISWU+aLUZqWKw7j2yDa69W8xKyQ==","repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search NPPES providers and resolve NUCC specialty codes via MCP over STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","fast-check":"^4.10.1","typescript":"^7.0.2","@types/node":"26.6.1","@biomejs/biome":"2.5.14","@vitest/coverage-istanbul":"^5.0.1","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/npi-providers-mcp-server_0.1.9_1789933664914_0.7708718945516966","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cyanheads/npi-providers-mcp-server","version":"0.2.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/npi-providers-mcp-server@0.2.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"bin":{"npi-providers-mcp-server":"dist/index.js"},"dist":{"shasum":"f17625fad22fc800f3664c9cb5ca798e299bfade","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.2.0.tgz","fileCount":72,"integrity":"sha512-HzGIi+JRWR6p0oTPjdy55X2+28kU73HLfpzT4MZOVxrE4t2YdY0hWTyJXV+FvHzzh1Uq1QvOwEgNDIZt5EsswQ==","signatures":[{"sig":"MEQCIA0oxOVd1b0S26r3nZcQgQnZ37eGdqE4152jOgZRGgIeAiAiQJ91NuTWdvvG/VVmZUbnzukkbuK+o4530EkKIl/3Fg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGnB9b7TJtVCX53Sa8MfNMRGx1+KMwmUeyHQ1xPigIT+AiBJlN/ZFHJFVA9t5qnbefn0aaYMXt7vWup0IzJTnILJuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1029860},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"f17625fad22fc800f3664c9cb5ca798e299bfade","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-HzGIi+JRWR6p0oTPjdy55X2+28kU73HLfpzT4MZOVxrE4t2YdY0hWTyJXV+FvHzzh1Uq1QvOwEgNDIZt5EsswQ==","repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search NPPES providers and resolve NUCC specialty codes via MCP over STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","fast-check":"^4.10.2","typescript":"^7.0.2","@types/node":"26.6.2","@biomejs/biome":"2.5.14","@vitest/coverage-istanbul":"^5.0.1","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/npi-providers-mcp-server_0.2.0_1790283820910_0.38314411158425044","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@cyanheads/npi-providers-mcp-server","version":"0.3.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/npi-providers-mcp-server@0.3.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"bin":{"npi-providers-mcp-server":"dist/index.js"},"dist":{"shasum":"9b7d9a3f881896a02a224f5305a312c5a61a4c55","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.3.0.tgz","fileCount":73,"integrity":"sha512-ZLkAB2sggBZI39KK1qdEQjaSDaydMTUsGS34JiCBYXIwbvVNJRnDP60LXm1yODYZxqnNQU6MrZjRJ+ZoQtiTUA==","signatures":[{"sig":"MEUCIQC6BV1osrs764tE5as9uggiH2uSB/jzDd7bJwmBffj3ogIgbV7mZAYKe6gonFKWqOqu+zX+Nrx/EpR1qFj+n4y86Mw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDHB2wJWjpCFz+gptBGzrCcow3hjF25kK10MAtWo2+tmAIgUwiolwOJfpwKO/m9k+qQ/Wi22/01YBbBL0BxR6RxfTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1250432},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"9b7d9a3f881896a02a224f5305a312c5a61a4c55","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-ZLkAB2sggBZI39KK1qdEQjaSDaydMTUsGS34JiCBYXIwbvVNJRnDP60LXm1yODYZxqnNQU6MrZjRJ+ZoQtiTUA==","repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search NPPES providers and resolve NUCC specialty codes via MCP over STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","fast-check":"^4.10.2","typescript":"^7.0.2","@types/node":"26.6.2","@biomejs/biome":"2.5.14","@vitest/coverage-istanbul":"^5.0.1","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/npi-providers-mcp-server_0.3.0_1790289133089_0.7547203040439063","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@cyanheads/npi-providers-mcp-server@0.4.0","bin":{"npi-providers-mcp-server":"dist/index.js"},"bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"dist":{"shasum":"cb7ae6f550afe961c9dd0fbcaf5ca15afc8b844f","tarball":"https://registry.npmjs.org/@cyanheads/npi-providers-mcp-server/-/npi-providers-mcp-server-0.4.0.tgz","fileCount":82,"integrity":"sha512-p2bi9R4O4+op0stk9fDAqxQwaPJmzjWPlaAKF362NLXKwjvMuGqN7BUFl11O4CMa0Jjal0JkwS2rg6meXZtw5g==","signatures":[{"sig":"MEYCIQCUN/2KB9+Pc9xB/97w2vjaRde8ZM6rlBPn/DqKau14IwIhAPSGLs9vroP09HfZIXpmawMxBhW/YwmetpJGcWUXUV3x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFn/d6V06dEwXJ56m+ZbYLmYbbqJH/ugsBHsvYz57W5qAiEAtmkq0gbXc0Rh5mkEnG7nPm0qGdGsbBKvS9gnmWcRzFw="}],"unpackedSize":1293220},"main":"dist/index.js","name":"@cyanheads/npi-providers-mcp-server","type":"module","types":"dist/index.d.ts","author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","shasum":"cb7ae6f550afe961c9dd0fbcaf5ca15afc8b844f","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"license":"Apache-2.0","mcpName":"io.github.cyanheads/npi-providers-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/npi-providers-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/npi-providers-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"version":"0.4.0","_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"_integrity":"sha512-p2bi9R4O4+op0stk9fDAqxQwaPJmzjWPlaAKF362NLXKwjvMuGqN7BUFl11O4CMa0Jjal0JkwS2rg6meXZtw5g==","repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search NPPES providers and resolve NUCC specialty codes via MCP over STDIO or Streamable HTTP.","directories":{},"maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","fast-check":"^4.10.2","typescript":"^7.0.2","@types/node":"26.6.2","@biomejs/biome":"2.5.14","@vitest/coverage-istanbul":"^5.0.1","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/npi-providers-mcp-server_0.4.0_1790294425517_0.6608719635737761"}}},"time":{"created":"2026-06-13T17:54:53.242Z","modified":"2026-09-25T00:00:25.967Z","0.1.0":"2026-06-13T17:54:53.624Z","0.1.1":"2026-06-14T10:39:41.126Z","0.1.2":"2026-06-15T17:45:33.430Z","0.1.3":"2026-06-20T12:12:23.714Z","0.1.4":"2026-07-11T16:32:15.837Z","0.1.5":"2026-07-11T17:08:38.441Z","0.1.6":"2026-07-11T17:54:54.334Z","0.1.7":"2026-07-11T20:18:49.897Z","0.1.8":"2026-08-25T03:11:27.585Z","0.1.9":"2026-09-20T19:47:45.005Z","0.2.0":"2026-09-24T21:03:41.014Z","0.3.0":"2026-09-24T22:32:13.186Z","0.4.0":"2026-09-25T00:00:25.623Z"},"bugs":{"url":"https://github.com/cyanheads/npi-providers-mcp-server/issues"},"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","homepage":"https://github.com/cyanheads/npi-providers-mcp-server#readme","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","npi","nppes","nucc","healthcare","provider-directory","taxonomy","cms"],"repository":{"url":"git+https://github.com/cyanheads/npi-providers-mcp-server.git","type":"git"},"description":"Search NPPES providers and resolve NUCC specialty codes via MCP over STDIO or Streamable HTTP.","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"readme":"<div align=\"center\">\n  <h1>@cyanheads/npi-providers-mcp-server</h1>\n  <p><b>Search NPPES providers and resolve NUCC specialty codes via MCP over STDIO or Streamable HTTP.</b>\n  <div>3 Tools • 2 Resources</div>\n  </p>\n</div>\n\n<div align=\"center\">\n\n[![Version](https://img.shields.io/badge/Version-0.4.0-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/npi-providers-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^2.0.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/%40cyanheads%2Fnpi-providers-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/npi-providers-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.4.0-blueviolet.svg?style=flat-square)](https://bun.sh/)\n\n</div>\n\n<div align=\"center\">\n\n[![Install in Claude Desktop](https://img.shields.io/badge/Install_in-Claude_Desktop-D97757?style=for-the-badge&logo=anthropic&logoColor=white)](https://github.com/cyanheads/npi-providers-mcp-server/releases/latest/download/npi-providers-mcp-server.mcpb) [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=npi-providers-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvbnBpLXByb3ZpZGVycy1tY3Atc2VydmVyIl19) [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22npi-providers-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fnpi-providers-mcp-server%22%5D%7D)\n\n[![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-67E8F9?style=flat-square)](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)\n\n</div>\n\n<div align=\"center\">\n\n**Public Hosted Server:** [https://npi-providers.caseyjhand.com/mcp](https://npi-providers.caseyjhand.com/mcp)\n\n</div>\n\n---\n\n## Overview\n\nUS healthcare provider directory over the NPPES NPI Registry, with plain-language specialty terms resolved offline against a bundled NUCC taxonomy. Search providers by name, organization, location, and specialty; decode NPIs into professional-practice provider records; and resolve or browse the NUCC taxonomy directly. Runs as a stdio process, a local Streamable HTTP server, or the public hosted endpoint above.\n\n### Tools\n\n| Tool | Description |\n|:---|:---|\n| `npi_search_providers` | Search the NPPES registry by name, organization, location, provider type, and specialty. Plain-language specialties resolve through the bundled NUCC taxonomy before searching. |\n| `npi_get_provider` | Fetch the NPPES professional-practice record for up to 10 NPIs — taxonomies, practice addresses, credentials, identifiers, endpoints, and status. Only LOCATION address rows are kept for individual providers. |\n| `npi_lookup_taxonomy` | Resolve, fetch, or browse the NUCC Healthcare Provider Taxonomy — fully offline. |\n\n### Resources\n\n| Resource | Description |\n|:---|:---|\n| `npi://provider/{npi}` | A single provider's decoded record by NPI — the resource twin of `npi_get_provider`. |\n| `npi://taxonomy/{code}` | A single NUCC taxonomy entry by code — the resource twin of `npi_lookup_taxonomy` mode `get`. |\n\nAll resource data is also reachable via tools; the resources are convenience twins for resource-capable clients.\n\n## Capability reference\n\n### `npi_search_providers` <sub>tool</sub>\n\n- Search by `name_search` shortcut, explicit `first_name` / `last_name`, `organization_name`, `city` / `state` / `postal_code`, and `provider_type` (`individual` / `organization`); at least one criterion is required and the registry rejects state-only searches. Person names search individuals and `organization_name` searches organizations, so mixing the two sides (directly or through `provider_type`) fails before any registry request\n- Plain-language `specialty` resolves through the bundled NUCC taxonomy to the registry's exact description before searching, echoed back via `resolvedTaxonomies` / `appliedTaxonomyDescription`; inactive NUCC codes are never resolved. `taxonomy_description` is an escape hatch for an already-known exact description (mutually exclusive with `specialty`)\n- Trailing-wildcard (`*`) matching on names, organization, and `city` requires at least 2 leading characters; `postal_code` takes 5 or 9 digits, or a 2–9 digit prefix ending in `*` (`98*`, `981*`)\n- Name searches also match former and other names, and the registry sorts by current name; a row matched through one names it in `matchedOtherName` (an exact `first_name` alone never marks a row, since the registry also matches first-name variants)\n- Each row's `city` / `state` / `postalCode` is the primary practice location. A location search matches practice addresses only, never mailing addresses: a row is returned only when the primary practice location or another practice location matches every requested location field (any other row the registry returns is filtered out, with a `notice` counting it), and a row kept on another practice location names it in `matchedLocation`\n- `limit` 1–200 (default 10), `skip` 0–1000; the registry never reports a true match total, and the response discloses page-size-not-total via `truncated` / `notice`. A full page names the next page in `nextPage`; one search reaches only its first 1200 matches, so the terminal window (`skip` 1000, `limit` 200) instead returns `continuationPostalCodes` — `postal_code` prefixes to re-run the same search with, deduplicating by NPI. That split cannot go below a 5-digit ZIP or reach practice addresses outside the US, and the notice says so\n- Typed error reasons: `no_search_criteria`, `conflicting_specialty`, `mixed_provider_criteria`, `unresolved_specialty`, `invalid_search_field`\n\n---\n\n### `npi_get_provider` <sub>tool</sub>\n\n- Accepts a single NPI or up to 10; each must be exactly 10 digits, and each is checked against its NPI check digit before any API call\n- Returns every taxonomy (with primary flag, license number and state), practice addresses with phone and fax, credential, sex, sole-proprietor flag, enumeration and last-updated dates, secondary identifiers, and FHIR/Direct endpoints (with their descriptions and routing address)\n- Only LOCATION (practice) address rows are kept for individual providers, so their mailing address — often a home address — is withheld; organizations keep both LOCATION and MAILING rows\n- Four-way partition: `found` (resolved records), `notFound` (confirmed absence — deactivated or never enumerated), `errored` (upstream failure, distinct from absence — retry these), `invalid` (failed the NPI check digit — never looked up)\n- Throws `invalid_npi_format` when every requested NPI fails the check digit, and `none_found` only when every NPI looked up is a confirmed absence; an upstream failure on any NPI surfaces as that underlying error instead\n\n---\n\n### `npi_lookup_taxonomy` <sub>tool</sub>\n\n- Three modes: `resolve` (plain-language term → matching codes/descriptions), `get` (exact code → full entry, including NUCC's `notes`), `browse` (walk grouping → classification → specialization, filterable by grouping and NPI `section`)\n- Every entry carries `status` (`active` / `inactive`) and, for an inactive code, the `replacedBy` code NUCC names; `resolve` never returns inactive codes, while `get` and `browse` still do. A query that matches only inactive codes fails with `no_match` naming them and their replacements\n- Credential abbreviations resolve, dotted or not (`rn`, `R.N.`, `np`, `pa`, `crna`, `lpn`, `lvn`, `emt`, `er`). A query made only of generic words, singular or plural (`physician`, `doctors`, `M.D.`, `specialist`, `providers`), names no specialty, so it fails with `no_match` and a hint to `browse`, rather than matching an unrelated word\n- `resolve` / `browse` cap results at `limit` (≤50, default 20) and disclose `truncated`; page past the cap with `skip` (0–1000, raised by `limit` each call)\n- A resolved entry's `specialization` (or `classification` when specialization is absent) is the exact value `npi_search_providers.taxonomy_description` accepts\n- Typed error reasons: `no_match`, `missing_argument`\n\n---\n\n### `npi://provider/{npi}` <sub>resource</sub>\n\n- Returns the same decoded record as `npi_get_provider`, for one NPI, as `application/json` — only LOCATION address rows are kept for individual providers\n- `npi` must be a well-formed 10-digit NPI; `invalid_npi_format` when it fails the NPI check digit (no registry request), `no_record` when the registry has none (deactivated or never enumerated)\n\n---\n\n### `npi://taxonomy/{code}` <sub>resource</sub>\n\n- Returns the same entry as `npi_lookup_taxonomy` mode `get` (NUCC `notes`, `status`, and `replacedBy` included; inactive codes stay readable), as `application/json`; cached publicly for 24 hours\n- `code` must match `^\\d{3}[A-Z0-9]{6}X$`; `no_match` when no entry exists for the code\n\n## Features\n\nBuilt on [`@cyanheads/mcp-ts-core`](https://github.com/cyanheads/mcp-ts-core): stdio and Streamable HTTP transports, pluggable auth (`none` / `jwt` / `oauth`), swappable storage (`in-memory`, `filesystem`, `Supabase`, `Cloudflare KV/R2/D1`), structured logging with optional OpenTelemetry tracing.\n\nNPI/NPPES-specific:\n\n- **Keyless** — runs against the public CMS NPPES NPI Registry API (v2.1) with no API key or account\n- **Bundled NUCC taxonomy** — the 883-code Healthcare Provider Taxonomy (v26.1) ships in the image and loads into an in-memory index at startup, so specialty resolution and code lookups work fully offline with no second upstream\n- Specialty resolution turns a vague term (\"heart doctor\") into the precise taxonomy description the registry filters on, and echoes the match back for the agent to verify\n- Detects the registry's quirk of returning HTTP 200 with an `Errors[]` body on validation failure and maps it to typed, recoverable error reasons\n\nAgent-friendly output:\n\n- Provenance on search — the resolved taxonomy and the exact `taxonomy_description` sent to the registry are echoed back, so agents can see what was actually searched and re-run with a different code\n- Honest pagination — the returned count is disclosed as the page size, never a fabricated grand total; a full page names the exact next page, and a broad query that hits the 1200-match reachable ceiling gets the postal-code prefixes that continue it\n- Graceful partial failure — `npi_get_provider` returns per-NPI `found` / `notFound` / `errored` / `invalid` rows instead of failing the whole batch\n\n## Getting started\n\n### Public Hosted Instance\n\nA public instance is available at `https://npi-providers.caseyjhand.com/mcp` — no installation required. Point any MCP client at it via Streamable HTTP, with this client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"npi-providers-mcp-server\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://npi-providers.caseyjhand.com/mcp\"\n    }\n  }\n}\n```\n\n### Self-Hosted / Local\n\nAdd the following to your MCP client configuration file. No API key is required — the upstream NPPES registry is keyless.\n\n```json\n{\n  \"mcpServers\": {\n    \"npi-providers-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"bunx\",\n      \"args\": [\"@cyanheads/npi-providers-mcp-server@latest\"],\n      \"env\": {\n        \"MCP_TRANSPORT_TYPE\": \"stdio\",\n        \"MCP_LOG_LEVEL\": \"info\"\n      }\n    }\n  }\n}\n```\n\nOr with npx (no Bun required):\n\n```json\n{\n  \"mcpServers\": {\n    \"npi-providers-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@cyanheads/npi-providers-mcp-server@latest\"],\n      \"env\": {\n        \"MCP_TRANSPORT_TYPE\": \"stdio\",\n        \"MCP_LOG_LEVEL\": \"info\"\n      }\n    }\n  }\n}\n```\n\nOr with Docker:\n\n```json\n{\n  \"mcpServers\": {\n    \"npi-providers-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"-i\", \"--rm\", \"-e\", \"MCP_TRANSPORT_TYPE=stdio\", \"ghcr.io/cyanheads/npi-providers-mcp-server:latest\"]\n    }\n  }\n}\n```\n\nFor Streamable HTTP, set the transport and start the server:\n\n```sh\nMCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http\n# Server listens at http://localhost:3010/mcp\n```\n\n### Prerequisites\n\n- [Bun v1.4.0](https://bun.sh/) or higher (or Node.js v24+).\n- No API key — the NPPES NPI Registry API is public and keyless. The NUCC taxonomy is bundled, so there is no second data source to provision.\n\n### Installation\n\n1. **Clone the repository:**\n\n```sh\ngit clone https://github.com/cyanheads/npi-providers-mcp-server.git\n```\n\n2. **Navigate into the directory:**\n\n```sh\ncd npi-providers-mcp-server\n```\n\n3. **Install dependencies:**\n\n```sh\nbun install\n```\n\n4. **Configure environment (optional):**\n\n```sh\ncp .env.example .env\n# edit .env only if you need to override the NPPES base URL or timeout\n```\n\n## Configuration\n\nNo required variables — the server runs out of the box against the keyless NPPES registry. All variables below are optional overrides.\n\n| Variable | Description | Default |\n|:---|:---|:---|\n| `NPPES_API_BASE_URL` | NPPES NPI Registry API base URL. Override for a private mirror or testing. | `https://npiregistry.cms.hhs.gov/api` |\n| `NPPES_TIMEOUT_MS` | Per-request HTTP timeout for NPPES calls, in milliseconds. | `15000` |\n| `MCP_TRANSPORT_TYPE` | Transport: `stdio` or `http`. | `stdio` |\n| `MCP_HTTP_PORT` | Port for the HTTP server. | `3010` |\n| `MCP_AUTH_MODE` | Auth mode: `none`, `jwt`, or `oauth`. | `none` |\n| `MCP_SESSION_MODE` | HTTP session handling: `stateless`, `stateful`, or `auto`. This server pins `stateless`; the schema default `auto` resolves to `stateful`. | `stateless` |\n| `MCP_LOG_LEVEL` | Log level (RFC 5424). | `info` |\n| `STORAGE_PROVIDER_TYPE` | Storage backend. | `in-memory` |\n| `OTEL_ENABLED` | Enable [OpenTelemetry instrumentation](https://github.com/cyanheads/mcp-ts-core/tree/main/docs/telemetry) (spans, metrics, completion logs). | `false` |\n\nSee [`.env.example`](./.env.example) for the full list of optional overrides.\n\n## Running the server\n\n### Local development\n\n- **Build and run:**\n\n  ```sh\n  # One-time build\n  bun run rebuild\n\n  # Run the built server\n  bun run start:stdio\n  # or\n  bun run start:http\n  ```\n\n- **Run checks and tests:**\n\n  ```sh\n  bun run devcheck   # Lint, format, typecheck, security\n  bun run test       # Vitest test suite\n  bun run lint:mcp   # Validate MCP definitions against spec\n  ```\n\n### Docker\n\n```sh\ndocker build -t npi-providers-mcp-server .\ndocker run --rm -e MCP_TRANSPORT_TYPE=http -p 3010:3010 npi-providers-mcp-server\n```\n\nThe Dockerfile defaults to HTTP transport, stateless session mode, and logs to `/var/log/npi-providers-mcp-server`. OpenTelemetry peer dependencies are installed by default — build with `--build-arg OTEL_ENABLED=false` to omit them.\n\n## Project structure\n\n| Directory | Purpose |\n|:----------|:--------|\n| `src/index.ts` | `createApp()` entry point — registers tools and resources, inits services. |\n| `src/config` | Server-specific environment variable parsing and validation with Zod. |\n| `src/mcp-server/tools` | Tool definitions (`*.tool.ts`). |\n| `src/mcp-server/resources` | Resource definitions (`*.resource.ts`). |\n| `src/services/nppes` | NPPES NPI Registry API client — query building, `Errors[]`-on-200 detection, normalization. |\n| `src/services/taxonomy` | Bundled NUCC taxonomy service — in-memory index for resolve / get / browse. |\n| `tests/` | Unit and integration tests mirroring `src/`. |\n\n## Development guide\n\nSee [`CLAUDE.md`/`AGENTS.md`](./CLAUDE.md) for development guidelines and architectural rules. The short version:\n\n- Handlers throw, framework catches — no `try/catch` in tool logic\n- Use `ctx.log` for request-scoped logging, `ctx.state` for tenant-scoped storage\n- Register new tools and resources in the `createApp()` arrays\n- Wrap external API calls: validate raw → normalize to domain type → return output schema; never fabricate missing fields\n\n## Data attribution\n\nProvider data from the [CMS NPPES NPI Registry](https://npiregistry.cms.hhs.gov/) (public domain). The bundled specialty codes are the [NUCC Health Care Provider Taxonomy](https://www.nucc.org/index.php/code-sets-mainmenu-41/provider-taxonomy-mainmenu-40), © American Medical Association on behalf of the National Uniform Claim Committee (NUCC), redistributed unmodified beyond formatting under the [NUCC permission](https://www.nucc.org/index.php/nucc-structure-mainmenu-36/contact-us-mainmenu-34?id=111). See [`NOTICE`](NOTICE).\n\n## Contributing\n\nIssues are welcome. Run checks and tests before submitting:\n\n```sh\nbun run devcheck\nbun run test\n```\n\n## License\n\nApache-2.0 — see [LICENSE](LICENSE) for details.\n","readmeFilename":"README.md"}