CT2 MCP Server
Centralizes multi-agent team workflows, providing Kanban, audit timeline, scorecards, and event hooks, integrated natively with Hermes Dashboard via the Model Context Protocol.
README
CT2 — Control Tower para Equipes Hermes Agent
Servidor API REST que centraliza o workflow de equipes multi-agente. Funciona como plugin nativo do Hermes Dashboard, substituindo planilhas e arquivos soltos por um sistema integrado de projetos, tasks, auditorias e scorecards.
O que o CT2 faz
| Funcionalidade | Descrição |
|---|---|
| 📋 Tasks Detalhadas | Tasks agrupadas por dia com colunas: #, Título, Status, Agente, Motor, Exec (✅/⬜), Audit (👁/⬜), Commit, Conclusão |
| 📄 Página de Detalhe | Ao clicar em qualquer task, abre página HTML com markdown completo + metadados + auditorias |
| 🔍 Auditorias nas Tasks | Cada task mostra suas auditorias na própria página de detalhe (seção 🔍 Auditorias). Aba de Auditorias removida — tudo fica na task |
| 📊 Scorecards | Métricas por agente: first-pass rate, rework, scope creep, taxa de aprovação |
| 🏢 Multi-projeto | Suporte a múltiplos projetos simultâneos (oeste-gestao, control-tower-v2, agent-ops-workflow) |
| 🔄 Scanner | Lê PLANO.md + task_XX.md do planejamento diário → SQLite |
| 📡 Event Hooks | Recebe on_session_start / on_session_end dos gateways |
| 🌐 GitHub Webhooks | Sincroniza commits com tasks |
| 📡 API REST | CRUD completo de projetos, tasks, auditorias, scorecards |
Pré-requisitos
- Python 3.11+
- Hermes Agent instalado
- Hermes Dashboard rodando na porta 9119
- Git
Instalação — Passo a Passo
1. Clonar o repositório
git clone https://github.com/rafael-fae/hermes-ct2.git ~/Dev/hermes-ct2
cd ~/Dev/hermes-ct2
2. Instalar dependências
uv sync
# ou: pip install -e .
3. Iniciar o servidor CT2
python3 ct2.py serve --port 7890
# Via PM2 (produção)
pm2 start "python3 ct2.py serve --port 7890" --name ct2-server --cwd ~/Dev/hermes-ct2
pm2 save
Verificar: curl http://localhost:7890/api/health → {"status":"ok"}
4. Plugin do Dashboard
O plugin CT2 já vem integrado no Hermes Agent (plugins/ct2/dashboard/). Não requer instalação adicional. Basta o servidor CT2 estar rodando na porta 7890.
Arquivos do plugin:
dashboard/manifest.json— registro do plugin no Dashboarddashboard/plugin_api.py— proxy FastAPI das rotas do CT2 (/api/plugins/ct2/*)dashboard/dist/index.js— frontend React (tasks, projetos, scorecards)dashboard/dist/style.css— tema escuro (DS Teal)
5. Reiniciar o Dashboard
pm2 restart hermes-dashboard
Funcionalidades
📋 Tasks — Visão Detalhada por Dia
A aba Tasks mostra todas as tasks agrupadas por dia (expansível), com colunas detalhadas:
| Coluna | Descrição |
|---|---|
| # | Número da task (ex: 103) |
| Título | Descrição da task (truncado em 55 chars) |
| Status | Todo / Done / Blocked |
| Agente | Quem executou |
| Motor | Modelo LLM utilizado |
| Exec | ✅ (executada) / ⬜ (pendente) |
| Audit | 👁 (auditada) / ⬜ (pendente) |
| Commit | Hash do commit (7 chars) |
| Conclusão | Data formatada: DD-MM-AAAA - HH:MM |
Ordenação: tasks em ordem decrescente por número (mais recentes primeiro).
📄 Página de Detalhe da Task
Ao clicar em qualquer task, abre uma página HTML completa contendo:
- Metadados: Status, Agente, Motor, Data de conclusão, Sprint, Commit
- 📄 Markdown: Conteúdo completo do arquivo
task_XX.mdcom formatação preservada - 🔍 Auditorias: Lista de todas as auditorias registradas para aquela task (veredito, hash, ressalvas, observações)
URL: /tasks/<projeto>/<task_number> (ex: /tasks/oeste-gestao/102)
Proxy via Dashboard: /api/plugins/ct2/tasks/<projeto>/<task_number>
🔍 Auditorias nas Tasks
As auditorias ficam na própria página de detalhe da task — não há aba separada de Auditorias.
Regras para preenchimento correto:
- Toda task executada (
status_execucao=✅) DEVE ter uma auditoria - Auditor Dalinar audita código + preenche
task_XX.md+ registra no banco CT2 status_auditoriavira👁automaticamente ao registrar auditoria- Hash da auditoria (
audit_hash) é gerado a partir dos dados da task + veredito
📊 Scorecards
Métricas por agente: total de tasks, first-pass rate, rework, scope creep, taxa de aprovação.
Endpoint: GET /api/scorecards?days=30&agent=Jasnah
🔄 Scanner
python3 ct2.py scan # Todos os projetos
python3 ct2.py scan --project <slug> # Projeto específico
API REST
GET /api/projects # Listar projetos
GET /api/projects/<slug>/tasks?status=done # Tasks do projeto (filtro por status)
GET /api/projects/<slug>/tasks?limit=200 # Tasks com limite
GET /api/projects/<slug>/sprints # Sprints
GET /api/projects/<slug>/auditorias # Auditorias (JSON)
GET /api/projects/<slug>/<id>/tasks/md # Conteúdo markdown da task (JSON)
GET /api/scorecards?days=30 # Scorecards
GET /api/health # Health check
# Páginas HTML
GET /tasks/<slug>/<task_number> # Página de detalhe da task
GET /auditorias/<id> # Página de detalhe da auditoria
Comandos CLI
ct2.py scan # Scan de projetos
ct2.py serve --port 7890 # Servidor API
ct2.py project list # Listar projetos
ct2.py task start <proj> <id> # Iniciar task
ct2.py task done <proj> <id> --hash <sha> # Concluir task
ct2.py task audit <proj> <id> --veredito <aprovado|rejeitado> # Auditar
ct2.py briefing <proj> # Briefing do projeto
Formato de Data
Todas as datas de conclusão seguem o padrão DD-MM-AAAA - HH:MM (minutos sempre com 2 dígitos, zero-padded).
Exemplos: 25-06-2026 - 14:05, 17-06-2026 - 08:30
Troubleshooting
Tasks sem conteúdo ao clicar:
- Arquivo
.mdnão existe na pastaplanejamento-diario/<data>/ - Criar o arquivo ou rodar
ct2.py scanpara detectar
Auditorias não aparecem nas tasks:
- Rodar auditoria:
ct2.py task audit <proj> <id> --veredito aprovado --hash <sha> - Ou registrar manualmente no banco via SQLite
Dashboard não carrega:
- CT2 server rodando?
curl localhost:7890/api/health - Dashboard reiniciado?
pm2 restart hermes-dashboard - F5/Ctrl+Shift+R no browser para limpar cache
Licença
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.