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.
claude mcp add vetkit -e VETKIT_API_KEY=vk_live_... -- npx -y @vetkit/mcpBitten 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
npxin IhremPATH. - 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
- Öffnen Sie in der vetkit-App Einstellungen → API-Schlüssel. Nur Inhaber und Admins einer Organisation können Schlüssel verwalten.
- Benennen Sie den Schlüssel nach dem Ort, an dem er eingesetzt wird, zum Beispiel „Claude Code — Laptop“.
- Wählen Sie die Scopes. Für den vollen MCP-Funktionsumfang wählen Sie
repos:read,repos:write,audits:read,audits:write,findings:readundreports:read. Für einen Agenten mit reinem Lesezugriff lassen Sierepos:writeundaudits:writeweg. - Legen Sie optional ein Ablaufdatum und ein Rate-Limit pro Minute fest (Standard 60, bis zu 600).
- Kopieren Sie das Secret. Es hat die Form
vk_live_…und wird nur einmal angezeigt; vetkit speichert ausschließlich einen Hash.
Rotation und Widerruf
401 API_KEY_REVOKED.Installation
Claude Code
claude mcp add vetkit -e VETKIT_API_KEY=vk_live_... -- npx -y @vetkit/mcpFü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:
{ "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.
{ "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.
npm install -g @vetkit/mcpVETKIT_API_KEY=vk_live_... vetkit-mcpKonfiguration
Der Server wird vollständig über Umgebungsvariablen konfiguriert.
| Variable | Erforderlich | Beschreibung |
|---|---|---|
VETKIT_API_KEY | Ja | Ihr API-Schlüssel, vk_live_… oder vk_test_…. |
VETKIT_API_URL | Nein | Basis-URL der API. Standard: https://api.vetkit.dev. Muss HTTPS verwenden; unverschlüsseltes HTTP wird nur für localhost akzeptiert. |
VETKIT_ORG_ID | Nein | Organisations-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_URL | Nein | URL 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 lesendListet die mit Ihrer Organisation verbundenen Repositorys auf, mit Note und Score des letzten Audits.
Scopes: repos:read
| Argument | Typ | Beschreibung |
|---|---|---|
limit | number | Seitengröße, 1–100. Standard: 25. |
cursor | string | Der nextCursor-Wert der vorherigen Seite. |
{ "limit": 10 }vetkit_connect_repo
schreibendVerbindet 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
| Argument | Typ | Beschreibung |
|---|---|---|
urlerforderlich | string | GitHub-URL (https://github.com/owner/name) oder "owner/name". |
{ "url": "https://github.com/acme/payments-api" }vetkit_run_audit
schreibendStartet 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)
| Argument | Typ | Beschreibung |
|---|---|---|
repoerforderlich | string | Repository-ID, "owner/name" oder eine GitHub-URL — auch /tree/<branch>. |
ref | string | Branch, Tag oder Commit-SHA. Standardmäßig die Ref aus der URL, sonst der Standard-Branch. |
wait | boolean | Auf einen Endstatus warten. Standard: true. |
timeoutSeconds | number | Maximale Wartezeit, 10–1800. Standard: 600. Das Audit läuft nach einem Timeout weiter. |
{ "repo": "acme/payments-api", "ref": "main" }vetkit_get_audit
nur lesendLiefert Status, Note, Score, Anzahl der Befunde und den Fortschritt je Analyzer für ein Audit.
Scopes: audits:read
| Argument | Typ | Beschreibung |
|---|---|---|
auditIderforderlich | uuid | Die von vetkit_run_audit zurückgegebene Audit-ID. |
{ "auditId": "0192f3a4-5b6c-7d8e-9f01-23456789abcd" }vetkit_list_findings
nur lesendListet 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
| Argument | Typ | Beschreibung |
|---|---|---|
auditIderforderlich | uuid | Das zu lesende Audit. |
severity | string[] | CRITICAL, HIGH, MEDIUM, LOW oder INFO. |
category | string[] | SECURITY, SECRETS, DEPENDENCIES, QUALITY, HYGIENE oder AI_SIGNAL. |
status | string | NEW (seit dem vorherigen Audit hinzugekommen) oder EXISTING. |
limit | number | Seitengröße, 1–100. Standard: 25. |
cursor | string | Der nextCursor-Wert der vorherigen Seite. |
{ "auditId": "0192f3a4-…", "severity": ["CRITICAL", "HIGH"] }vetkit_get_report
nur lesendLiefert 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
| Argument | Typ | Beschreibung |
|---|---|---|
auditIderforderlich | uuid | Das zu lesende Audit. |
format | string | markdown (Standard), json oder sarif. |
maxChars | number | Ausgabe ab dieser Zeichenzahl kürzen, 2.000–500.000. Standard: 40.000. |
{ "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 SieVETKIT_API_KEYund starten Sie den Server neu.403 INSUFFICIENT_SCOPE— dem Schlüssel fehlt ein Scope, den das Tool benötigt.409 AUDIT_CONCURRENCY_LIMITund429 RATE_LIMITED— warten und erneut versuchen; der Hinweis enthält die Wartezeit, wenn die APIRetry-Aftersendet.INSTALLATION_REQUIREDwird 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_URLgesendet, alsAuthorization: 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.