Skip to content

MCP Integration

nbsjunior edited this page Aug 11, 2026 · 2 revisions

Briefing para CTO / líder técnico: comece por Posicionamento-e-metricas e o Home. Guia passo a passo: Conectar-MCP-CodeHero.

MCP Integration (hero-mcp)

O packages/mcp expõe o CodeHero como um servidor MCP (Model Context Protocol), permitindo que o Claude (ou qualquer cliente MCP) consulte issues e aplique correções através de um loop verificável.

Configuração no Claude Desktop

Edite claude_desktop_config.json:

{
  "mcpServers": {
    "codehero": {
      "command": "node",
      "args": ["<caminho-do-repo>/packages/mcp/dist/server.js"],
      "env": {
        "HERO_CORE_URL": "https://us-central1-apponti.cloudfunctions.net",
        "HERO_TOKEN": "chp_...",
        "HERO_ORG_ID": "...",
        "HERO_PROJECT_ID": "...",
        "HERO_SCANNER_CMD": "hero-scan"
      }
    }
  }
}

Compile o servidor antes: npm run build -w @codehero/mcp.

Ferramentas (tools) expostas

Tool O que faz
get_issues Lista issues abertas do projeto (filtro por severidade, newCodeOnly)
get_sdd_spec Gera o SDD Spec (contrato de correção verificável) para uma issue pelo fingerprint
run_scan Roda o hero-scanner localmente num caminho e retorna o SARIF — usado para verificar os acceptanceCriteria depois de aplicar um fix
submit_fix_result Reporta se um fix aplicado foi applied/rejected/failed — alimenta a métrica de sucesso do template SDD

O loop de correção verificável

  1. get_issues(severity=CRITICAL) → agente escolhe uma issue.
  2. get_sdd_spec(fingerprint) → recebe o contrato: localização exata, contexto, estratégia de correção, acceptanceCriteria.
  3. Agente gera um unified_diff e aplica no working tree.
  4. run_scan(path) → re-executa o scanner determinístico.
  5. Agente verifica objetivamente se AC1 (a issue não aparece mais) e AC2 (nenhuma nova issue BLOCKER/CRITICAL) passam.
  6. submit_fix_result(status) → fecha o loop e alimenta telemetria.

Isso é o que diferencia o CodeHero de "pedir para o LLM sugerir um fix": o próprio motor determinístico confirma o resultado, não o julgamento do agente.

Ver também Ruleforge Guide para como esse feedback eventualmente vira melhoria de regra.

Clone this wiki locally