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.
🏥 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
- [Casos de estudio][(./case-studies/README.md)] - 5 ejemplos de implementación reales con métricas de ROI
- HEALTHCARE.md - Guía completa de cumplimiento HIPAA (¡nuestro diferenciador!)
- Flujos de trabajo de ejemplo - Archivos JSON de flujos de trabajo de n8n importables
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
| Herramienta | Descripción | Parámetros requeridos |
|---|---|---|
trigger_workflow | Activa un flujo de trabajo de n8n por nombre con carga útil JSON | workflowName, payload |
list_workflows | Lista todos los flujos de trabajo activos de n8n | Ninguno |
get_workflow_status | Verifica el estado de ejecución por ID | executionId |
create_patient_task | Envía una tarea de paciente estructurada al flujo de trabajo | workflowName, 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
- Nunca confirmes
.env- Usa siempre.env.examplepara plantillas - Rota las claves API - Actualiza regularmente tus claves API de n8n
- Usa secretos de webhook - Añade autenticación a los disparadores de webhook
- Restringe el acceso a la API - Usa los permisos de clave API de n8n
- 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_KEYsea correcto - Comprueba que
N8N_BASE_URLincluya 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_SECRETsi es necesario
Contribuciones
¡Las contribuciones son bienvenidas! Por favor:
- Haz un fork del repositorio
- Crea una rama de características (
git checkout -b feature/amazing-feature) - Confirma tus cambios (
git commit -m 'Add amazing feature') - Haz push a la rama (
git push origin feature/amazing-feature) - Abre un Pull Request
Licencia
Licencia MIT: consulta el archivo LICENSE para más detalles.
Agradecimientos
- Construido con Model Context Protocol SDK
- Impulsado por n8n workflow automation
- Validación de tipos por Zod
Soporte
- 🐛 Problemas: GitHub Issues
- 💬 Discusiones: GitHub Discussions
- 📖 Documentación: Referencia completa de la API
Construido con el Model Context Protocol