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
- Repository
- cyanheads/npi-providers-mcp-server
- GitHub Stars
- 1
- Server Listing
- npi-providers-mcp-server
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.8/5 across 3 of 3 tools scored.
Each tool has a clearly distinct purpose: provider lookup by NPI, taxonomy resolution and browsing, and provider search. There is no overlap or ambiguity between the three.
All tools follow the consistent pattern npi_<verb>_<object> (get, lookup, search), making the action and target immediately clear.
With only three tools, the server is tightly scoped to its domain of NPI provider data and taxonomy lookup, covering essential operations without unnecessary bulk.
The tool surface covers the full read-only workflow: resolve taxonomy codes, search for providers, and retrieve detailed records. No critical gaps are apparent for the stated purpose.
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, while NPIs whose lookup hit an upstream error (registry unavailable, timeout) land in errored — kept distinct from confirmed misses — 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. |
| errored | Yes | NPIs whose lookups failed with an upstream/transport error (service unavailable, timeout) — distinct from a confirmed miss in notFound. These are unresolved, not absent; retry them. |
| notFound | Yes | NPIs that were well-formed but returned no record (deactivated or never enumerated). A confirmed absence, not a failure. |
| 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?
Beyond the annotations (readOnlyHint, openWorldHint, idempotentHint), the description adds critical behavioral details: partial success reporting with distinct 'notFound' and 'errored' fields, input validation before API call, and handling of deactivated or missing records. This provides clear expectations for error handling.
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 with front-loaded purpose, detailed content listing, and error handling specifics. While slightly lengthy, every sentence serves a purpose, making it efficient for agent comprehension.
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 presence of an output schema, the description appropriately avoids explaining return values. It covers input validation, partial success, error handling, and the scope of data returned, leaving no gaps for a read-only tool.
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?
With 100% schema description coverage, the description adds value by explaining the parameter's usage context (decoding NPIs from health data) and reiterating the format and size limit. This enhances the schema's explanation without redundancy.
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 fetches the complete NPPES record for one or more NPI numbers (up to 10). It uses specific verbs ('Fetch', 'Decodes') and distinguishes itself from siblings (npi_lookup_taxonomy, npi_search_providers) by focusing on full record retrieval.
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 when to use the tool, such as 'Decodes an NPI from a claim, prescription, or another health data source'. It implicitly suggests that for taxonomy-only or search needs, siblings should be used, but could be more explicit about exclusions.
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. | |
| skip | No | Entries to skip before the page, for paging past a truncated resolve/browse result (0–1000). Keep the same query/filters and limit, raise skip by limit each call. Ignored for get. | |
| 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 — how to page a truncated result with skip, or how to broaden when nothing matched. |
| 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?
Adds behavioral traits beyond annotations: fully offline (bundled), paging behavior (keep same filters, raise skip by limit), and per-mode behavior. Annotations already declare readOnlyHint and idempotentHint, but the description provides rich context without contradiction.
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?
Well-structured with each sentence earning its place. It could be slightly more concise but remains clear and informative, front-loading the main purpose and then detailing modes.
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 (3 modes, 7 parameters, pagination), the description covers all modes, filters, and usage patterns. The presence of an output schema means return values are not needed. It feels complete for an agent to use 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?
Even though schema coverage is 100% and baseline is 3, the description adds meaningful usage context for parameters like 'keep the same query/filters and limit, raise skip by limit each call' for pagination, and grounding guidance. This goes beyond the schema descriptions.
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 with three explicit modes. It distinguishes from the sibling npi_search_providers by noting that this tool should be used first for grounding plain-language specialties to ensure correct taxonomy codes.
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 guidelines for when to use each mode: resolve for plain-language terms, get for exact codes, browse for hierarchy. Also provides when-not guidance: use this before npi_search_providers to avoid getting no results, which differentiates from the sibling search tool.
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", "pediatric cardiologist") 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. Pass location as the dedicated city/state/postal_code inputs, not inside specialty. Returns a compact row per provider — NPI, name, primary specialty, city/state/ZIP, 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 does not treat location as a hard filter for specialty searches, so location-constrained results are post-filtered server-side to the requested city/state/postal_code. 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. Blank values from form-based clients are treated as omitted. | |
| 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint. Description adds significant context: specialty resolution echoing, post-filtered location, no true match total, pagination behavior, and state-only rejection – far beyond annotations.
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 thorough but somewhat verbose. Every sentence adds value, but could be slightly more concise. Still well-structured with logical flow.
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 12 parameters, complex behavior, existing output schema, and sibling tools, the description covers all aspects: purpose, parameter usage, limitations, return format, and integration with other tools.
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%, but description enriches each parameter: specialty resolution, name_search as shortcut, skip pagination cap, state rejection warning. Adds meaning 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 the tool searches the NPPES NPI registry for individuals and organizations by multiple criteria. It distinguishes from sibling tools by mentioning npi_get_provider for full records and implying npi_lookup_taxonomy via specialty resolution.
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?
Explicitly states when to use (searching providers), when not to (state-only searches rejected), and provides alternatives (npi_get_provider for full records). Also warns about limitations like only 1200 matches reachable.
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!
Related MCP Servers
- Alicense-qualityCmaintenanceEnables querying healthcare provider information from the CMS NPI Registry using a 10-digit National Provider Identifier (NPI).4MIT
- -license-quality-maintenanceEnables 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.
- Flicense-qualityBmaintenanceSource-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.
- Alicense-qualityCmaintenanceMCP server for looking up and searching US healthcare providers in the CMS NPPES NPI Registry.MIT
Your Connectors
Sign in to create a connector for this server.