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.
claude mcp add vetkit -e VETKIT_API_KEY=vk_live_... -- npx -y @vetkit/mcpDepois, 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
npxno seuPATH. - 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
- Abra Configurações → Chaves de API no app vetkit. Apenas proprietários e administradores da organização podem gerenciar chaves.
- Dê à chave um nome que indique onde ela será usada, por exemplo “Claude Code — notebook”.
- Escolha os escopos. Para a funcionalidade completa do MCP, escolha
repos:read,repos:write,audits:read,audits:write,findings:readereports:read. Para um agente somente leitura, deixe de forarepos:writeeaudits:write. - Opcionalmente, defina uma expiração e um limite de taxa por minuto (padrão 60, até 600).
- 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
401 API_KEY_REVOKED.Instalação
Claude Code
claude mcp add vetkit -e VETKIT_API_KEY=vk_live_... -- npx -y @vetkit/mcpAdicione --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:
{ "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.
{ "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.
npm install -g @vetkit/mcpVETKIT_API_KEY=vk_live_... vetkit-mcpConfiguração
O servidor é configurado inteiramente por variáveis de ambiente.
| Variável | Obrigatória | Descrição |
|---|---|---|
VETKIT_API_KEY | Sim | Sua chave de API, vk_live_… ou vk_test_…. |
VETKIT_API_URL | Não | URL base da API. Padrão: https://api.vetkit.dev. Deve usar HTTPS; HTTP simples só é aceito para localhost. |
VETKIT_ORG_ID | Não | Id 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_URL | Não | URL 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 leituraLista os repositórios conectados à sua organização, com a nota e a pontuação da auditoria mais recente.
Escopos: repos:read
| Argumento | Tipo | Descrição |
|---|---|---|
limit | number | Tamanho da página, 1–100. Padrão 25. |
cursor | string | O valor de nextCursor da página anterior. |
{ "limit": 10 }vetkit_connect_repo
faz alteraçõesConecta 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
| Argumento | Tipo | Descrição |
|---|---|---|
urlobrigatório | string | URL do GitHub (https://github.com/owner/name) ou "owner/name". |
{ "url": "https://github.com/acme/payments-api" }vetkit_run_audit
faz alteraçõesInicia 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)
| Argumento | Tipo | Descrição |
|---|---|---|
repoobrigatório | string | Id do repositório, "owner/name" ou uma URL do GitHub — incluindo /tree/<branch>. |
ref | string | Branch, tag ou SHA de commit. O padrão é a ref da URL e, depois, a branch padrão. |
wait | boolean | Aguardar um status final. Padrão true. |
timeoutSeconds | number | Espera máxima, 10–1800. Padrão 600. A auditoria continua em execução depois que o tempo limite se esgota. |
{ "repo": "acme/payments-api", "ref": "main" }vetkit_get_audit
somente leituraRetorna o status, a nota, a pontuação, as contagens de achados e o progresso por analisador de uma auditoria.
Escopos: audits:read
| Argumento | Tipo | Descrição |
|---|---|---|
auditIdobrigatório | uuid | O id da auditoria retornado por vetkit_run_audit. |
{ "auditId": "0192f3a4-5b6c-7d8e-9f01-23456789abcd" }vetkit_list_findings
somente leituraLista 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
| Argumento | Tipo | Descrição |
|---|---|---|
auditIdobrigatório | uuid | A auditoria a ser lida. |
severity | string[] | CRITICAL, HIGH, MEDIUM, LOW ou INFO. |
category | string[] | SECURITY, SECRETS, DEPENDENCIES, QUALITY, HYGIENE ou AI_SIGNAL. |
status | string | NEW (introduzido desde a auditoria anterior) ou EXISTING. |
limit | number | Tamanho da página, 1–100. Padrão 25. |
cursor | string | O valor de nextCursor da página anterior. |
{ "auditId": "0192f3a4-…", "severity": ["CRITICAL", "HIGH"] }vetkit_get_report
somente leituraRetorna 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
| Argumento | Tipo | Descrição |
|---|---|---|
auditIdobrigatório | uuid | A auditoria a ser lida. |
format | string | markdown (padrão), json ou sarif. |
maxChars | number | Trunca a saída acima deste número de caracteres, 2.000–500.000. Padrão 40.000. |
{ "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, atualizeVETKIT_API_KEYe reinicie o servidor.403 INSUFFICIENT_SCOPE— falta à chave um escopo de que a ferramenta precisa.409 AUDIT_CONCURRENCY_LIMITe429 RATE_LIMITED— aguarde e tente novamente; a dica inclui o tempo de espera quando a API enviaRetry-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
envdo 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çalhoAuthorization: Bearervia 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.