NPI Registry

Busca en el registro del National Provider Identifier (NPI) proveedores de salud y organizaciones en los Estados Unidos.

Documentación

Servidor MCP de NPI Registry 🏥

Un servidor de Model Context Protocol (MCP) para buscar en el registro de National Provider Identifier (NPI). Este servidor proporciona herramientas para buscar y recuperar información sobre proveedores de atención médica y organizaciones en los Estados Unidos.

Descripción general 📋

NPI es un número de identificación único para proveedores de atención médica cubiertos en los Estados Unidos. Este servidor MCP permite a Claude y otros clientes compatibles con MCP buscar en el registro oficial de NPI mantenido por los Centros de Servicios de Medicare y Medicaid (CMS), e integra los resultados en el contexto de un LLM para un análisis y perspectivas mejorados.

Características ✨

  • Búsqueda por nombre de proveedor: Encuentre proveedores de atención médica individuales por nombre, apellido o ambos
  • Búsqueda por organización: Consulte organizaciones de atención médica por nombre
  • Búsqueda por número NPI: Consulta directa usando un NPI específico de 10 dígitos
  • Búsqueda basada en ubicación: Filtre resultados por ciudad, estado o código postal
  • Búsqueda por especialidad: Encuentre proveedores por su especialidad o descripción de taxonomía
  • Datos completos: Devuelve información detallada que incluye direcciones, ubicaciones de práctica, especialidades y otros identificadores

Casos de uso 💡

  • Verificar credenciales de proveedores de atención médica
  • Encontrar información de contacto y direcciones de proveedores
  • Consultar detalles de organizaciones y funcionarios autorizados
  • Validar números NPI
  • Investigar especialidades y taxonomías de proveedores
  • Encontrar proveedores en áreas geográficas específicas

Instalación 🚀

Requisitos previos 📋

  • Python 3.10 o superior
  • Administrador de paquetes uv

Configuración de desarrollo 🛠️

  1. Clonar el repositorio:

    git clone https://github.com/eliotk/npi-registry-mcp-server.git
    cd npi-registry-mcp-server
    
  2. Instalar uv (si aún no está instalado):

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  3. Crear un entorno virtual e instalar dependencias:

    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    uv pip install -e ".[dev]"
    
  4. Ejecutar el servidor directamente (para pruebas):

    uv run python -m npi_registry_mcp.server
    # or using the entry point:
    uv run npi-registry-mcp-server
    

Instalación en producción 🌟

Instalar desde PyPI (una vez publicado):

uv pip install npi-registry-mcp-server

O instalar desde el código fuente:

uv pip install git+https://github.com/eliotk/npi-registry-mcp-server.git

Uso 📚

Herramientas disponibles 🛠️

search_npi_registry 🔎

Buscar en el registro NPI con varios criterios:

Parámetros:

  • first_name (opcional): Nombre del proveedor
  • last_name (opcional): Apellido del proveedor
  • organization_name (opcional): Nombre de la organización
  • npi (opcional): Número NPI específico de 10 dígitos
  • city (opcional): Nombre de la ciudad
  • state (opcional): Abreviatura del estado (p. ej., 'CA', 'NY')
  • postal_code (opcional): Código postal (admite comodines)
  • specialty (opcional): Especialidad o taxonomía del proveedor
  • limit (opcional): Número máximo de resultados a devolver (1-200, predeterminado: 10)

Ejemplos:

# Search for a specific provider by name
search_npi_registry(first_name="John", last_name="Smith", state="CA")

# Look up a specific NPI
search_npi_registry(npi="1234567890")

# Find organizations in a city
search_npi_registry(organization_name="Hospital", city="Los Angeles", state="CA")

# Search by specialty
search_npi_registry(specialty="cardiology", state="NY", limit=20)

# Find providers in a specific ZIP code area
search_npi_registry(postal_code="902*", state="CA")

Formato de respuesta 📄

La búsqueda devuelve una respuesta estructurada con:

{
  "success": true,
  "count": 5,
  "results": [
    {
      "npi": "1234567890",
      "entity_type": "Individual",
      "is_organization": false,
      "status": "A",
      "enumeration_date": "2010-05-05",
      "last_updated": "2023-01-15",
      "name": {
        "first": "John",
        "last": "Smith",
        "credential": "MD"
      },
      "addresses": [...],
      "practice_locations": [...],
      "taxonomies": [...],
      "identifiers": [...]
    }
  ]
}

Configuración de Claude Desktop 🖥️

Para usar este servidor MCP con Claude Desktop, agregue la siguiente configuración a su archivo de configuración de Claude Desktop:

macOS 🍎

Ubicación: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows 🪟

Ubicación: %APPDATA%/Claude/claude_desktop_config.json

Configuración 📝

{
  "mcpServers": {
    "npi-registry": {
      "command": "uv", # may need full path to executable
      "args": [
        "--directory",
        "/path/to/npi-registry-mcp-server",
        "run",
        "npi-registry-mcp-server"
      ]
    }
  }
}

Verificación ✅

  1. Guarde el archivo de configuración
  2. Reinicie Claude Desktop por completo
  3. Busque el ícono 🔧 en Claude Desktop para verificar que el servidor esté conectado
  4. Intente preguntarle a Claude: "Busca médicos llamados Smith en California"

Desarrollo 👨‍💻

Estructura del proyecto 📁

npi-registry-mcp-server/
├── src/
│   └── npi_registry_mcp/
│       ├── __init__.py
│       └── server.py
├── tests/
├── pyproject.toml
├── README.md
└── .gitignore

Ejecutar pruebas 🧪

uv run pytest

Formato de código 🎨

# Format code
uv run black src/ tests/

# Sort imports
uv run isort src/ tests/

# Lint
uv run ruff check src/ tests/

# Type checking
uv run mypy src/

Compilar el paquete 📦

uv build

Referencia de la API 📖

Este servidor utiliza la API oficial del Registro NPI proporcionada por CMS:

Fuentes de datos 🗃️

Todos los datos provienen directamente del Registro NPI oficial mantenido por:

  • Centros de Servicios de Medicare y Medicaid (CMS)
  • Departamento de Salud y Servicios Humanos de los EE. UU.

Contribuciones 🤝

  1. Haga un fork del repositorio
  2. Cree una rama de características: git checkout -b feature-name
  3. Realice sus cambios y agregue pruebas
  4. Ejecute la suite de pruebas: uv run pytest
  5. Formatee su código: uv run black src/ tests/
  6. Envíe una solicitud de extracción

Licencia 📄

Licencia MIT: consulte el archivo LICENSE para obtener más detalles.

Soporte 🆘

  • Problemas: Reporte errores y solicite funciones a través de GitHub Issues
  • Documentación: Documentación adicional disponible en el directorio /docs
  • Preguntas sobre la API: Consulte la documentación oficial de la API del Registro NPI

Historial de cambios 📝

v0.1.0 🎉

  • Lanzamiento inicial
  • Funcionalidad básica de búsqueda en el registro NPI
  • Soporte para búsquedas de individuos y organizaciones
  • Filtrado por ubicación y especialidad
  • Recuperación completa de datos de proveedores

Para obtener más información sobre el Model Context Protocol, visite: https://modelcontextprotocol.io/