mcpcut

Proxy local na frente de qualquer servidor MCP: registra cada chamada de ferramenta com segredos ocultos, retém chamadas arriscadas para sua aprovação, coloca em quarentena ferramentas alteradas; o registro é à prova de adulteração com uma âncora externa.

Documentação

mcpcut

CI npm License: Apache-2.0

Veja cada chamada de ferramenta que seu agente de IA faz via MCP, segure as arriscadas para sua aprovação e mantenha um diário com segredos ocultos que é à prova de adulteração com uma âncora externa.

Auto-hospedado · Apache-2.0 · Node.js 24+ · duas dependências de runtime. Comece com um servidor no seu laptop; cresça até um plano de controle para muitos agentes.

mcpcut in 60 seconds

Início rápido

Requer Node.js 24+ (node -v); em Node mais antigo, o mcpcut imprime uma linha e sai — instale o Node 24 com nvm, fnm ou volta. Nada mais para instalar.

Veja. Coloque o mcpcut na frente de um servidor — aqui para Claude Code; em qualquer outro cliente, o comando do servidor se torna npx -y mcpcut@0.2.4 wrap -- <your server>:

claude mcp add fs -- npx -y mcpcut@0.2.4 wrap --server fs -- npx -y @modelcontextprotocol/server-filesystem ~/project

O primeiro início baixa o mcpcut e o servidor; se seu cliente desistir, inicie mais uma vez. Deixe o agente trabalhar, depois npx -y mcpcut@0.2.4 sessions e npx -y mcpcut@0.2.4 show <id>: cada requisição e resposta, com segredos ocultos (com uma política, também cada decisão). --server fs nomeia o servidor nas decisões que uma política escreve no diário e na fila de aprovações.

Pare. Salve isso como policy.json — leituras passam, todo o resto espera por você (a quarentena de novas ferramentas está desligada, então o primeiro minuto mostra um portão: veja Quarentena) — e re-adicione o servidor com --policy "$PWD/policy.json" logo após wrap (claude mcp remove fs primeiro):

{ "version": 1, "defaultDecision": "require-approval", "classDefaults": { "read": "allow" },
  "quarantine": { "enabled": false } }

Uma escrita agora espera. Aprove-a de outro terminal dentro da espera do agente (60 s; depois disso, a nova tentativa do agente passa) — nenhum token é necessário até você adicionar seu primeiro administrador (Aprovações):

npx -y mcpcut@0.2.4 approvals list
npx -y mcpcut@0.2.4 approvals approve <id>

Prove. Assine o histórico, exporte-o e verifique-o offline — com nada além do diretório:

npx -y mcpcut@0.2.4 keygen && npx -y mcpcut@0.2.4 export --report --out ./report
npx -y mcpcut@0.2.4 verify --report ./report
npx -y mcpcut@0.2.4 verify --sign

A última linha assina o topo da cadeia: guarde o que ela imprime em algum lugar que este host não possa reescrever — a âncora fora de banda é o que torna o diário à prova de adulteração, não apenas os hashes.

Cresça. npm install -g mcpcut, depois mcpcut: um assistente de configuração, depois um registro de servidores, chaves e concessões por agente, um cofre de credenciais, uma interface web, um console de terminal e um endereço por agente (Instalação e primeira execução).

O que você obtém

  • Diário — cada requisição, resposta e decisão, com segredos ocultos antes de qualquer gravação. Opcionalmente, falha fechada: sem registro, sem chamada.
  • Política por ferramenta — allow, deny ou require-approval por servidor, nome de ferramenta ou classe de ferramenta; ferramentas somente leitura podem passar sozinhas.
  • Aprovações — uma chamada arriscada espera até que alguém a aprove pela CLI, interface web ou console de terminal.
  • Quarentena — uma nova ferramenta, ou uma cuja descrição ou esquema mudou depois que você a confiou, é retida até revisão, com um diff do que mudou.
  • Agentes e concessões — um registro de servidores, uma chave por agente, concessões por ferramenta, grupos e um cofre criptografado, para que credenciais de servidor nunca fiquem na configuração de um agente.
  • Um endereço por agente — cada servidor que um agente tem acesso atrás de um endpoint; conceda ou revogue sem tocar no cliente.
  • Evidência — uma cadeia de hashes com um topo assinado e um relatório de auditoria que qualquer um pode verificar offline com uma chave pública.
  • Interface de administração e console de terminal — administradores nomeados com papéis de owner, operator e viewer; cada mudança é atribuída no diário.

Como funciona

 AI agent ── stdio or HTTP ──▶ mcpcut ──────────────────▶ MCP servers
 (Claude Code,                 grants → policy →          (filesystem,
  Cursor, …)                   quarantine → approval       GitHub, …)
                                 │
                                 ▼
                     journal.db — redacted, hash-chained
                                 │  export --report
                                 ▼
                     verify offline, anywhere

Três formas de entrada, um portão:

  • wrap — na frente de um servidor, sem configuração e sem identidade: o Início rápido acima.
  • connect e serve — servidores nomeados do registro, uma chave por agente, credenciais do cofre.
  • O pool (/mcp) — um endereço por agente para cada servidor que ele tem acesso; connect --url faz a ponte de um cliente stdio em outra máquina para ele.

O quadro completo, com os limites de confiança: docs/ARCHITECTURE.md.

Documentação

GuiaAbrange
Instalação e primeira execuçãonpm ou fonte, o assistente de configuração, o primeiro proprietário, alcançar o serviço por IP
Envolvendo um servidor e lendo o diáriowrap, sessions, show, .mcp.json, registro com falha fechada, limites conhecidos
Políticas, aprovações e quarentenapolicy.json, classes de ferramentas, aprovações, quarentena, filtragem tools/list
Registro, agentes e o cofreservidores, chaves e concessões de agentes, grupos, revogação de acesso, o cofre
Agentes HTTP e o poolserve, um endereço por agente, connect --url
Interface de administraçãoo console web, administradores e papéis, seu modelo de ameaças
O console de terminalmcpcut em um terminal, o console remoto
Serviços, Docker e backupsstart/stop/status, systemd e launchd, Docker, backup e restauração
Relatórios de auditoria e retençãoexport --report, verify --report, a âncora fora de banda, prune
Referência da CLIcada comando e flag
Statuso que é entregue e a evidência por trás de cada linha

Status

O mcpcut é 0.x. O núcleo — proxy, política, aprovações, quarentena, diário, relatório de auditoria, interface de administração e console — é entregue e coberto por testes; Status lista cada capacidade com sua evidência.

  • Pré-visualização: o console remoto (mcpcut --remote) e a ponte connect --url. Eles funcionam e são testados contra um VPS via TLS, mas colocam um token na rede, tiveram apenas uma revisão de segurança interna e podem mudar dentro do 0.x.
  • À prova de adulteração significa com uma âncora externa. Um processo rodando como o mesmo usuário do SO pode reescrever o diário e re-assiná-lo; apenas um topo de cadeia registrado em algum lugar que este host não possa escrever expõe isso. O mcpcut não é à prova de adulteração, e se um relatório satisfaz uma auditoria é decisão do auditor.
  • Um freio para erros, não uma sandbox. Um agente que também tem um shell como seu usuário pode alcançar o mesmo approvals approve que você executa: um token de administrador registra quem aprovou, não impede o mesmo usuário do SO (Aprovações). O erro que uma chamada retida retorna diz ao agente que um humano deve aprovar e nunca nomeia o comando.

Segurança

Por favor, relate vulnerabilidades em privado — SECURITY.md diz como. Todo o produto teve uma auditoria de segurança interna em setembro de 2026; nenhuma auditoria independente foi feita ainda.

Contribuindo

Issues e pull requests são bem-vindos — veja CONTRIBUTING.md.

Licença

Apache-2.0 — veja NOTICE.