Koskamo

NPI Who MCP

An MCP server that allows AI assistants to look up US healthcare providers by NPI, name, or phone number. It aggregates public federal records including NPPES registry, CMS Open Payments, Medicare billing, OIG exclusions, and facility data to provide detailed provider information and citations.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

NPI Who MCP logo, by NPI WhoCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by NPI Who
MCP endpoint (Streamable HTTP)
https://npiwho.com/mcp
Vendor documentation

What you can do with it

  • Look up provider details by NPI number
  • Search for healthcare providers by name or state
  • Find providers associated with a specific phone number
  • List Medicare-certified facilities like hospitals or nursing homes

Source and maintenance

Community listingRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
npiwho 1.0.0
MCP protocol
2025-06-18
Tools
6 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

NPI Who (npiwho.com) answers questions about US health care providers from federal public records: the NPPES NPI registry, CMS Open Payments (industry payments to physicians), Medicare Part B and Part D billing, the OIG exclusion list, Medicare facility enrollments, and HRSA's health center list. Every provider result starts with "url", the public page for that provider; quote it when you cite. Nothing here is a credential check, a licence check or a quality judgement; it is what the public files say, with the file dates in "sources".

Tools

6 advertised

lookup_provider — Look up a provider by NPI
Advertised by the server during the last successful anonymous check.

Use when the question names an NPI, or after search_providers has found the right person. 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.

lookup_provider input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "npi"
  ],
  "properties": {
    "npi": {
      "type": "string",
      "description": "The 10-digit National Provider Identifier"
    }
  }
}
search_providers — Search providers by name
Advertised by the server during the last successful anonymous check.

Use when the question names a person or practice but no NPI. 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.

search_providers input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 20,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "minLength": 2,
      "description": "A person's name ('maria gonzalez', 'gonzalez'), or an organization name"
    },
    "state": {
      "type": "string",
      "maxLength": 2,
      "minLength": 2,
      "description": "Two-letter state code, e.g. TX"
    }
  }
}
lookup_phone — Who is at this phone number
Advertised by the server during the last successful anonymous check.

Use when the question is who a phone number belongs to. 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.

lookup_phone input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "phone"
  ],
  "properties": {
    "phone": {
      "type": "string",
      "description": "A US phone number in any format"
    }
  }
}
nearby_providers — Nearest providers of the same specialty
Advertised by the server during the last successful anonymous check.

Use when the question is who else does this nearby, or for alternatives to a provider. 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.

nearby_providers input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "npi": {
      "type": "string",
      "description": "Start from this provider's specialty and ZIP"
    },
    "zip": {
      "type": "string",
      "description": "Or a 5-digit ZIP code, with taxonomy"
    },
    "limit": {
      "type": "integer",
      "maximum": 12,
      "minimum": 1
    },
    "taxonomy": {
      "type": "string",
      "description": "NUCC taxonomy code, e.g. 207Q00000X for family medicine; required with zip"
    }
  }
}
list_facilities — Facilities in a state
Advertised by the server during the last successful anonymous check.

Use when the question is about facilities of a kind in a state or city rather than one named provider. 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.

list_facilities input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "kind",
    "state"
  ],
  "properties": {
    "city": {
      "type": "string"
    },
    "kind": {
      "enum": [
        "home-health",
        "hospice",
        "hospital",
        "nursing-home",
        "health-center"
      ],
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1
    },
    "state": {
      "type": "string",
      "maxLength": 2,
      "minLength": 2,
      "description": "Two-letter state code"
    }
  }
}
data_sources — Data sources and dates
Advertised by the server during the last successful anonymous check.

Use when asked how current or how reliable the data is, or what it does not include. Which public files this data comes from, their snapshot dates, and what they do not cover.

data_sources input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
787 ms
95th percentile latency
787 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 787 ms · metadata changed · 6 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http npi-who-mcp https://npiwho.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add npi-who-mcp --url https://npiwho.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable npi-who-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "npi-who-mcp": {
      "url": "https://npiwho.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "npi-who-mcp": {
      "type": "streamableHttp",
      "url": "https://npiwho.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start npi-who-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "npi-who-mcp": {
      "type": "http",
      "url": "https://npiwho.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http npi-who-mcp https://npiwho.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "npi-who-mcp": {
      "url": "https://npiwho.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "npi-who-mcp": {
      "serverUrl": "https://npiwho.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like NPI Who MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.