Careflow-MCP

Automação de fluxos de trabalho de saúde pronta para produção, alimentada por n8n e o Model Context Protocol. Permite que Claude e outros assistentes de IA acionem fluxos de trabalho de gerenciamento de tarefas de pacientes em conformidade com a HIPAA por meio de linguagem natural.

Documentação

CareFlow MCP 🏥

Automação de fluxos de trabalho de saúde pronta para produção, alimentada por n8n e o Model Context Protocol. Permite que Claude e outros assistentes de IA acionem fluxos de trabalho de gerenciamento de tarefas de pacientes em conformidade com HIPAA por meio de linguagem natural.

NPM Version TypeScript MCP SDK License: MIT mcp.so

🏥 Pronto para Saúde: Inclui documentação abrangente de conformidade com HIPAA e fluxos de trabalho de gerenciamento de tarefas de pacientes.

Recursos

  • 🚀 Acionar Fluxos de Trabalho - Execute fluxos de trabalho n8n via webhook com payloads personalizados
  • 📋 Listar Fluxos de Trabalho - Consulte todos os fluxos de trabalho ativos da sua instância n8n
  • 📊 Verificar Status - Monitore o status de execução dos fluxos de trabalho em tempo real
  • 🏥 Pronto para Saúde - Suporte integrado para fluxos de trabalho de tarefas de pacientes
  • 🔒 Type-Safe - Suporte completo a TypeScript com validação Zod
  • Pronto para Produção - Tratamento de erros e registro de logs abrangentes
  • 🛠️ Padrão MCP - Compatível com Claude Desktop e outros clientes MCP

📚 Documentação e Exemplos

Início Rápido com Exemplos

# 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"

Ferramentas Expostas

FerramentaDescriçãoParâmetros Obrigatórios
trigger_workflowAciona um fluxo de trabalho n8n pelo nome com payload JSONworkflowName, payload
list_workflowsLista todos os fluxos de trabalho ativos do n8nNenhum
get_workflow_statusVerifica o status de execução por IDexecutionId
create_patient_taskEnvia tarefa estruturada de paciente para o fluxo de trabalhoworkflowName, patientId, taskType

Pré-requisitos

  • Node.js >= 18.0.0
  • Instância n8n (nuvem ou auto-hospedada) com acesso à API
  • Chave de API n8n (gere em n8n Configurações > API)

Instalação

Opção 1: Via Smithery (Mais Fácil)

Instale diretamente do mcp.so usando Smithery:

npx @smithery/cli install careflow-mcp

Isso irá automaticamente:

  • Instalar o pacote
  • Adicionar à configuração do seu Claude Desktop
  • Solicitar as variáveis de ambiente necessárias

Opção 2: Instalação via NPM

npm install -g careflow-mcp

Opção 3: A partir do Código-Fonte

# 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

Configuração

1. Criar Arquivo de Ambiente

cp .env.example .env

2. Configurar Variáveis de Ambiente

Edite .env com suas credenciais 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

Adicione ao seu 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 instalação global via npm:

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

Exemplos de Uso

1. Acionar um Fluxo de Trabalho

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

2. Listar Todos os Fluxos de Trabalho Ativos

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

3. Verificar o Status de Execução do Fluxo de Trabalho

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

4. Criar uma Tarefa de Paciente

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

Desenvolvimento

Build

npm run build

Modo de Observação

npm run watch

Executar Localmente

npm run dev

Limpar Artefatos de Build

npm run clean

Estrutura do Projeto

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

Referência da API

trigger_workflow

Aciona um fluxo de trabalho n8n pelo nome com payload JSON opcional.

Entrada:

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

Saída:

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

list_workflows

Lista todos os fluxos de trabalho ativos da instância n8n.

Entrada: Nenhuma

Saída:

{
  "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 o status de execução de uma execução de fluxo de trabalho.

Entrada:

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

Saída:

{
  "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

Envia uma tarefa estruturada de paciente para um fluxo de trabalho 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;
}

Saída:

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

Tratamento de Erros

O servidor implementa tratamento de erros abrangente com códigos de erro MCP adequados:

  • Parâmetros Inválidos - ErrorCode.InvalidParams
  • Método Não Encontrado - ErrorCode.MethodNotFound
  • Erro Interno - ErrorCode.InternalError

Todos os erros incluem mensagens descritivas para depuração.

Melhores Práticas de Segurança

  1. Nunca faça commit de .env - Sempre use .env.example para modelos
  2. Rotacione as chaves de API - Atualize regularmente suas chaves de API n8n
  3. Use segredos de webhook - Adicione autenticação aos gatilhos de webhook
  4. Restrinja o acesso à API - Use as permissões de chave de API do n8n
  5. Monitore os logs - Verifique os logs do servidor para atividades suspeitas

Solução de Problemas

O servidor não inicia

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

# Verify environment variables
cat .env

# Check TypeScript compilation
npm run build

Fluxo de trabalho não encontrado

  • Verifique se o nome do fluxo de trabalho corresponde exatamente (sensível a maiúsculas/minúsculas)
  • Garanta que o fluxo de trabalho esteja ativo no n8n
  • Verifique se a chave de API tem permissão para acessar fluxos de trabalho

Falha na autenticação

  • Verifique se N8N_API_KEY está correto
  • Confirme se N8N_BASE_URL inclui o protocolo (https://)
  • Garanta que a chave de API não expirou

O gatilho de webhook falha

  • Verifique se o nó de webhook existe no fluxo de trabalho
  • Confirme se o caminho do webhook corresponde ao ID do fluxo de trabalho
  • Valide N8N_WEBHOOK_SECRET se necessário

Contribuindo

Contribuições são bem-vindas! Por favor:

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add amazing feature')
  4. Envie para o branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

Licença

Licença MIT - consulte o arquivo LICENSE para detalhes.

Agradecimentos

Suporte


Construído com o Model Context Protocol