Pular para o conteúdo
vetkit

Docs · MCP

Servidor MCP do vetkit

Dê ao seu agente de programação um auditor de código. O servidor MCP do vetkit permite que o Claude Code — e qualquer outro cliente do Model Context Protocol — conecte repositórios, execute auditorias e leia achados e relatórios.

Instalar no Claude Code
claude mcp add vetkit -e VETKIT_API_KEY=vk_live_... -- npx -y @vetkit/mcp

Depois, peça ao seu agente algo como “Audite acme/payments-api e me diga o que corrigir primeiro.” Execute /mcp no Claude Code para confirmar que o vetkit está conectado.

Requisitos

  • Node.js 20.3 ou mais recente, com npx no seu PATH.
  • Uma conta vetkit com o GitHub App instalado nos repositórios que você quer auditar.
  • Uma chave de API do vetkit (próximo passo).

Crie uma chave de API

  1. Abra Configurações → Chaves de API no app vetkit. Apenas proprietários e administradores da organização podem gerenciar chaves.
  2. Dê à chave um nome que indique onde ela será usada, por exemplo “Claude Code — notebook”.
  3. Escolha os escopos. Para a funcionalidade completa do MCP, escolha repos:read, repos:write, audits:read, audits:write, findings:read e reports:read. Para um agente somente leitura, deixe de fora repos:write e audits:write.
  4. Opcionalmente, defina uma expiração e um limite de taxa por minuto (padrão 60, até 600).
  5. Copie o segredo. Ele tem o formato vk_live_… e é exibido uma única vez; o vetkit armazena apenas um hash.

Rotação e revogação

Rotacionar uma chave emite um novo segredo e mantém o antigo válido por 24 horas para que você possa fazer a transição. A revogação tem efeito imediato — a próxima requisição retorna 401 API_KEY_REVOKED.

Instalação

Claude Code

Terminal
claude mcp add vetkit -e VETKIT_API_KEY=vk_live_... -- npx -y @vetkit/mcp

Adicione --scope user para disponibilizar o vetkit em todos os projetos, e não apenas no atual.

Claude Desktop

Abra Configurações → Desenvolvedor → Editar configuração e adicione o vetkit ao claude_desktop_config.json; depois, reinicie o Claude Desktop:

claude_desktop_config.json
{  "mcpServers": {    "vetkit": {      "command": "npx",      "args": ["-y", "@vetkit/mcp"],      "env": { "VETKIT_API_KEY": "vk_live_..." }    }  }}

Cursor

Adicione o mesmo bloco a ~/.cursor/mcp.json (global) ou a .cursor/mcp.json em um projeto. Não faça commit de uma configuração de projeto que contenha sua chave.

~/.cursor/mcp.json
{  "mcpServers": {    "vetkit": {      "command": "npx",      "args": ["-y", "@vetkit/mcp"],      "env": { "VETKIT_API_KEY": "vk_live_..." }    }  }}

Outros clientes MCP

Qualquer cliente capaz de iniciar um servidor stdio funciona: execute npx -y @vetkit/mcp com VETKIT_API_KEY no ambiente. Você também pode instalar o pacote globalmente e executar o binário vetkit-mcp diretamente.

Instalação global
npm install -g @vetkit/mcpVETKIT_API_KEY=vk_live_... vetkit-mcp

Configuração

O servidor é configurado inteiramente por variáveis de ambiente.

VariávelObrigatóriaDescrição
VETKIT_API_KEYSimSua chave de API, vk_live_… ou vk_test_….
VETKIT_API_URLNãoURL base da API. Padrão: https://api.vetkit.dev. Deve usar HTTPS; HTTP simples só é aceito para localhost.
VETKIT_ORG_IDNãoId da organização. Cada chave de API pertence a exatamente uma organização, que é usada por padrão; por isso, você raramente vai precisar disto.
VETKIT_APP_URLNãoURL do app web usada nos links para auditorias. Padrão: https://app.vetkit.dev.

Ferramentas

Toda ferramenta retorna texto legível, e todas, exceto vetkit_get_report, também retornam conteúdo estruturado tipado. As ferramentas têm anotações MCP, para que os clientes possam aprovar automaticamente as que são somente leitura. Nenhuma das ferramentas exclui nada.

vetkit_list_repos

somente leitura

Lista os repositórios conectados à sua organização, com a nota e a pontuação da auditoria mais recente.

Escopos: repos:read

ArgumentoTipoDescrição
limitnumberTamanho da página, 1–100. Padrão 25.
cursorstringO valor de nextCursor da página anterior.
Argumentos de exemplo
{ "limit": 10 }

vetkit_connect_repo

faz alterações

Conecta um repositório do GitHub. Se o GitHub App do vetkit ainda não estiver instalado para o proprietário, retorna o resultado "installation_required" com uma URL de instalação para abrir no navegador.

Escopos: repos:write

