Zum Inhalt springen
vetkit

Doku · MCP

vetkit-MCP-Server

Geben Sie Ihrem Coding-Agenten einen Code-Auditor. Mit dem vetkit-MCP-Server können Claude Code — und jeder andere Client für das Model Context Protocol — Repositorys verbinden, Audits ausführen sowie Befunde und Berichte lesen.

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

Bitten Sie Ihren Agenten dann zum Beispiel: „Prüfe acme/payments-api und sag mir, was ich zuerst beheben sollte.“ Führen Sie in Claude Code /mcp aus, um zu prüfen, ob vetkit verbunden ist.

Voraussetzungen

  • Node.js 20.3 oder neuer, mit npx in Ihrem PATH.
  • Ein vetkit-Konto mit installierter GitHub App für die Repositorys, die Sie prüfen möchten.
  • Ein vetkit-API-Schlüssel (nächster Schritt).

API-Schlüssel erstellen

  1. Öffnen Sie in der vetkit-App Einstellungen → API-Schlüssel. Nur Inhaber und Admins einer Organisation können Schlüssel verwalten.
  2. Benennen Sie den Schlüssel nach dem Ort, an dem er eingesetzt wird, zum Beispiel „Claude Code — Laptop“.
  3. Wählen Sie die Scopes. Für den vollen MCP-Funktionsumfang wählen Sie repos:read, repos:write, audits:read, audits:write, findings:read und reports:read. Für einen Agenten mit reinem Lesezugriff lassen Sie repos:write und audits:write weg.
  4. Legen Sie optional ein Ablaufdatum und ein Rate-Limit pro Minute fest (Standard 60, bis zu 600).
  5. Kopieren Sie das Secret. Es hat die Form vk_live_… und wird nur einmal angezeigt; vetkit speichert ausschließlich einen Hash.

Rotation und Widerruf

Beim Rotieren eines Schlüssels wird ein neues Secret ausgestellt, und das alte bleibt 24 Stunden lang gültig, damit Sie das neue ausrollen können. Ein Widerruf wirkt sofort — die nächste Anfrage liefert 401 API_KEY_REVOKED.

Installation

Claude Code

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

Fügen Sie --scope user hinzu, damit vetkit in jedem Projekt verfügbar ist statt nur im aktuellen.

Claude Desktop

Öffnen Sie Settings → Developer → Edit Config, fügen Sie vetkit zu claude_desktop_config.json hinzu und starten Sie Claude Desktop anschließend neu:

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

Cursor

Fügen Sie denselben Block in ~/.cursor/mcp.json (global) oder in .cursor/mcp.json in einem Projekt ein. Committen Sie keine Projektkonfiguration, die Ihren Schlüssel enthält.

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

Andere MCP-Clients

Jeder Client, der einen stdio-Server starten kann, funktioniert: Führen Sie npx -y @vetkit/mcp mit VETKIT_API_KEY in der Umgebung aus. Sie können das Paket auch global installieren und das Binary vetkit-mcp direkt ausführen.

Globale Installation
npm install -g @vetkit/mcpVETKIT_API_KEY=vk_live_... vetkit-mcp

Konfiguration

Der Server wird vollständig über Umgebungsvariablen konfiguriert.

VariableErforderlichBeschreibung
VETKIT_API_KEYJaIhr API-Schlüssel, vk_live_… oder vk_test_….
VETKIT_API_URLNeinBasis-URL der API. Standard: https://api.vetkit.dev. Muss HTTPS verwenden; unverschlüsseltes HTTP wird nur für localhost akzeptiert.
VETKIT_ORG_IDNeinOrganisations-ID. Jeder API-Schlüssel gehört zu genau einer Organisation, die standardmäßig verwendet wird; Sie benötigen diese Variable daher selten.
VETKIT_APP_URLNeinURL der Web-App, die für Links zu Audits verwendet wird. Standard: https://app.vetkit.dev.

Tools

Jedes Tool liefert lesbaren Text, und alle Tools außer vetkit_get_report liefern zusätzlich typisierten strukturierten Inhalt. Die Tools tragen MCP-Annotationen, sodass Clients die nur lesenden automatisch freigeben können. Keines der Tools löscht etwas.

vetkit_list_repos

nur lesend

Listet die mit Ihrer Organisation verbundenen Repositorys auf, mit Note und Score des letzten Audits.

Scopes: repos:read

ArgumentTypBeschreibung
limitnumberSeitengröße, 1–100. Standard: 25.
cursorstringDer nextCursor-Wert der vorherigen Seite.
Beispielargumente
{ "limit": 10 }

vetkit_connect_repo

schreibend

Verbindet ein GitHub-Repository. Ist die vetkit GitHub App für das betreffende Konto noch nicht installiert, wird das Ergebnis "installation_required" mit einer Installations-URL zurückgegeben, die im Browser zu öffnen ist.

Scopes: repos:write

