O snapshot original (26/05) era aspiracional e dava como prontos arquivos que git log --all confirmou nunca terem existido: src/InputValidation.php, src/ProjectTaskTools.php e as tools glpi_projecttask_*. Tabelas de estado, métricas e seção de versão corrigidas para refletir o disco. Itens não implementados rebaixados de 'feito' para 'planejado'. Documentados os commits que realmente entraram (bi_stats, fix range, schema plan_*_date). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7.1 KiB
| id | title | domain | tags | status | severity | created_at | updated_at | applies_to | related_records | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| KB-PLUGIN-026 | mcprotocol — Snapshot de roadmap v1.2 (pós-ProjectTask + InputValidation) | plugin-dev |
|
active | medium | 2026-05-26 | 2026-06-22 |
|
|
mcprotocol — Snapshot de roadmap v1.2 (pós-ProjectTask + InputValidation)
Contexto
Esta KB é um ponto de salvamento do estado do plugin mcprotocol. Serve de referência canônica para o estado atual e backlog priorizado.
⚠️ Reconciliação 2026-06-22. A versão original deste snapshot (26/05) era aspiracional: descrevia
src/InputValidation.php,src/ProjectTaskTools.phpe as toolsglpi_projecttask_get/createcomo "✅ NOVO / já no branch main do dev". A auditoria degit log --allconfirmou que esses arquivos nunca existiram no repositório — foram planejados mas não implementados. As tabelas abaixo foram corrigidas para refletir o estado real em disco (v1.1.1). Os itens não implementados permanecem como roadmap, agora marcados como📋 planejado.
Estado atual das tools
Tools de domínio (ORM direto)
| Tool | Status | Notas |
|---|---|---|
glpi_ticket_get |
✅ | Consolida followups |
glpi_ticket_bi_stats |
✅ | Agregador de BI por data/status/entidade + SLA estourado (commit e49d20d) |
glpi_ticket_create |
✅ | |
glpi_ticket_update |
✅ | |
glpi_ticket_add_followup |
✅ | |
glpi_ticket_add_solution |
✅ | |
glpi_project_get |
✅ | Retorna tarefas (via $DB direto, não hierárquico) |
glpi_project_create |
✅ | Tasks/subtasks aninhadas, estado por nome, plan_*_date (schema corrigido em 4ddd00b) |
glpi_project_update |
✅ | Apenas name/content/percent_done — NÃO estendido com datas/estado |
glpi_projecttask_get |
📋 planejado | Nunca implementado |
glpi_projecttask_create |
📋 planejado | Nunca implementado |
glpi_ticket_search_by_status |
✅ |
Tools genéricas (REST API v2)
| Tool | Status | Observação |
|---|---|---|
glpi_get_items |
⚠️ | Funcional, mas confiável só para itemtypes expostos na v2 |
glpi_get_item |
⚠️ | Idem |
glpi_add_item |
⚠️ | Idem |
glpi_update_item |
⚠️ | Idem |
glpi_delete_item |
❌ | Bug do "silent success" — ver KB-PLUGIN-024 |
Infraestrutura
| Componente | Status |
|---|---|
src/Server.php |
✅ Funcional. Pendente: validar HTTP status em makeRequest (KB-024 Correção #1) |
src/ToolRegistry.php |
✅ Registra Ticket + Project apenas (não ProjectTask) |
src/InputValidation.php |
❌ Não existe — planejado em KB-PLUGIN-023, nunca implementado |
src/TicketTools.php |
✅ Padrão antigo de validação inline (sem camada compartilhada) |
src/ProjectTools.php |
✅ Validação inline; suporta plan_*_date e estado por nome |
src/ProjectTaskTools.php |
❌ Não existe — planejado, nunca implementado |
src/Boot.php |
✅ Registra path stateless via SessionManager |
ajax/mcp.php |
✅ Endpoint stateless com JWT (RS256 / oauth.pub) |
Casos reais executados
| Cliente | Projeto | Tarefas | Resultado |
|---|---|---|---|
| VALGROUP | Implantação GLPI | 7 macros + 21 subs (hierarquia) | ✅ Criado end-to-end via plugin |
| TCERJ | Implantação GLPI | 6 tarefas (datas replanejadas) | ✅ Criado end-to-end via plugin |
Ambos comprovam o padrão de tools nativo funcionando em fluxo real de comercial → projeto operacional.
Bugs conhecidos
| ID | Severidade | Resumo |
|---|---|---|
| KB-PLUGIN-024 | Alta | glpi_delete_item retorna sucesso silencioso quando API retorna 404 |
| KB-PLUGIN-024 | Média | ProjectTask não exposto na REST v2 do GLPI (precisa tool de domínio) |
| KB-PLUGIN-025 | Baixa | Datas sem hora explícita podem desalinhar em UI de usuários com TZ regional |
Roadmap priorizado
Próxima rodada (P1)
-
Correção #1 do KB-024 —
makeRequestdeve validar HTTP status e propagar 4xx/5xx como exception. Afeta todas as tools genéricas REST. Impacto alto, esforço baixo. -
glpi_projecttask_delete— Correção #2 do KB-024. Tool de domínio bypassa REST API, usa ORM direto. -
glpi_projecttask_update— completar o CRUD de tarefas. Necessário para casos como "atualizar percent_done", "remarcar datas". -
glpi_project_get_open_tasks— Tool semântica para casos de uso N1/PM. Filtra tarefas compercent_done < 100eprojectstates_id != Closed.
Médio prazo (P2)
-
Migrar
TicketToolsparaInputValidation— eliminar dívida técnica, padronizar erros, ergonomia de nomes vs IDs em campos comousers_id_recipient,itilcategories_id. -
Tools do roadmap original (KB-020) ainda pendentes:
glpi_ticket_get_pending_approvalsglpi_ticket_assign_to_meglpi_ticket_add_private_noteglpi_computer_get_unassignedglpi_user_get_my_assets
-
TZ contextual em
normalizeDate— Correção média do KB-025, expande data sem hora no TZ do GLPI/usuário.
Longo prazo (P3 — visão estratégica)
- Resources MCP (KB-PLUGIN-021) — habilitar caso de uso "LLM como N1":
kb://{id}— artigos da KB do GLPIticket://{id}— ticket completo com followups/solutionsdocument://{id}— anexoscomputer://{id}— CI técnico
- SSE / Streamable HTTP completo — notificações push (novo ticket, SLA estourando)
- OAuth2 com escopos finos — separar permissões por escopo de tool
Métricas atuais (reconciliadas em 2026-06-22)
- Tools registradas: 15 (9 domínio + 6 genéricas)
- Domínio: 6 de Ticket (
get,bi_stats,create,update,add_followup,add_solution) + 3 de Project (get,create,update) - Genéricas:
get_items,get_item,add_item,update_item,delete_item,ticket_search_by_status
- Domínio: 6 de Ticket (
- Arquivos em
src/:Boot,Server,ToolRegistry,TicketTools,ProjectTools(5) - Casos reais validados: 2 projetos, 34 tarefas (VALGROUP, TCERJ)
- Bugs ativos: 3 (1 alta, 1 média, 1 baixa)
- Versão atual do plugin: 1.1.1
O que realmente entrou desde o snapshot original
Reconciliação 2026-06-22 (commits no repo dev forgejo):
dfe2f77—.gitignoreignora AppleDouble (._*) do macOS12d209c— fix:glpi_get_itemsusarangeem vez delimit+orderem maiúsculase49d20d— feat: tool de domínioglpi_ticket_bi_stats4ddd00b— fix:plan_start_date/plan_end_datedeclarados noinputSchemado ProjectTools
Roadmap NÃO implementado (rebaixado de "feito" para "planejado")
Itens que o snapshot original dava como prontos, mas que nunca existiram:
src/InputValidation.php— camada de validação compartilhada (KB-PLUGIN-023)src/ProjectTaskTools.php—glpi_projecttask_get/glpi_projecttask_createglpi_project_updateestendido com datas/estadoServer.php::makeRequestvalidando HTTP status (Correção #1 do KB-024 — ainda aberto)glpi_projecttask_delete/glpi_projecttask_update