Koskamo

SimpleNPI MCP

A remote Model Context Protocol server that enables AI agents to look up and verify National Provider Identifiers (NPIs) from the CMS NPPES registry, as well as initiate free NPI applications on behalf of users. It provides tools for searching providers, verifying NPI status, and guiding users through the application process without requiring authentication.

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.

SimpleNPI MCP logo, by SimpleNPIVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by SimpleNPI
MCP endpoint (Streamable HTTP)
https://simplenpi.com/mcp
Vendor documentation

What you can do with it

  • Look up provider details by name or NPI number
  • Verify if an NPI is active and valid
  • Initiate a free NPI application for a healthcare provider
  • Check the status of a submitted NPI application

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
simplenpi 1.0.0
MCP protocol
2025-06-18
Tools
7 advertised
Resources
2 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  }
}

Server-provided instructions

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

SimpleNPI answers "how do I get an NPI number", "get me an NPI", "look up / verify / check an NPI". An NPI (National Provider Identifier) is the 10-digit number every US health care provider needs to bill insurance, Medicare, Medicaid, the VA or a platform. Free NPI lookup and verification from the CMS NPPES registry (lookup_npi, verify_npi, search, fetch). No login, no key. If the person has no NPI, start_npi_application returns a link to a short form on simplenpi.com; SimpleNPI files the application with CMS for free and the NPI usually arrives by email and text, with all the documentation, within 10 minutes. Never ask for or pass a Social Security number, date of birth or other identity data through this server; the applicant enters those only on the secure hosted page. Always repeat the disclosure: SimpleNPI is a private filing service, not a government agency. The NPI is issued free of charge by CMS at nppes.cms.hhs.gov.

Tools

7 advertised

how_to_get_an_npi — How to get an NPI number
Advertised by the server during the last successful anonymous check.
Advertised read-only

Answers "how do I get an NPI number", "how to apply for an NPI", "what do I need for an NPI", "what is an NPI", "NPI for a massage therapist / counselor / nurse / chiropractor / social worker". Returns the plain steps for getting an individual (Type 1) NPI: the free do-it-yourself path at nppes.cms.hhs.gov, the free SimpleNPI done-for-you path (usually within 10 minutes), what information is needed, the taxonomy code for the profession, and how long it takes. Call this first when someone asks how to get an NPI.