ArgumentTypBeschreibung
urlerforderlichstringGitHub-URL (https://github.com/owner/name) oder "owner/name".
Beispielargumente
{ "url": "https://github.com/acme/payments-api" }

vetkit_run_audit

schreibend

Startet ein Audit und wartet standardmäßig auf dessen Abschluss, wobei Fortschrittsbenachrichtigungen gesendet werden. Verbindet das Repository bei Bedarf zuerst. Liefert Note, Score und Anzahl der Befunde.

Scopes: repos:read, audits:write, audits:read (+ repos:write für automatisches Verbinden)

ArgumentTypBeschreibung
repoerforderlichstringRepository-ID, "owner/name" oder eine GitHub-URL — auch /tree/<branch>.
refstringBranch, Tag oder Commit-SHA. Standardmäßig die Ref aus der URL, sonst der Standard-Branch.
waitbooleanAuf einen Endstatus warten. Standard: true.
timeoutSecondsnumberMaximale Wartezeit, 10–1800. Standard: 600. Das Audit läuft nach einem Timeout weiter.
Beispielargumente
{ "repo": "acme/payments-api", "ref": "main" }

vetkit_get_audit

nur lesend

Liefert Status, Note, Score, Anzahl der Befunde und den Fortschritt je Analyzer für ein Audit.

Scopes: audits:read

ArgumentTypBeschreibung
auditIderforderlichuuidDie von vetkit_run_audit zurückgegebene Audit-ID.
Beispielargumente
{ "auditId": "0192f3a4-5b6c-7d8e-9f01-23456789abcd" }

vetkit_list_findings

nur lesend

Listet die Befunde eines Audits auf, die schwerwiegendsten zuerst. Liefert eine kompakte Tabelle als Text und alle Details — Meldung, maskiertes Snippet, Behebung, Referenzen — als strukturierten Inhalt.

Scopes: findings:read

ArgumentTypBeschreibung
auditIderforderlichuuidDas zu lesende Audit.
severitystring[]CRITICAL, HIGH, MEDIUM, LOW oder INFO.
categorystring[]SECURITY, SECRETS, DEPENDENCIES, QUALITY, HYGIENE oder AI_SIGNAL.
statusstringNEW (seit dem vorherigen Audit hinzugekommen) oder EXISTING.
limitnumberSeitengröße, 1–100. Standard: 25.
cursorstringDer nextCursor-Wert der vorherigen Seite.
Beispielargumente
{ "auditId": "0192f3a4-…", "severity": ["CRITICAL", "HIGH"] }

vetkit_get_report

nur lesend

Liefert den Bericht eines abgeschlossenen Audits: lesbares Markdown, eine JSON-Zusammenfassung mit Kategorie-Scores und dem Vergleich zum vorherigen Audit oder SARIF 2.1.0.

Scopes: reports:read

ArgumentTypBeschreibung
auditIderforderlichuuidDas zu lesende Audit.
formatstringmarkdown (Standard), json oder sarif.
maxCharsnumberAusgabe ab dieser Zeichenzahl kürzen, 2.000–500.000. Standard: 40.000.
Beispielargumente
{ "auditId": "0192f3a4-…", "format": "markdown" }

Lang laufende Audits

Die meisten Audits sind in wenigen Minuten abgeschlossen. vetkit_run_audit fragt alle paar Sekunden den Status ab und sendet während des Wartens Fortschrittsbenachrichtigungen. Manche Clients brechen Tool-Aufrufe nach einer festen Zeit ab — Claude Code beachtet zum Beispiel MCP_TOOL_TIMEOUT. Falls Ihr Client das tut, übergeben Sie "wait": false und fragen Sie mit vetkit_get_audit ab. Wenn timeoutSeconds abgelaufen ist, läuft das Audit weiter und das Tool liefert "outcome": "still_running".

Fehler

API-Fehler kommen als Tool-Ergebnisse mit isError: true zurück und enthalten HTTP-Status, vetkit-Fehlercode, Meldung, Anfrage-ID und einen Hinweis.

  • 401 API_KEY_INVALID, API_KEY_REVOKED, API_KEY_EXPIRED — erstellen oder rotieren Sie einen Schlüssel, aktualisieren Sie VETKIT_API_KEY und starten Sie den Server neu.
  • 403 INSUFFICIENT_SCOPE — dem Schlüssel fehlt ein Scope, den das Tool benötigt.
  • 409 AUDIT_CONCURRENCY_LIMIT und 429 RATE_LIMITED — warten und erneut versuchen; der Hinweis enthält die Wartezeit, wenn die API Retry-After sendet.
  • INSTALLATION_REQUIRED wird als normales Ergebnis mit der Installations-URL der GitHub App zurückgegeben, nicht als Fehler.

Sicherheitshinweise

  • Behandeln Sie den API-Schlüssel wie ein Passwort. Er gewährt Zugriff auf die Audits und Befunde Ihrer Organisation, einschließlich privater Repositorys. Bewahren Sie ihn in der env-Konfiguration Ihres MCP-Clients auf, niemals in Dateien, die Sie committen. Vergeben Sie nur die Scopes, die Sie benötigen, legen Sie ein Ablaufdatum fest und widerrufen Sie ihn in der App, falls er offengelegt wird.
  • Der Schlüssel wird ausschließlich an VETKIT_API_URL gesendet, als Authorization: Bearer-Header über HTTPS. Der Server protokolliert ihn nie und nimmt ihn nie in Fehlermeldungen auf.
  • Der Server kommuniziert per MCP ausschließlich über stdio. Er öffnet keine Netzwerkports und protokolliert nur nach stderr.
  • Snippets von Befunden werden maskiert, bevor vetkit sie speichert; Secret-Werte werden nie zurückgegeben.
  • Bericht- und Befundtexte stammen aus dem geprüften Repository (Dateipfade, Meldungen). Behandeln Sie sie wie jede andere Tool-Ausgabe als nicht vertrauenswürdige Eingabe — ein bösartiges Repository könnte versuchen, Anweisungen an Ihren Agenten einzuschleusen.

Lieber direkt per HTTP? Alles, was der MCP-Server kann, ist auch über die REST-API verfügbar.