> ## Documentation Index
> Fetch the complete documentation index at: https://zeropath.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Claude Code

> Servidor MCP, Stop hook e orientação via CLAUDE.md para o Claude Code

O [instalador](/pt/developer-tools/coding-agents/overview#installation)
configura três coisas para o Claude Code. Todas elas também podem ser
configuradas manualmente conforme descrito abaixo.

<h2 id="what-the-installer-writes">
  O que o instalador grava
</h2>

| Arquivo                                  | O quê                                                                                                                                                    |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `~/.claude.json` → `mcpServers.zeropath` | Servidor MCP do ZeroPath (escopo de usuário, todos os projetos)                                                                                          |
| `~/.claude/settings.json` → `hooks.Stop` | Stop hook que escaneia o diff não commitado após cada turno                                                                                              |
| `~/.claude/CLAUDE.md`                    | Bloco de orientação gerenciado (entre os marcadores `<!-- BEGIN/END ZEROPATH AGENT INTEGRATION -->`) instruindo o Claude a escanear o código que escreve |

<h2 id="manual-mcp-setup">
  Configuração manual do MCP
</h2>

Equivalente ao que o instalador faz:

```bash theme={null}
claude mcp add --scope user zeropath \
  --env ZEROPATH_TOKEN_ID=your_token_id \
  --env ZEROPATH_TOKEN_SECRET=your_token_secret \
  -- uvx --from git+https://github.com/ZeroPathAI/zeropath-mcp-server zeropath-mcp-server
```

Opcionalmente, adicione `--env ZEROPATH_ORG_ID=...` (contas multiorganização)
e `--env ZEROPATH_BASE_URL=...` (self-hosted).

<h2 id="manual-hook-setup">
  Configuração manual do hook
</h2>

Em `~/.claude/settings.json`:

```json theme={null}
{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "/home/you/.zeropath/hooks/claude-stop-hook.sh",
            "timeout": 300
          }
        ]
      }
    ]
  }
}
```

O hook lê o payload do Stop hook via stdin, escaneia o diff não commitado do
workspace e responde usando o protocolo de hooks do Claude Code:

* **Modo de monitoramento (padrão):** emite uma `systemMessage` resumindo os
  achados; o Claude não é interrompido. Relatório completo em
  `~/.zeropath/logs/`.
* **Modo de bloqueio** (`ZEROPATH_BLOCKING_STOP_HOOKS=true` em
  `~/.zeropath/config.env`): emite `{"decision": "block", "reason": ...}` para
  achados no limiar de severidade ou acima dele. O Claude recebe os achados e
  as correções sugeridas como sua próxima instrução, remedia, e a nova
  varredura na próxima parada decide novamente. Os loops são limitados por um
  orçamento de bloqueios por sessão (padrão: 3).

<h2 id="behavior-notes">
  Notas de comportamento
</h2>

* O hook escaneia `git diff HEAD` (staged + unstaged). Arquivos novos não
  rastreados não estão nesse diff; o Claude é orientado (via `CLAUDE.md`) a
  escaneá-los por meio da ferramenta MCP `asyncCodeScans.submit` com
  `input.kind: "files"`.
* Um turno que não altera código reutiliza o veredito anterior (cache de hash
  do diff) — turnos conversacionais não pagam a latência da varredura.
* Falhas de varredura seguem a política de fail open com uma `systemMessage`
  visível, nunca um bloqueio.

<h2 id="verify">
  Verificar
</h2>

```text theme={null}
/mcp                 # expect: zeropath — connected
claude --debug       # shows "Stop hook" execution at end of turn
```

Depois, faça uma mudança de código em um repositório Git e encerre o turno; no
modo de monitoramento, você deve ver uma mensagem de sistema do ZeroPath se
houver achados, e um arquivo de log em `~/.zeropath/logs/` de qualquer forma.
