protect-mcp-setup
Ajuda seu agente a configurar a segurança e a criar registros assinados para chamadas de ferramentas. É útil para projetos que precisam de auditoria criptográfica ou controle de acesso.
O que ela faz
Esta ferramenta garante que as ações de um agente de IA sejam seguras e verificáveis. Ela verifica se cada comando que o agente tenta executar segue regras pré-definidas e cria um registro assinado de tudo o que aconteceu.
Quando usar
- ✓Ao configurar um projeto que precisa de segurança extra.
- ✓Quando é importante ter provas de que as ações do agente foram aprovadas.
- ✓Para garantir que o agente não execute comandos perigosos.
Exemplo do que pedir para a IA
“Configure a segurança e os registros para as ferramentas do Claude Code.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Antes de cada comando, um sistema verifica se ele é permitido por regras. Depois que o comando é executado, um registro assinado é criado com as informações do comando.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add wshobson/agents --skill protect-mcp-setupOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/protect-mcp/skills/protect-mcp-setup/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
protect-mcp — Aplicação de Políticas + Recibos Assinados
Governança criptográfica para cada chamada de ferramenta do Claude Code. Cada invocação é avaliada contra uma política Cedar e produz um recibo assinado por Ed25519 que qualquer um pode verificar offline.
Visão Geral
O Claude Code executa ferramentas poderosas: Bash, Edit, Write, WebFetch. Por padrão,
não há trilha de auditoria, nenhuma aplicação de política e nenhuma maneira de provar o que foi
decidido após o fato. protect-mcp fecha todas as três lacunas:
- Políticas Cedar (o motor de autorização aberto da AWS) avaliam cada chamada de ferramenta antes da execução. A negação Cedar é autoritativa.
- Recibos Ed25519 registram o nome de cada ferramenta que foi executada, assinada com sua chave.
- Verificação offline via
npx @veritasacta/verify. Sem servidor, sem conta, sem confiança no operador.
Problema
Agentes de IA tomam decisões que afetam dinheiro, segurança e direitos. O log da sessão do Claude Code registra o que aconteceu, mas o log é:
- Mutável — qualquer pessoa com acesso pode editá-lo
- Não assinado — não há como provar a integridade
- Vinculado ao operador — a verificação requer confiança em quem detém o log
Para contextos de conformidade (finanças, saúde, pesquisa regulamentada), isso não é suficiente. Você precisa de evidências à prova de adulteração que possam ser verificadas por terceiros sem confiar em você.
Solução
Adicione protect-mcp ao seu projeto Claude Code:
# 1. Install the plugin (adds hooks + skill to your project)
claude plugin install wshobson/agents/protect-mcp
# 2. Create ./protect.cedar (see below). The plugin installs the hooks.
# 3. Create the signing key once (protect-mcp 0.7.4 sign does not create it).
# An existing key is never replaced. See references/receipt-format.md to rotate.
if [ ! -e ./protect-mcp.key ]; then
d=$(mktemp -d) && npx protect-mcp@0.7.4 init --dir "$d" && mv "$d/keys/gateway.json" ./protect-mcp.key
fi
echo "/protect-mcp.key" >> .gitignore
# 4. Use Claude Code normally. Every tool call is now policy-evaluated
# and produces a signed receipt in ./receipts/
Configuração de Hooks
A instalação do plugin adiciona ambos os hooks de hooks/hooks.json. Cada hook executa um
script empacotado com o plugin:
{
"hooks": {
"PreToolUse": [
{
"matcher": ".*",
"hooks": [
{ "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/hooks/evaluate.sh" }
]
}
],
"PostToolUse": [
{
"matcher": ".*",
"hooks": [
{ "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/hooks/sign.sh" }
]
}
]
}
}
O Claude Code passa o evento do hook para o comando como JSON via stdin e não define
variáveis TOOL_NAME ou TOOL_INPUT. evaluate.sh lê tool_name e
tool_input dessa carga útil e os passa para protect-mcp como flags; sign.sh lê
tool_name apenas, porque o signer 0.7.4 não registra mais nada. Defina
PROTECT_MCP_POLICY, PROTECT_MCP_RECEIPTS e PROTECT_MCP_KEY para alterar os
caminhos padrão. Quando o arquivo de política está ausente, o hook PreToolUse imprime um
aviso no stderr e permite a chamada.
O que cada hook faz
PreToolUse — Executa ANTES da ferramenta ser executada. Avalia a chamada da ferramenta contra
seu arquivo de política Cedar. Se o Cedar retornar deny, o hook sai com o código 2 e
o Claude Code bloqueia totalmente a chamada da ferramenta.
PostToolUse executa APÓS a ferramenta ser concluída. Ele assina um recibo que nomeia
a ferramenta e o anexa a ./receipts/receipts.jsonl. O protect-mcp 0.7.4 não
registra a entrada ou saída da ferramenta.
Arquivo de Política Cedar
Crie ./protect.cedar na raiz do projeto:
// Ferramentas somente leitura: uma regra pode nomear várias ferramentas em `when`. Adicione WebFetch
// com sua própria regra de URL.
permit (principal, action == Action::"MCP::Tool::call", resource) when {
resource == Tool::"Read" || resource == Tool::"Glob" || resource == Tool::"Grep"
};
// Somente comandos seguros; git limitado a subcomandos de leitura
permit (principal, action == Action::"MCP::Tool::call", resource == Tool::"Bash") when {
context has input && context.input has command &&
(context.input.command like "git status*" || context.input.command like "git diff*" ||
context.input.command like "git log*" || context.input.command like "git show*" ||
context.input.command like "npm*" || context.input.command like "ls*" ||
context.input.command like "cat*" || context.input.command like "echo*" ||
context.input.command like "pwd*" || context.input.command like "test*")
};
…
Perguntas frequentes
O que são 'Cedar policies'?
São um conjunto de regras que definem o que o agente de IA pode ou não fazer com as ferramentas.
O que são 'Ed25519 receipts'?
São como recibos digitais assinados que provam quais comandos foram executados e que eles foram aprovados, sem que ninguém possa alterá-los depois.
Como eu verifico esses registros?
Você pode usar uma ferramenta chamada `npx @veritasacta/verify` para verificar os registros offline, sem precisar de internet ou confiar em um servidor.
Detalhes
Descrição original do autor
Configure Cedar policy enforcement and Ed25519 signed receipts for Claude Code tool calls. Use when setting up projects that need cryptographic audit trails, policy-gated tool execution, or compliance-ready evidence of agent actions.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4921
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC