--- name: infra-check description: Health check de MCPs e auditoria de despesas — sábado check completo 9 MCPs + auditoria despesas, domingo check resumido top 5 + despesas sem PDF. context: fork --- # /infra-check v1.0 MCP Health Check + Auditoria de Despesas. --- ## MCPs por Prioridade **P1 - Criticos (bloqueiam trabalho):** - desk-crm-v3 (CRM) - filesystem (ficheiros locais) - mcp-time (data/hora) **P2 - Importantes (degradam workflow):** - google-workspace (email/calendar) - ssh-unified (servidores) - memory-supabase (memoria) **P3 - Uteis:** - gitea (repos) - moloni (facturacao) - dify-kb (knowledge base) --- ## Protocolo Sabado (Completo) ### 1. MCP Health Check (9 MCPs) ``` Para cada MCP, executar teste simples: | MCP | Teste | Timeout | |-----|-------|---------| | desk-crm-v3 | get_tickets(limit=1) | 5s | | filesystem | list_directory(~) | 2s | | mcp-time | current_time | 2s | | google-workspace | calendar_get_events(hoje) | 5s | | ssh-unified | ssh_list_servers | 3s | | memory-supabase | search_memories("test") | 5s | | gitea | list_my_repos | 5s | | moloni | getall (companies) | 5s | | dify-kb | list_datasets | 5s | Resultado por MCP: - OK - respondeu em <2s - LENTO - respondeu em >2s - FALHA - timeout ou erro ``` ### 2. Auditoria Despesas Completa ``` 2a. DESPESAS SEM PDF (ultimos 60 dias): mcp__ssh-unified__ssh_execute(server="desk", command=" mysql -u ealmeida -p'9qPRdCGGqM4o' ealmeida_desk24 -e \" SELECT e.id, e.expense_name, e.amount, e.date, e.note, (SELECT COUNT(*) FROM tblfiles f WHERE f.rel_id = e.id AND f.rel_type = 'expense') as pdfs FROM tblexpenses e WHERE e.id >= 770 AND e.date >= DATE_SUB(CURDATE(), INTERVAL 60 DAY) HAVING pdfs = 0 ORDER BY e.date DESC; \" ") Excluir: AT (cat 15), Salarios (cat 22), SS (cat 25) - nao tem recibo 2b. DESPESAS SEM CATEGORIA: WHERE id >= 770 AND (category = 0 OR category IS NULL) 2c. VALORES ANOMALOS (>500 EUR ou negativos): WHERE id >= 770 AND (amount > 500 OR amount < 0) 2d. RECONCILIACAO MENSAL (apenas 1o sabado do mes, DAY(CURDATE()) <= 7): - Contar despesas do mes anterior por categoria - Comparar com mes homologo - Alertar se variacao >30% 2e. FORNECEDORES RECORRENTES em falta: Verificar se fornecedores mensais tem despesa este mes: Anthropic, Cursor, Hetzner, Google One, ElasticEmail, Canva Alertar se falta apos dia 10 do mes ``` ### 3. Verificar Gateway ``` WebFetch("https://gateway.descomplicar.pt/health") Se falha → alerta critico (todos os MCPs gateway afectados) ``` --- ## Protocolo Domingo (Resumido) ### 1. MCP Health Check (top 5) ``` Apenas P1 + P2: - desk-crm-v3, filesystem, mcp-time, google-workspace, ssh-unified Teste rapido, timeout 5s Apenas verificar se responde ``` ### 2. Despesas sem PDF (30 dias) ``` Mesma query do sabado mas INTERVAL 30 DAY SE >3 sem PDF (excl. AT/Salario/SS) → alertar SE 0 → "Todas as despesas recentes tem documento" ``` --- ## Output ```markdown ## MCP Health Check ([Sabado/Domingo]) [status] X/Y MCPs operacionais [alertas por MCP com problema] ## Auditoria Despesas ([Sabado/Domingo]) ### Despesas sem documento (N) [se sabado] | # | Fornecedor | Valor | Data | Accao | ### Fornecedores recorrentes [se sabado] - [Fornecedor]: OK ou FALTA ### Resumo mensal [se 1o sabado] - Total [Mes]: X EUR (Y despesas) - vs [Mes anterior]: +/-Z% [ou versao resumida se domingo] ``` --- ## Troubleshooting Automatico ``` Se MCP falha: 1. Verificar gateway: WebFetch("https://gateway.descomplicar.pt/health") 2. Se gateway OK mas MCP falha → problema no MCP especifico → documentar 3. Se gateway falha → problema de rede/servidor mcp-hub → alerta critico ``` --- ## Anti-Patterns - NUNCA executar health check em dias uteis (reservado para Sab/Dom via /today) - NUNCA ignorar falha de MCP P1 (critico) - SEMPRE incluir accao sugerida para cada problema encontrado --- *Skill v1.0.0 | 04-03-2026 | Descomplicar®*