NPI Who
Server Details
US health care providers by NPI, name or phone, with payments, Medicare, OIG and facility data.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- npiwho/mcp
- GitHub Stars
- 0
TDQS
Scored across 6 tools
Each tool has a distinct access key: NPI (lookup_provider), name (search_providers), phone (lookup_phone), ZIP+specialty proximity (nearby_providers), and state facility type (list_facilities). The only mild overlap is between search_providers (organizations by name) and list_facilities (facility types by state), which could both be reached for 'find a hospital,' but the descriptions distinguish them adequately. data_sources is clearly a metadata tool.
Five of six tools follow a verb_noun or modifier_noun convention (list_facilities, lookup_phone, lookup_provider, search_providers, nearby_providers) that is readable and predictable. data_sources is a bare noun with no verb, a minor deviation but not confusing.
Six tools is well within the ideal 3-15 range for a read-only provider-data API. Each tool maps to a distinct lookup entry point (name, NPI, phone, geography, facility list) plus a provenance tool, so nothing feels redundant or missing in count.
The surface covers all plausible entry points for an NPI lookup service: name search, NPI detail, reverse phone, geographic proximity, facility enumeration, and data provenance. Minor gap: list_facilities caps at 50 rows with the full list only reachable via an external page URL, and there is no batch/multi-NPI lookup, but these are workarounds rather than blockers.
Available Tools
6 toolsdata_sourcesData sources and datesBInspect
Which public files this data comes from, their snapshot dates, and what they do not cover.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose a useful behavioral trait — that the tool reports what the data does NOT cover, signaling limitations rather than just provenance — but it says nothing about output format, whether results are static or dated per snapshot, or read-only semantics.
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?
A single tight sentence with the most important element (which public files) front-loaded and no filler. It is slightly under-specified rather than over-long, but nothing is wasted.
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 no parameters and no output schema, the description is the only source of return-shape information, and it lists the content categories but not the form (text vs. structured list) or granularity. For a simple zero-arg informational tool this is adequate but leaves the agent guessing about what it will actually receive.
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?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 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 names the exact content the tool surfaces: source files, snapshot dates, and coverage gaps, which is clearly distinct from the lookup/search siblings. It lacks an explicit verb ('Returns...') and reads as a noun fragment, but the resource is unambiguous.
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?
There is no statement of when to call this tool, no mention of prerequisites, and no reference to alternatives among the sibling lookup tools. An agent must infer that this is a metadata/provenance lookup to consult before trusting results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_facilitiesFacilities in a stateAInspect
Medicare-certified home health agencies, hospices, hospitals, nursing homes, or HRSA health centers (FQHCs) in a state, optionally one city. Up to 50 rows with page urls; the full list and a CSV are at the state page url.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| kind | Yes | ||
| limit | No | ||
| state | Yes | Two-letter state code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and usefully discloses the 50-row cap, that rows include page URLs, and that the full list/CSV is available at the state page URL. It still omits permissions, error behavior, and whether the operation is explicitly read-only, but the key output-size and full-data behavior is well covered.
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?
The description is two tight sentences, front-loaded with the resource types and location scope, then the row limit and full-list source. Every sentence adds useful information without waste.
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?
There is no output schema and low schema description coverage, so the description should be fuller. It covers the core listing scope and output cap, but leaves gaps around the limit parameter's default behavior and the full set of returned row fields.
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 25%, so the description must compensate. It expands the kind enum into human-readable facility types and clarifies city is optional, but it does not explain the limit parameter explicitly or clarify its default behavior beyond the 50-row cap.
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 clearly names the resource types and location scope (state, optionally city), so an agent can tell it is a filtered facility listing. It does not explicitly contrast itself with siblings such as search_providers or nearby_providers, so it stops short of full differentiation.
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 state/city scope implies when the tool is appropriate, but there is no explicit when-to-use guidance or routing to alternatives like search_providers or nearby_providers. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_phoneWho is at this phone numberBInspect
Providers whose registry practice phone, or a phone they published on a claimed page, is this number. Any US format. Providers who asked for their phone to be withheld are not returned.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | A US phone number in any format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose a real behavioral rule — matches come from two distinct phone sources (practice registry vs. self-published on a claimed page) and withheld numbers are suppressed — which is valuable beyond the schema. It omits what is returned (a provider record vs. a list), whether multiple providers can match one number, and pagination.
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 short sentences with no waste, and the core matching rule is front-loaded. The first sentence is syntactically tangled ('whose registry practice phone, or a phone they published on a claimed page, is this number'), which costs a little readability but not length.
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 one-parameter lookup with no output schema and no annotations, the description covers input format and one filtering rule but never says what comes back — a single provider, a list of providers, or an empty result when the number is unclaimed. That return-shape gap is the main missing piece for correct invocation/interp retation.
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?
There is a single required parameter with 100% schema description coverage, so the schema already states 'A US phone number in any format.' The description's 'Any US format' merely restates it rather than adding parsing or normalization detail. 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 identifies the resource (providers) and the matching criterion (their registry practice phone or a phone published on a claimed page equals this number), which effectively communicates a reverse phone lookup and distinguishes it from lookup_provider (by identity) and search_providers (by other criteria). However, it never states the action as a verb — the agent must infer 'find/look up' from a relative clause.
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?
There is no when-to-use guidance and none of the siblings (lookup_provider, search_providers, nearby_providers) are named as alternatives even though a phone-based lookup overlaps conceptually with provider search. The only constraint given is negative (withheld numbers are excluded), which is a filter, not routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_providerLook up a provider by NPIAInspect
One provider by NPI: the registry record, and what the public files have on them (Open Payments total, Medicare billing, OIG exclusion, Medicare clinician record, facility enrollments, claimed-page details) with the page section where each is. The result's url is the page to cite and to send readers to for the detail.
| Name | Required | Description | Default |
|---|---|---|---|
| npi | Yes | The 10-digit National Provider Identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it lists the data categories returned (Open Payments, Medicare billing, OIG exclusion, clinician records, facility enrollments, claimed-page details) and identifies the result URL as the citation target. It does not describe not-found behavior or any access constraints.
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 dense sentences, front-loaded with the core operation and followed by the return-content details and citation URL. The parenthetical list is long but each item identifies a distinct source section, so little is wasted.
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 multi-source lookup with no output schema, the description is fairly complete: it tells the agent what sources are merged, that page sections are included, and that the URL is for citation. Missing only edge-case behavior such as no-match results.
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% and the npi parameter is fully described in the schema. The description adds no parameter-level detail beyond reinforcing that lookup is by NPI, so baseline 3 is appropriate.
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 states a specific resource (one provider), a specific identifier (NPI), and enumerates the registry/public-file data returned. It implicitly distinguishes a single-provider lookup from sibling search tools, but does not explicitly name the alternative.
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?
Usage is implied by 'One provider by NPI' and the mention of citing the result URL, but there is no explicit when-to-use guidance or comparison to search_providers for name/specialty searches. An agent can infer the right context but must do so itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nearby_providersNearest providers of the same specialtyAInspect
The providers with the same specialty nearest a given provider (by NPI) or a ZIP code and specialty, by distance between ZIP code centres. Up to 12.
| Name | Required | Description | Default |
|---|---|---|---|
| npi | No | Start from this provider's specialty and ZIP | |
| zip | No | Or a 5-digit ZIP code, with taxonomy | |
| limit | No | ||
| taxonomy | No | NUCC taxonomy code, e.g. 207Q00000X for family medicine; required with zip |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that proximity is computed by distance between ZIP code centres and that results are capped at 12, but it does not clarify read-only behavior, permission requirements, output format, or what happens if both npi and zip are provided.
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?
The description is a single, front-loaded sentence that states the resource, the two lookup modes, the distance basis, and the result cap. There is no redundant or wasted text.
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 tool with no annotations and no output schema, the description covers the core input modes and the maximum result count. However, it leaves gaps around output fields, conflict handling when both npi and zip are supplied, and behavioral details such as ordering or pagination.
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 75%, so the baseline is 3, but the description adds meaningful semantics: npi starts from that provider's specialty and ZIP, while zip requires a taxonomy to identify the specialty. The distance metric between ZIP code centres further clarifies how zip-based search works.
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 states a specific resource and operation: providers of the same specialty nearest a given provider or ZIP plus specialty, measured by distance between ZIP code centres. It is clear what the tool returns and its scope is bounded by 'Up to 12', though it does not explicitly name sibling tools such as search_providers or lookup_provider as alternatives.
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?
Usage is implied by the two supported modes: start from an NPI, or supply a ZIP code with a taxonomy. The description does not say when to choose this tool over search_providers or lookup_provider, nor does it state exclusions or prerequisites beyond the schema-level note that taxonomy is required with zip.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_providersSearch providers by nameAInspect
Find individual providers or organizations by name, optionally within a state. Returns up to 20 matches, best first, each with its page url. Use lookup_provider on a result for the full record.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | A person's name ('maria gonzalez', 'gonzalez'), or an organization name | |
| state | No | Two-letter state code, e.g. TX |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose key traits: up to 20 matches, best-first ordering, and that each result includes a page URL. It still omits edge-case behavior such as no-match responses, default limit behavior, or whether matching is fuzzy/prefix-based.
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?
The description is front-loaded and efficient: purpose, result shape, and follow-up action are covered in three short clauses with no wasted text.
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 simple search tool with no output schema, the description supplies the essential result shape and directs the agent to lookup_provider for full records. It is nearly complete, but the undocumented limit/default behavior and no-match behavior keep it from being fully self-contained.
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 67%, with query and state already documented in the schema. The description reinforces name and optional-state usage but does not explain the limit parameter, its default, or how it interacts with the stated 20-match cap.
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 search action on providers, clearly scoped to individual providers or organizations and optionally a state. The phrase "by name" distinguishes it from geographic siblings like nearby_providers, and it explicitly contrasts with lookup_provider for full records.
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 gives useful follow-up guidance by saying to use lookup_provider on a result for the full record. However, it does not explain when to prefer this tool over nearby_providers, list_facilities, or other search-like siblings, nor when not to use it.
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.
6 tool updates
- First observed
data_sources - First observed
list_facilities - First observed
lookup_phone - First observed
lookup_provider - First observed
nearby_providers - First observed
search_providers
Related MCP Connectors
Look up US healthcare providers and organisations by NPI.
Healthcare provider & compliance intel: NPPES lookup, OIG/SAM exclusion screening, FDA enforcement.
Pay-per-call US healthcare data: hospital financials, prices, quality, exclusions, wages.
CMS quality ratings, payer-negotiated prices, and clinician data for 41K+ US healthcare facilities.
Related MCP Servers
- 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 gradedqualityAmaintenanceLook up US healthcare providers in the NPPES NPI registry and resolve NUCC specialty codes via MCP.112 npm1Apache 2.0
- FlicenseNot gradedqualityDmaintenanceSource-provenanced US federal healthcare provider data over MCP. Resolve any NPI or CCN across NPPES, OIG LEIE, SAM.gov, state Medicaid exclusions, CMS PECOS, Care Compare, and Open Payments — every field carries a 14-field provenance contract, and an "excluded or compromised anywhere" check runs on every lookup.-
- AlicenseNot gradedqualityBmaintenanceEnables querying healthcare provider information from the CMS NPI Registry using a 10-digit National Provider Identifier (NPI).9 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.