Look up U.S. healthcare providers by NPI, name, specialty and ZIP radius from CMS NPPES data.
Maintained by@jrestiva(verified)Also a maintainer?
Call this server's tools from your browser. Nothing to install.
Optional "Bearer <NPILayer API key>". lookup_npi and search_providers work without it (rate-limited); providers_near needs a key or OAuth sign-in.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Look up a single U.S. healthcare provider or organization by its 10-digit National Provider Identifier (NPI), from CMS NPPES data. An NPI record identifies a provider; it does not indicate licensure, credentialing, network participation, or current practice status.
A 10-digit National Provider Identifier, e.g. "1932586781".
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http npilayer https://npilayer.com/mcp
Headers
Authorization (optional, not in the config above): Optional "Bearer <NPILayer API key>". lookup_npi and search_providers work without it (rate-limited); providers_near needs a key or OAuth sign-in.Look up a single U.S. healthcare provider or organization by its 10-digit National Provider Identifier (NPI), from CMS NPPES data. An NPI record identifies a provider; it does not indicate licensure, credentialing, network participation, or current practice status.
| Argument | Type | Description |
|---|---|---|
| npi* | string | A 10-digit National Provider Identifier, e.g. "1932586781". |
{
"type": "object",
"required": [
"npi"
],
"properties": {
"npi": {
"type": "string",
"pattern": "^[0-9]{10}$",
"description": "A 10-digit National Provider Identifier, e.g. \"1932586781\"."
}
},
"additionalProperties": false
}Find U.S. healthcare providers within a radius of a ZIP code or coordinate, from CMS NPPES data. Provide either "zip", or both "lat" and "lng". Distance is measured from each provider's primary practice location to the ZIP centroid (not an exact street address), since NPILayer's geography is ZIP-based.
| Argument | Type | Description |
|---|---|---|
| lat | number | Latitude, used with "lng" instead of "zip". |
| lng | number | Longitude, used with "lat" instead of "zip". |
| zip | string | A 5-digit ZIP code to search around. |
| page | integer | |
| limit | integer | |
| radius | number | Radius in miles. |
| taxonomy | string | An exact NUCC taxonomy code, e.g. "207RC0000X". |
| specialty | string | A plain-language specialty, e.g. "cardiology". |
| entity_type | string | Restrict to individual providers or organizations, e.g. to exclude group practices from "find a cardiologist" results. |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "number",
"description": "Latitude, used with \"lng\" instead of \"zip\"."
},
"lng": {
"type": "number",
"description": "Longitude, used with \"lat\" instead of \"zip\"."
},
"zip": {
"type": "string",
"description": "A 5-digit ZIP code to search around."
},
"page": {
"type": "integer",
"default": 1,
"minimum": 1
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"radius": {
"type": "number",
"default": 25,
"description": "Radius in miles."
},
"taxonomy": {
"type": "string",
"description": "An exact NUCC taxonomy code, e.g. \"207RC0000X\"."
},
"specialty": {
"type": "string",
"description": "A plain-language specialty, e.g. \"cardiology\"."
},
"entity_type": {
"enum": [
"individual",
"organization"
],
"type": "string",
"description": "Restrict to individual providers or organizations, e.g. to exclude group practices from \"find a cardiologist\" results."
}
},
"additionalProperties": false
}Search U.S. healthcare providers and organizations by name, location, or specialty, from CMS NPPES data. Provide at least one filter; an empty search returns an arbitrary page of providers rather than a meaningful result.
| Argument | Type | Description |
|---|---|---|
| zip | string | |
| city | string | |
| name | string | Matches first name, last name, or organization name. |
| page | integer | |
| limit | integer | |
| state | string | Two-letter state code, e.g. "MI". |
| taxonomy | string | An exact NUCC taxonomy code, e.g. "207RC0000X". |
| last_name | string | |
| specialty | string | A plain-language specialty, e.g. "cardiology". |
| first_name | string | |
| entity_type | string | |
| organization | string |
{
"type": "object",
"required": [],
"properties": {
"zip": {
"type": "string"
},
"city": {
"type": "string"
},
"name": {
"type": "string",
"description": "Matches first name, last name, or organization name."
},
"page": {
"type": "integer",
"default": 1,
"minimum": 1
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"state": {
"type": "string",
"description": "Two-letter state code, e.g. \"MI\"."
},
"taxonomy": {
"type": "string",
"description": "An exact NUCC taxonomy code, e.g. \"207RC0000X\"."
},
"last_name": {
"type": "string"
},
"specialty": {
"type": "string",
"description": "A plain-language specialty, e.g. \"cardiology\"."
},
"first_name": {
"type": "string"
},
"entity_type": {
"enum": [
"individual",
"organization"
],
"type": "string"
},
"organization": {
"type": "string"
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 4, 2026.