NPILayer
Server Details
Look up U.S. healthcare providers by NPI, name, specialty and ZIP radius from CMS NPPES data.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
Each tool has a distinct retrieval axis: exact identifier lookup (lookup_npi), geographic radius search (providers_near), and attribute-filter search (search_providers). The main risk is confusion between providers_near and search_providers, since both return lists of providers and a location filter could plausibly live in either, but the descriptions make the ZIP-radius-vs-filter distinction clear enough.
lookup_npi and search_providers follow a verb_noun pattern, but providers_near is a noun+preposition form that breaks the convention. It is still readable and unambiguous, but the set mixes two naming styles.
Three tools is lean but defensible for a read-only NPPES lookup API with three genuinely different access paths (ID, geography, attributes). Nothing is redundant; it is only slightly under-scoped rather than thin for the stated purpose.
Core lookup, geo, and search entry points exist, but there are notable gaps: no batch/multi-NPI lookup, no taxonomy/specialty enumeration to drive valid search_providers filters, and no pagination or result-count guidance despite the warning that empty searches return arbitrary pages. Agents can work around these but will hit dead ends on bulk or discovery workflows.
Available Tools
3 toolslookup_npiLook up an NPIARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npi | Yes | A 10-digit National Provider Identifier, e.g. "1932586781". |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description focuses on domain behavior and adds real value: the data source (CMS NPPES) and, more importantly, a list of things the record does NOT establish (licensure, credentialing, network participation, practice status). It does not address not-found handling or record freshness, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the operation and data source, and the second sentence uses its space to prevent a concrete misuse of the data. There is no redundant restatement of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity single-parameter lookup with a full input schema and an output schema, so return-value detail is unnecessary. The only meaningful omission is behavior on an unknown or invalid NPI, which would round out an otherwise complete definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the single parameter has a type, a strict 10-digit pattern, and a concrete example. The description only restates that the input is a 10-digit NPI, adding no format, normalization, or edge-case guidance beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ("Look up a single U.S. healthcare provider or organization"), names the exact identifier type, and explicitly narrows scope to a single record retrieved by NPI. That single-record, identifier-based framing naturally separates it from the sibling tools search_providers and providers_near without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear (you already have a 10-digit NPI and want one record), and the caveat sentence implicitly tells the agent not to treat the result as credentialing evidence. However, it never explicitly says when to prefer search_providers or providers_near instead, so the routing decision is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
providers_nearFind providers near a locationARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude, used with "lng" instead of "zip". | |
| lng | No | Longitude, used with "lat" instead of "zip". | |
| zip | No | A 5-digit ZIP code to search around. | |
| page | No | ||
| limit | No | ||
| radius | No | Radius in miles. | |
| taxonomy | No | An exact NUCC taxonomy code, e.g. "207RC0000X". | |
| specialty | No | A plain-language specialty, e.g. "cardiology". | |
| entity_type | No | Restrict to individual providers or organizations, e.g. to exclude group practices from "find a cardiologist" results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description still adds a genuinely important accuracy caveat: distance is measured from each provider's primary practice location to the ZIP centroid, not a street address, which materially affects how results should be interpreted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler. The purpose comes first, the required-input rule second, and the geographic caveat last, which is exactly the order an agent needs them.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero required parameters across nine properties, the description correctly supplies the selection rule for the location inputs, and an output schema exists so return values need not be explained. The remaining gap is that taxonomy, specialty, and entity_type filtering are left entirely to the schema, and no note hints at how those filters combine.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 78%, above the high-coverage threshold, so the schema does most of the work and a baseline of 3 applies. The description adds one real constraint not encoded in the schema (the zip vs lat+lng either/or rule); it says nothing about radius defaults, taxonomy vs specialty interplay, or limit/page behavior beyond what the properties already state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Find'), resource ('U.S. healthcare providers'), spatial scope ('within a radius of a ZIP code or coordinate') and data source ('CMS NPPES'). It does not, however, distinguish itself from the sibling search_providers, so an agent cannot tell from the description alone which one to reach for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete input guidance ('Provide either "zip", or both "lat" and "lng"'), which is the main usage decision for this tool. But it offers no when-to-use vs search_providers or lookup_npi comparison, and no stated limits on when a radius search is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_providersSearch providersARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | ||
| city | No | ||
| name | No | Matches first name, last name, or organization name. | |
| page | No | ||
| limit | No | ||
| state | No | Two-letter state code, e.g. "MI". | |
| taxonomy | No | An exact NUCC taxonomy code, e.g. "207RC0000X". | |
| last_name | No | ||
| specialty | No | A plain-language specialty, e.g. "cardiology". | |
| first_name | No | ||
| entity_type | No | ||
| organization | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds a genuinely non-obvious behavioral fact — an unfiltered call returns an arbitrary page rather than a meaningful result — which prevents a real failure mode. Remaining gaps (max result cap, paging semantics) are partly handled by the page/limit schema and the presence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and followed immediately by the actionable constraint. Nothing is redundant and every clause carries information the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter, all-optional search tool with sparse schema coverage, the description covers the core intent and the empty-search pitfall but leaves filter-combination logic, specialty vs. taxonomy selection, and sibling disambiguation unaddressed. The output schema reduces the need to describe return values, which keeps this at a minimum-viable level rather than inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 12 parameters, so the description must compensate, and it does so partially by naming the three filter families (name, location, specialty) that map onto name/first_name/last_name/organization, city/state/zip, and specialty/taxonomy/entity_type. It never clarifies the distinction between 'specialty' and 'taxonomy', nor how multiple filters combine, leaving several undocumented parameters unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search U.S. healthcare providers and organizations') plus the filter axes (name, location, specialty) and the upstream data source (CMS NPPES). It does not distinguish this tool from siblings like lookup_npi or providers_near, so the agent must infer that this is the general/free-text search rather than an NPI-exact or proximity lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage constraint and its consequence: 'Provide at least one filter; an empty search returns an arbitrary page.' That is useful when-to-use guidance, but there is no explicit routing to lookup_npi (known NPI) or providers_near (distance-based) despite those siblings being the obvious alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
lookup_npi - First observed
providers_near - First observed
search_providers
Related MCP Connectors
Find US healthcare providers by name, specialty, location or NPI from the CMS NPPES registry.
Look up US healthcare providers and organisations by NPI.
US health care providers by NPI, name or phone, with payments, Medicare, OIG and facility data.
Validate, look up and count US NPI providers from the public CMS registry; not affiliated with CMS.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceLook up US healthcare providers in the NPPES NPI registry and resolve NUCC specialty codes via MCP.480 npm1Apache 2.0
- FlicenseNot gradedqualityCmaintenanceProvides tools to look up healthcare providers and organizations by NPI number and to search the CMS NPPES NPI Registry by name, location, taxonomy, and other criteria.-
- AlicenseNot gradedqualityBmaintenanceEnables querying healthcare provider information from the CMS NPI Registry using a 10-digit National Provider Identifier (NPI).451 npmMIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables interaction with the CMS NPPES NPI Registry to search, lookup, and validate National Provider Identifier records. It features offline-capable search using a local SQLite database that automatically updates with the latest provider data.-
Glama MCP Gateway
Add one secure layer between your agents and this server.