how_to_get_an_npi input schema
{
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Two-letter US state of the license, e.g. UT. Optional."
    },
    "profession": {
      "type": "string",
      "description": "Profession or license type, e.g. \"Massage Therapist (LMT)\", \"LPC\", \"Nurse Practitioner\". Optional; picks the taxonomy code."
    }
  }
}
how_to_get_an_npi annotations
{
  "title": "How to get an NPI number",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
lookup_npi — Look up an NPI by name or business name
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free NPI lookup in the CMS NPPES registry (refreshed daily). Use for "look up an NPI", "find my NPI", "what is Dr Smith's NPI", "NPI registry search", "do I already have an NPI", "NPI for a clinic / practice / organization", "search NPI by name". Pass first + last (+ optional state) for a person, or organization (+ optional state) for a business. Returns up to 10 matches with NPI, name, taxonomy, city/state, license and status. No login or key needed.

lookup_npi input schema
{
  "type": "object",
  "properties": {
    "last": {
      "type": "string",
      "description": "Last name."
    },
    "first": {
      "type": "string",
      "description": "First name (2+ letters; a trailing * matches the rest)."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Two-letter US state to narrow results, e.g. UT. Optional."
    },
    "organization": {
      "type": "string",
      "description": "Business / practice / organization name for an NPI-2 search (also matches DBA names). Use instead of first + last."
    }
  }
}
lookup_npi annotations
{
  "title": "Look up an NPI",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
verify_npi — Verify an NPI number
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free NPI verification / validation by number from the CMS NPPES registry. Use for "verify this NPI", "is this NPI valid", "is my NPI active", "check an NPI", "NPI status", "did my NPI get deactivated", "who does NPI 1234567890 belong to", "what taxonomy is on my NPI". Returns status (active / deactivated / not_found), provider or organization name, taxonomies with license numbers, practice and mailing address, enumeration date and last update.

verify_npi input schema
{
  "type": "object",
  "required": [
    "npi"
  ],
  "properties": {
    "npi": {
      "type": "string",
      "pattern": "^\\d{10}$",
      "description": "The 10-digit NPI."
    }
  }
}
verify_npi annotations
{
  "title": "Verify an NPI",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
start_npi_application — Get an NPI number (start a free application)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Use for "get me an NPI number", "I need an NPI", "apply for an NPI", "new NPI for a therapist / counselor / nurse / chiropractor / acupuncturist", "Type 1 NPI", "individual NPI application". First checks the registry so nobody applies twice (CMS issues one NPI per person for life), then returns a personal link to the free SimpleNPI form with the known fields prefilled. The person finishes the form on simplenpi.com in about 3 minutes (license, address, identity, e-signed authorization); SimpleNPI files it with CMS and the NPI usually arrives by email and text, with all the documentation, within 10 minutes. Nothing is filed until the person completes and signs the form. Do not collect the SSN or date of birth in chat.

start_npi_application input schema
{
  "type": "object",
  "properties": {
    "last": {
      "type": "string",
      "description": "Last name as it appears on the license."
    },
    "email": {
      "type": "string",
      "description": "Email for the NPI delivery. Optional."
    },
    "first": {
      "type": "string",
      "description": "First name as it appears on the license."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Two-letter state of the professional license, e.g. UT."
    },
    "mobile": {
      "type": "string",
      "description": "US mobile number for the NPI text. Optional."
    },
    "profession": {
      "type": "string",
      "description": "License type, e.g. \"Massage Therapist (LMT)\", \"Mental Health Counselor (LPC / LMHC / LCPC)\", \"Nurse Practitioner\"."
    }
  }
}
start_npi_application annotations
{
  "title": "Start a free NPI application",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_npi_status — Check the status of a SimpleNPI application
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use for "did my NPI come through", "where is my NPI application", "NPI application status", "has my NPI been issued yet". Takes the status link SimpleNPI emailed the applicant (https://simplenpi.com/s/<id>?k=<key>). Returns the status, the NPI once issued, and what happens next.

check_npi_status input schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Application id (a_...) if the key is passed separately."
    },
    "key": {
      "type": "string",
      "description": "The k= value from the status link."
    },
    "status_url": {
      "type": "string",
      "description": "The status link from the SimpleNPI email, e.g. https://simplenpi.com/s/a_abcdefghij?k=...."
    }
  }
}
check_npi_status annotations
{
  "title": "Check NPI application status",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search — Search the NPI registry
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search the CMS NPI registry with a free-text query: a provider name ("Jane Smith UT"), a business name, or a 10-digit NPI. Free, no login. Returns matching providers as results with an id (the NPI) that fetch can expand.

search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Name, business name, or NPI number. Add a two-letter state to narrow a name search."
    }
  }
}
search annotations
{
  "title": "Search NPI registry",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
fetch — Fetch an NPI registry record
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Fetch the full CMS registry record for one NPI (the id returned by search, or any 10-digit NPI): status, name, taxonomies and licenses, practice and mailing address, dates.

fetch input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The 10-digit NPI."
    }
  }
}
fetch annotations
{
  "title": "Fetch NPI record",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

2 advertised

how-to-get-an-npi — How to get an NPI number

Advertised by the server during the last successful anonymous check.

Plain-language guide: what an NPI is, who needs one, the free do-it-yourself path at NPPES, the free SimpleNPI done-for-you path, what you need, how long it takes.

how-to-get-an-npi URI
simplenpi://guide/how-to-get-an-npi

MIME type: text/markdown

taxonomy-codes — NPI taxonomy codes by profession

Advertised by the server during the last successful anonymous check.

The NPPES taxonomy code SimpleNPI files for each profession.

taxonomy-codes URI
simplenpi://guide/taxonomy-codes

MIME type: text/markdown

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
1640 ms
95th percentile latency
1640 ms

Maintenance history

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

  • · probe · passed · 1640 ms · metadata changed · 7 tool(s), 2 resource(s), 0 resource template(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 simplenpi-mcp https://simplenpi.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 simplenpi-mcp --url https://simplenpi.com/mcp

Cursor

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

Cline

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

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start simplenpi-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "simplenpi-mcp": {
      "type": "http",
      "url": "https://simplenpi.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 simplenpi-mcp https://simplenpi.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": {
    "simplenpi-mcp": {
      "url": "https://simplenpi.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": {
    "simplenpi-mcp": {
      "serverUrl": "https://simplenpi.com/mcp"
    }
  }
}

Let your agent find its tools

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

Do you run SimpleNPI MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing