Careflow-MCP

Automatización de flujos de trabajo sanitarios lista para producción, impulsada por n8n y el Protocolo de Contexto de Modelo. Permite que Claude y otros asistentes de IA activen flujos de trabajo de gestión de tareas de pacientes compatibles con HIPAA mediante lenguaje natural.

Documentación

CareFlow MCP 🏥

Automatización de flujos de trabajo sanitarios lista para producción, impulsada por n8n y el Model Context Protocol. Permite a Claude y otros asistentes de IA activar flujos de trabajo de gestión de tareas de pacientes compatibles con HIPAA mediante lenguaje natural.

NPM Version TypeScript MCP SDK License: MIT mcp.so

🏥 Listo para el sector sanitario: Incluye documentación completa de cumplimiento HIPAA y flujos de trabajo de gestión de tareas de pacientes.

Características

  • 🚀 Activar flujos de trabajo - Ejecutar flujos de trabajo de n8n mediante webhook con cargas útiles personalizadas
  • 📋 Listar flujos de trabajo - Consultar todos los flujos de trabajo activos de tu instancia de n8n
  • 📊 Verificar estado - Supervisar el estado de ejecución de flujos de trabajo en tiempo real
  • 🏥 Listo para el sector sanitario - Soporte integrado para flujos de trabajo de tareas de pacientes
  • 🔒 Seguro de tipos - Soporte completo de TypeScript con validación de Zod
  • Listo para producción - Manejo de errores y registro exhaustivo
  • 🛠️ Estándar MCP - Compatible con Claude Desktop y otros clientes MCP

📚 Documentación y ejemplos

Inicio rápido con ejemplos

# 1. Import workflow to n8n
examples/healthcare-patient-task-workflow.json

# 2. Configure credentials in n8n

# 3. Ask Claude:
"Create a patient task for ID P12345 in the Patient Care workflow"

Herramientas expuestas

HerramientaDescripciónParámetros requeridos
trigger_workflowActiva un flujo de trabajo de n8n por nombre con carga útil JSONworkflowName, payload
list_workflowsLista todos los flujos de trabajo activos de n8nNinguno
get_workflow_statusVerifica el estado de ejecución por IDexecutionId
create_patient_taskEnvía una tarea de paciente estructurada al flujo de trabajoworkflowName, patientId, taskType

Requisitos previos

  • Node.js >= 18.0.0
  • Instancia de n8n (en la nube o autoalojada) con acceso a la API
  • Clave API de n8n (generar en n8n Configuración > API)

Instalación

Opción 1: Mediante Smithery (la más fácil)

Instala directamente desde mcp.so usando Smithery:

npx @smithery/cli install careflow-mcp

Esto automáticamente:

  • Instalará el paquete
  • Lo añadirá a tu configuración de Claude Desktop
  • Solicitará las variables de entorno requeridas

Opción 2: Instalación mediante NPM

npm install -g careflow-mcp

Opción 3: Desde el código fuente

# Clone the repository
git clone https://github.com/pratapsfdc22-dev/careflow-mcp.git
cd careflow-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Link globally (optional)
npm link

Configuración

1. Crear archivo de entorno

cp .env.example .env

2. Configurar variables de entorno

Edita .env con tus credenciales de n8n:

# Base URL of your n8n instance
N8N_BASE_URL=https://your-n8n-instance.com

# n8n API Key (Settings > API > Create API Key)
N8N_API_KEY=n8n_api_xxxxxxxxxxxxxxxxxxxxxxxx

# Optional: Webhook Secret
N8N_WEBHOOK_SECRET=your_webhook_secret

3. Configurar Claude Desktop

Añade a tu claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "n8n-workflow": {
      "command": "node",
      "args": [
        "/path/to/careflow-mcp/dist/index.js"
      ],
      "env": {
        "N8N_BASE_URL": "https://your-n8n-instance.com",
        "N8N_API_KEY": "your_api_key_here",
        "N8N_WEBHOOK_SECRET": "your_webhook_secret"
      }
    }
  }
}

Usando instalación global de npm:

{
  "mcpServers": {
    "n8n-workflow": {
      "command": "careflow-mcp",
      "env": {
        "N8N_BASE_URL": "https://your-n8n-instance.com",
        "N8N_API_KEY": "your_api_key_here"
      }
    }
  }
}

Ejemplos de uso

1. Activar un flujo de trabajo

// Ask Claude:
"Trigger the 'Customer Onboarding' workflow with this data:
{ email: 'user@example.com', name: 'John Doe' }"

2. Listar todos los flujos de trabajo activos

// Ask Claude:
"Show me all active n8n workflows"

3. Verificar el estado de ejecución del flujo de trabajo

// Ask Claude:
"Check the status of execution ID: abc123"

4. Crear una tarea de paciente

// Ask Claude:
"Create a high-priority follow-up task for patient ID P12345
in the 'Patient Care' workflow, due tomorrow"

Desarrollo

Compilar

npm run build

Modo de observación

npm run watch

Ejecutar localmente

npm run dev

Limpiar artefactos de compilación

npm run clean

Estructura del proyecto

careflow-mcp/
├── src/
│   ├── index.ts        # Main MCP server implementation
│   └── types.ts        # TypeScript types and Zod schemas
├── dist/               # Compiled JavaScript (generated)
├── .env.example        # Environment variable template
├── .gitignore          # Git ignore rules
├── package.json        # NPM package configuration
├── tsconfig.json       # TypeScript configuration
└── README.md           # This file

Referencia de la API

trigger_workflow

Activa un flujo de trabajo de n8n por nombre con carga útil JSON opcional.

Entrada:

{
  workflowName: string;    // Name of the workflow
  payload?: object;        // Optional JSON data
}

Salida:

{
  "success": true,
  "workflowId": "abc123",
  "workflowName": "Customer Onboarding",
  "response": { ... }
}

list_workflows

Lista todos los flujos de trabajo activos de la instancia de n8n.

Entrada: Ninguna

Salida:

{
  "success": true,
  "count": 5,
  "workflows": [
    {
      "id": "abc123",
      "name": "Customer Onboarding",
      "active": true,
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-15T12:00:00.000Z"
    }
  ]
}

get_workflow_status

Verifica el estado de ejecución de una ejecución de flujo de trabajo.

Entrada:

{
  executionId: string;    // Execution ID from trigger response
}

Salida:

{
  "success": true,
  "execution": {
    "id": "exec123",
    "workflowId": "abc123",
    "finished": true,
    "status": "success",
    "startedAt": "2024-01-15T12:00:00.000Z",
    "stoppedAt": "2024-01-15T12:00:05.000Z"
  }
}

create_patient_task

Envía una tarea de paciente estructurada a un flujo de trabajo de n8n.

Entrada:

{
  workflowName: string;          // Target workflow
  patientId: string;             // Patient identifier
  taskType: string;              // Task type
  priority?: "low" | "medium" | "high" | "urgent";
  description?: string;
  dueDate?: string;              // ISO 8601 format
  assignedTo?: string;
  metadata?: object;
}

Salida:

{
  "success": true,
  "workflowId": "abc123",
  "workflowName": "Patient Care",
  "task": { ... },
  "response": { ... }
}

Manejo de errores

El servidor implementa un manejo de errores exhaustivo con códigos de error MCP adecuados:

  • Parámetros no válidos - ErrorCode.InvalidParams
  • Método no encontrado - ErrorCode.MethodNotFound
  • Error interno - ErrorCode.InternalError

Todos los errores incluyen mensajes descriptivos para depuración.

Mejores prácticas de seguridad

  1. Nunca confirmes .env - Usa siempre .env.example para plantillas
  2. Rota las claves API - Actualiza regularmente tus claves API de n8n
  3. Usa secretos de webhook - Añade autenticación a los disparadores de webhook
  4. Restringe el acceso a la API - Usa los permisos de clave API de n8n
  5. Supervisa los registros - Revisa los registros del servidor para detectar actividad sospechosa

Solución de problemas

El servidor no se inicia

# Check Node.js version
node --version  # Should be >= 18.0.0

# Verify environment variables
cat .env

# Check TypeScript compilation
npm run build

Flujo de trabajo no encontrado

  • Verifica que el nombre del flujo de trabajo coincida exactamente (distingue mayúsculas y minúsculas)
  • Asegúrate de que el flujo de trabajo esté activo en n8n
  • Comprueba que la clave API tenga permiso para acceder a los flujos de trabajo

Autenticación fallida

  • Verifica que N8N_API_KEY sea correcto
  • Comprueba que N8N_BASE_URL incluya el protocolo (https://)
  • Asegúrate de que la clave API no haya caducado

El disparador de webhook falla

  • Verifica que el nodo de webhook exista en el flujo de trabajo
  • Comprueba que la ruta del webhook coincida con el ID del flujo de trabajo
  • Confirma N8N_WEBHOOK_SECRET si es necesario

Contribuciones

¡Las contribuciones son bienvenidas! Por favor:

  1. Haz un fork del repositorio
  2. Crea una rama de características (git checkout -b feature/amazing-feature)
  3. Confirma tus cambios (git commit -m 'Add amazing feature')
  4. Haz push a la rama (git push origin feature/amazing-feature)
  5. Abre un Pull Request

Licencia

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

Agradecimientos

Soporte


Construido con el Model Context Protocol