Spaces:
Sleeping
Sleeping
| # NPI MCP Server Explanation | |
| ## Architecture | |
| This project implements a Model Context Protocol (MCP) server that acts as a bridge between an AI Agent and the NPPES NPI Registry. | |
| 1. **Agent (Client)**: An AI agent (e.g., LangGraph) running in a separate environment connects to this MCP server. | |
| 2. **MCP Server (`npi_mcp_server`)**: This server, running in a Hugging Face Space, exposes tools defined in the MCP specification (`search_npi_providers`, `get_npi_provider`). | |
| 3. **Modal NPI API (`NPI_API`)**: The MCP server does not call the NPPES Registry directly. Instead, it forwards requests to a Modal-hosted FastAPI service (`NPI_API`). This Modal service handles the complex logic of querying the NPPES API and normalizing the data. | |
| 4. **NPPES Registry**: The ultimate source of truth for provider data. | |
| **Flow:** | |
| `Agent` -> `MCP Server (this repo)` -> `Modal NPI API` -> `NPPES Registry` | |
| ## Tools | |
| ### 1. `search_npi_providers` | |
| Searches for healthcare providers. | |
| **Arguments:** | |
| * `query` (str): Name or organization name. | |
| * `state` (str, optional): 2-letter state code. | |
| * `taxonomy` (str, optional): Taxonomy code. | |
| **Example Invocation (JSON arguments):** | |
| ```json | |
| { | |
| "query": "Mayo Clinic", | |
| "state": "MN" | |
| } | |
| ``` | |
| ### 2. `get_npi_provider` | |
| Retrieves details for a specific NPI. | |
| **Arguments:** | |
| * `npi` (str): 10-digit NPI number. | |
| **Example Invocation (JSON arguments):** | |
| ```json | |
| { | |
| "npi": "1234567890" | |
| } | |
| ``` | |