npi-providers-mcp-server
Server Details
Look up US healthcare providers in the NPPES NPI registry and resolve NUCC specialty codes.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.6/5 across 3 of 3 tools scored.
Each tool has a clearly distinct purpose: fetching by NPI, browsing taxonomy codes, and searching by criteria. No overlap in functionality.
All tool names follow a consistent 'npi_verb_noun' pattern: npi_get_provider, npi_lookup_taxonomy, npi_search_providers.
Three tools are appropriate for the focused domain of NPI provider lookup, covering the core operations without unnecessary clutter.
The set covers the full workflow: taxonomy resolution for precise searching, search by multiple criteria, and retrieval of full provider records. No obvious gaps.
Available Tools
3 toolsnpi_get_providerNpi Get ProviderARead-onlyIdempotentInspect
Fetch the complete NPPES record for one or more NPI numbers (up to 10 per call). Decodes an NPI from a claim, prescription, or another health data source into a fully populated provider profile: every taxonomy with its primary flag, license number and state; all practice and mailing addresses; credential, sex, sole-proprietor flag; enumeration and last-updated dates; active/deactivated status; secondary identifiers (Medicaid, etc.); and FHIR/Direct endpoints. The 10-digit NPI format is validated before any API call. Reports partial success: well-formed NPIs with no registry record (deactivated or never enumerated) land in notFound rather than failing the whole call.
| Name | Required | Description | Default |
|---|---|---|---|
| npis | Yes | A single 10-digit NPI, or an array of up to 10. Each is validated as exactly 10 digits before any API call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | Fully decoded records for NPIs that resolved. |
| notice | No | Guidance when some or all NPIs returned nothing. |
| notFound | Yes | NPIs that were well-formed but returned no record (deactivated or never enumerated). |
| totalCount | Yes | Number of provider records that resolved from the requested NPIs. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral details beyond annotations: it validates NPI format before API calls, reports partial success with notFound for missing records (deactivated or never enumerated), and lists included fields. All annotations are consistent (readOnly, openWorld, idempotent), and no contradictions exist.
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 well-structured and front-loaded: first sentence states the core ability and limit, then details the returned fields, validation, and error behavior. Every sentence adds value, and there is no redundant or excessive information.
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?
Given the tool's complexity (fetching full provider records with many fields), the description is thorough. It covers input constraints, output fields summarization, validation, and partial success behavior. With an output schema present, the description provides sufficient contextual completeness for an agent to use the tool correctly.
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%, so the schema fully describes the parameter format and constraints. The description reinforces the validation but does not add new semantic meaning beyond what the schema provides. Baseline of 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 clearly states the tool's purpose: 'Fetch the complete NPPES record for one or more NPI numbers (up to 10 per call).' It specifies the action (fetch), resource (NPPES record), and constraints (up to 10). This distinguishes it from siblings like npi_lookup_taxonomy and npi_search_providers, which focus on different tasks.
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 provides context for use, such as 'Decodes an NPI from a claim, prescription, or another health data source,' implying when to use the tool. However, it does not explicitly exclude alternatives or provide when-not-to-use guidance, but the sibling tools are sufficiently different to infer appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npi_lookup_taxonomyNpi Lookup TaxonomyARead-onlyIdempotentInspect
Resolve and browse the NUCC Healthcare Provider Taxonomy — the specialty code set NPPES uses — fully offline (bundled). Mode resolve turns a plain-language specialty (e.g. "cardiologist", "heart doctor") into matching taxonomy codes and their canonical descriptions; mode get returns the full entry for an exact code; mode browse walks the hierarchy (grouping → classification → specialization), optionally filtered by grouping and by NPI section (Individual/NPI-1 vs Non-Individual/NPI-2). Grounding a plain-language specialty here before calling npi_search_providers ensures the correct taxonomy code is sent rather than returning nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | For mode "get": the exact NUCC taxonomy code (e.g. "207RC0000X"). | |
| mode | Yes | resolve: plain term → codes. get: exact code → entry. browse: walk the hierarchy. | |
| limit | No | Maximum entries to return for resolve/browse (1–50). Ignored for get. | |
| query | No | For mode "resolve": the plain-language specialty term to resolve (e.g. "pediatric cardiologist"). | |
| section | No | For mode "browse": filter by NPI section — Individual (NPI-1) or Non-Individual (NPI-2). | |
| grouping | No | For mode "browse": filter to a top-level grouping by case-insensitive substring (e.g. "physicians"). |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The limit that was applied. |
| shown | No | Number of entries returned. |
| notice | No | Guidance when nothing matched — suggests broadening or browsing the hierarchy. |
| matches | Yes | Matching taxonomy entries. For mode "get" this is the single requested entry; for "resolve"/"browse" it is the ranked/sorted matches up to limit. |
| truncated | No | True when the list was capped at `limit` (more entries may match). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds value by noting the tool is fully offline/bundled, describes hierarchical browsing, and outlines mode behavior. No contradictions. Some details like error handling are absent but not critical.
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 paragraph that effectively front-loads the main purpose. It covers all modes and usage hints without excessive verbosity. Could be slightly more concise, but structure is clear.
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?
Given the tool's complexity (three modes, hierarchy, sibling relationship), the description is highly complete. It covers all modes, parameter constraints, offline nature, and integration with npi_search_providers. Output schema exists to handle return values, so no gap there.
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 100%, so baseline is 3. The description adds meaning by explaining how parameters interact with modes (e.g., query for resolve, code for get, grouping and section for browse). It also notes that grouping is case-insensitive substring matching, going beyond schema.
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 states it resolves and browses the NUCC Healthcare Provider Taxonomy, and distinguishes three modes (resolve, get, browse). It also relates to sibling tool npi_search_providers, ensuring the agent knows the tool's role. No ambiguity.
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 explicitly tells when to use each mode (resolve for plain term, get for exact code, browse for hierarchy). It advises grounding via resolve before calling npi_search_providers, providing clear usage context. Alternatives are implied through mode selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npi_search_providersNpi Search ProvidersARead-onlyIdempotentInspect
Search the NPPES NPI registry for individual practitioners and healthcare organizations by name, organization name, location, provider type, and specialty. The specialty filter accepts plain-language terms (e.g. "cardiologist", "endocrinologist in Seattle") and resolves them through the bundled NUCC taxonomy to the registry's exact taxonomy descriptions before searching; the resolved taxonomy is echoed back so you can see what was actually searched. Returns a compact row per provider — NPI, name, primary specialty, city/state, type, and active/deactivated status — suitable for disambiguation; call npi_get_provider with an NPI for the full record. At least one search criterion is required, and the registry rejects state-only searches (pair state with another filter). The registry never reports a true match total and only the first 1200 matches are reachable, so broad queries are capped — narrow with more filters.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Practice-location city. | |
| skip | No | Results to skip for pagination (0–1000). Only the first 1200 matches are reachable; skip beyond 1000 silently returns the same window — narrow the query instead of paging further. | |
| limit | No | Maximum providers to return (1–200; the registry caps at 200). | |
| state | No | 2-letter state code (e.g. "WA"). The registry rejects state-only searches — pair it with another criterion. | |
| last_name | No | Individual last name. Trailing wildcard "*" allowed with at least 2 leading characters. | |
| specialty | No | Plain-language specialty (e.g. "pediatric cardiologist"), resolved through the bundled NUCC taxonomy to exact descriptions before searching. The matched taxonomy is echoed in the result. Mutually exclusive with taxonomy_description. | |
| first_name | No | Individual first name. Trailing wildcard "*" allowed with at least 2 leading characters. | |
| name_search | No | Convenience shortcut: a single person's name, split into first/last heuristically. For precise control use first_name/last_name. | |
| postal_code | No | Practice-location postal/ZIP code (5 or 9 digits). | |
| provider_type | No | Restrict to individuals (NPI-1) or organizations (NPI-2). Omit to search both. | |
| organization_name | No | Organization name (implies provider_type organization). Trailing wildcard "*" allowed with at least 2 leading characters. | |
| taxonomy_description | No | Exact NUCC taxonomy description for direct passthrough — use when the taxonomy description is already known. Mutually exclusive with specialty. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The limit that was applied. |
| shown | No | Number of providers returned. |
| notice | No | Guidance — pagination ceiling, page-size-not-total caveat, or how to broaden an empty result. |
| providers | Yes | Matching provider rows (up to limit). |
| truncated | No | True when the returned page hit the limit — more may match. |
| resolvedTaxonomies | No | The taxonomy candidates the specialty term resolved to; the first was sent to the registry. Re-run with taxonomy_description to pick a different one. |
| appliedTaxonomyDescription | No | The single taxonomy_description sent to the registry (from specialty resolution or the raw escape hatch). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, openWorldHint, idempotentHint), description adds key behavioral traits: specialty resolution via NUCC taxonomy, return format, pagination limitations, and the requirement of multiple filters.
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?
Description is detailed but well-structured and front-loaded. Could be slightly more concise, but every sentence adds essential information.
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?
Given the complexity (12 parameters, pagination, specialty resolution) and presence of output schema, the description is fully complete, covering all necessary usage and behavioral details.
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 covers all 12 parameters with descriptions. Description adds value by explaining specialty resolution process, name_search heuristic, wildcard rules, and mutual exclusivity of specialty and taxonomy_description.
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 states it searches the NPPES NPI registry for individuals and organizations by multiple criteria. It distinguishes itself from sibling tools (npi_get_provider, npi_lookup_taxonomy) by specifying that full records are obtained via npi_get_provider.
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?
Explicit guidance on when to use this tool vs alternatives, including when to call npi_get_provider for full records. Also provides constraints: at least one criterion required, state-only searches rejected, and broad queries are capped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!