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.
🏥 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
- [Estudos de Caso][(./case-studies/README.md)] - 5 exemplos de implementação no mundo real com métricas de ROI
- HEALTHCARE.md - Guia abrangente de conformidade com HIPAA (nosso diferencial!)
- Fluxos de Trabalho de Exemplo - Arquivos JSON de fluxos de trabalho n8n importáveis
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
| Ferramenta | Descrição | Parâmetros Obrigatórios |
|---|---|---|
trigger_workflow | Aciona um fluxo de trabalho n8n pelo nome com payload JSON | workflowName, payload |
list_workflows | Lista todos os fluxos de trabalho ativos do n8n | Nenhum |
get_workflow_status | Verifica o status de execução por ID | executionId |
create_patient_task | Envia tarefa estruturada de paciente para o fluxo de trabalho | workflowName, 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
- Nunca faça commit de
.env- Sempre use.env.examplepara modelos - Rotacione as chaves de API - Atualize regularmente suas chaves de API n8n
- Use segredos de webhook - Adicione autenticação aos gatilhos de webhook
- Restrinja o acesso à API - Use as permissões de chave de API do n8n
- 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_KEYestá correto - Confirme se
N8N_BASE_URLinclui 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_SECRETse necessário
Contribuindo
Contribuições são bem-vindas! Por favor:
- Faça um fork do repositório
- Crie um branch de funcionalidade (
git checkout -b feature/amazing-feature) - Faça commit das suas alterações (
git commit -m 'Add amazing feature') - Envie para o branch (
git push origin feature/amazing-feature) - Abra um Pull Request
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.
Agradecimentos
- Construído com Model Context Protocol SDK
- Alimentado por automação de fluxos de trabalho n8n
- Validação de tipos por Zod
Suporte
- 🐛 Problemas: GitHub Issues
- 💬 Discussões: GitHub Discussions
- 📖 Documentação: Referência Completa da API
Construído com o Model Context Protocol