ArgumentoTipoDescrição
urlobrigatóriostringURL do GitHub (https://github.com/owner/name) ou "owner/name".
Argumentos de exemplo
{ "url": "https://github.com/acme/payments-api" }

vetkit_run_audit

faz alterações

Inicia uma auditoria e, por padrão, aguarda sua conclusão enquanto envia notificações de progresso. Conecta o repositório antes, se necessário. Retorna a nota, a pontuação e as contagens de achados.

Escopos: repos:read, audits:write, audits:read (+ repos:write para conectar automaticamente)

ArgumentoTipoDescrição
repoobrigatóriostringId do repositório, "owner/name" ou uma URL do GitHub — incluindo /tree/<branch>.
refstringBranch, tag ou SHA de commit. O padrão é a ref da URL e, depois, a branch padrão.
waitbooleanAguardar um status final. Padrão true.
timeoutSecondsnumberEspera máxima, 10–1800. Padrão 600. A auditoria continua em execução depois que o tempo limite se esgota.
Argumentos de exemplo
{ "repo": "acme/payments-api", "ref": "main" }

vetkit_get_audit

somente leitura

Retorna o status, a nota, a pontuação, as contagens de achados e o progresso por analisador de uma auditoria.

Escopos: audits:read

ArgumentoTipoDescrição
auditIdobrigatóriouuidO id da auditoria retornado por vetkit_run_audit.
Argumentos de exemplo
{ "auditId": "0192f3a4-5b6c-7d8e-9f01-23456789abcd" }

vetkit_list_findings

somente leitura

Lista os achados de uma auditoria, dos mais graves para os menos graves. Retorna uma tabela compacta como texto e os detalhes completos — mensagem, trecho mascarado, correção, referências — como conteúdo estruturado.

Escopos: findings:read

ArgumentoTipoDescrição
auditIdobrigatóriouuidA auditoria a ser lida.
severitystring[]CRITICAL, HIGH, MEDIUM, LOW ou INFO.
categorystring[]SECURITY, SECRETS, DEPENDENCIES, QUALITY, HYGIENE ou AI_SIGNAL.
statusstringNEW (introduzido desde a auditoria anterior) ou EXISTING.
limitnumberTamanho da página, 1–100. Padrão 25.
cursorstringO valor de nextCursor da página anterior.
Argumentos de exemplo
{ "auditId": "0192f3a4-…", "severity": ["CRITICAL", "HIGH"] }

vetkit_get_report

somente leitura

Retorna o relatório de uma auditoria concluída: Markdown legível, um resumo em JSON com as pontuações por categoria e o diff em relação à auditoria anterior, ou SARIF 2.1.0.

Escopos: reports:read

ArgumentoTipoDescrição
auditIdobrigatóriouuidA auditoria a ser lida.
formatstringmarkdown (padrão), json ou sarif.
maxCharsnumberTrunca a saída acima deste número de caracteres, 2.000–500.000. Padrão 40.000.
Argumentos de exemplo
{ "auditId": "0192f3a4-…", "format": "markdown" }

Auditorias demoradas

A maioria das auditorias termina em poucos minutos. vetkit_run_audit consulta o status a cada poucos segundos e envia notificações de progresso enquanto aguarda. Alguns clientes cancelam chamadas de ferramenta após um tempo fixo — o Claude Code, por exemplo, respeita MCP_TOOL_TIMEOUT. Se for o caso do seu, passe "wait": false e consulte com vetkit_get_audit. Quando timeoutSeconds se esgota, a auditoria continua em execução e a ferramenta retorna "outcome": "still_running".

Erros

Os erros da API voltam como resultados de ferramenta com isError: true e incluem o status HTTP, o código de erro do vetkit, a mensagem, o id da requisição e uma dica.

  • 401 API_KEY_INVALID, API_KEY_REVOKED, API_KEY_EXPIRED — crie ou rotacione uma chave, atualize VETKIT_API_KEY e reinicie o servidor.
  • 403 INSUFFICIENT_SCOPE — falta à chave um escopo de que a ferramenta precisa.
  • 409 AUDIT_CONCURRENCY_LIMIT e 429 RATE_LIMITED — aguarde e tente novamente; a dica inclui o tempo de espera quando a API envia Retry-After.
  • INSTALLATION_REQUIRED é retornado como um resultado normal com a URL de instalação do GitHub App, e não como erro.

Notas de segurança

  • Trate a chave de API como uma senha. Ela dá acesso às auditorias e aos achados da sua organização, incluindo repositórios privados. Mantenha-a na configuração env do seu cliente MCP, nunca em arquivos que você commita. Conceda apenas os escopos de que você precisa, defina uma expiração e revogue-a no app se ela vazar.
  • A chave é enviada apenas para VETKIT_API_URL, como um cabeçalho Authorization: Bearer via HTTPS. O servidor nunca a registra em log nem a inclui em mensagens de erro.
  • O servidor fala MCP apenas via stdio. Ele não abre portas de rede e grava logs apenas em stderr.
  • Os trechos dos achados são mascarados antes de o vetkit armazená-los; valores de segredos nunca são retornados.
  • O texto de relatórios e achados vem do repositório auditado (caminhos de arquivo, mensagens). Trate-o como entrada não confiável, como qualquer outra saída de ferramenta — um repositório malicioso pode tentar embutir instruções direcionadas ao seu agente.

Prefere HTTP puro? Tudo o que o servidor MCP faz está disponível pela API REST.