DeepSource MCP-Server
Ein Model Context Protocol (MCP)-Server, der in DeepSource integriert ist, um KI-Assistenten Zugriff auf Codequalitätsmetriken, Probleme und Analyseergebnisse zu bieten.
Überblick
Der DeepSource MCP Server ermöglicht KI-Assistenten die Interaktion mit den Codequalitätsanalysefunktionen von DeepSource über das Model Context Protocol. Diese Integration ermöglicht KI-Assistenten:
Abrufen von Codemetriken und Analyseergebnissen
Zugriffs- und Filterprobleme
Qualitätsstatus prüfen
Analysieren Sie die Projektqualität im Zeitverlauf
Related MCP server: Codebase MCP
Merkmale
DeepSource-API-Integration : Verbindung mit DeepSource über die GraphQL-API
MCP-Protokollunterstützung : Implementiert das Model Context Protocol für die Integration von KI-Assistenten
Qualitätsmetriken und Schwellenwerte : Abrufen und Verwalten von Codequalitätsmetriken mit Schwellenwerten
Sicherheits-Compliance-Berichte : Zugriff auf OWASP Top 10, SANS Top 25 und MISRA-C Compliance-Berichte
Abhängigkeitsschwachstellen : Zugriff auf Informationen zu Sicherheitsschwachstellen in Abhängigkeiten
TypeScript/Node.js : Erstellt mit TypeScript für Typsicherheit und moderne JavaScript-Funktionen
Plattformübergreifend : Funktioniert unter Linux, macOS und Windows
Robuste Fehlerbehandlung : Umfassende Fehlerbehandlung für Netzwerk-, Authentifizierungs- und Analyseprobleme
Verwendung mit Claude Desktop
Bearbeiten Sie
claude_desktop_config.json:Öffnen Sie Claude Desktop
Gehen Sie zu
Settings->Developer->Edit ConfigFügen Sie eine der folgenden Konfigurationen zum Abschnitt
mcpServershinzu
Starten Sie Claude Desktop neu, um die Änderungen zu übernehmen
Beispielabfragen
Sobald die Verbindung hergestellt ist, kann Ihr KI-Assistent DeepSource-Daten mit Abfragen wie den folgenden verwenden:
What issues are in the JavaScript files of my project?Dies würde das Tool project_issues mit Filtern verwenden:
{
"projectKey": "your-project-key",
"path": "src/",
"analyzerIn": ["javascript"],
"first": 10
}So filtern Sie Analyseläufe:
Show me the most recent Python analysis runsDies würde das Tool project_runs mit Filtern verwenden:
{
"projectKey": "your-project-key",
"analyzerIn": ["python"],
"first": 5
}Für Codequalitätsmetriken:
What's my code coverage percentage? Is it meeting our thresholds?Dazu würde das Tool quality_metrics verwendet:
{
"projectKey": "your-project-key",
"shortcodeIn": ["LCV", "BCV", "CCV"]
}Für Sicherheitskonformitätsberichte:
Are we compliant with OWASP Top 10 security standards?Dazu würde das Tool compliance_report verwendet:
{
"projectKey": "your-project-key",
"reportType": "OWASP_TOP_10"
}So legen Sie Schwellenwerte fest:
Update our line coverage threshold to 80%Dies würde das Tool update_metric_threshold verwenden:
{
"projectKey": "your-project-key",
"repositoryId": "repo-id",
"metricShortcode": "LCV",
"metricKey": "AGGREGATE",
"thresholdValue": 80
}Umgebungsvariablen
Der Server unterstützt die folgenden Umgebungsvariablen:
DEEPSOURCE_API_KEY(erforderlich): Ihr DeepSource-API-Schlüssel zur AuthentifizierungLOG_FILE(optional): Pfad zu einer Datei, in die Protokolle geschrieben werden sollen. Wenn nicht angegeben, werden keine Protokolle geschrieben.LOG_LEVEL(optional): Minimale Protokollebene zum Schreiben (DEBUG, INFO, WARN, ERROR). Standardmäßig DEBUG
Beispielkonfiguration mit Protokollierung:
{
"mcpServers": {
"deepsource": {
"command": "npx",
"args": [
"-y",
"deepsource-mcp-server@1.1.0"
],
"env": {
"DEEPSOURCE_API_KEY": "your-deepsource-api-key",
"LOG_FILE": "/tmp/deepsource-mcp.log",
"LOG_LEVEL": "DEBUG"
}
}
}
}Docker
{
"mcpServers": {
"deepsource": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DEEPSOURCE_API_KEY",
"-e",
"LOG_FILE=/tmp/deepsource-mcp.log",
"-v",
"/tmp:/tmp",
"sapientpants/deepsource-mcp-server"
],
"env": {
"DEEPSOURCE_API_KEY": "your-deepsource-api-key",
"LOG_FILE": "/tmp/deepsource-mcp.log"
}
}
}
}NPX
{
"mcpServers": {
"deepsource": {
"command": "npx",
"args": [
"-y",
"deepsource-mcp-server@1.1.0"
],
"env": {
"DEEPSOURCE_API_KEY": "your-deepsource-api-key"
}
}
}
}Verfügbare Tools
Der DeepSource MCP-Server bietet die folgenden Tools:
projects: Listet alle verfügbaren DeepSource-Projekte aufParameter:
Keine erforderlichen Parameter
project_issues: Holen Sie sich Probleme aus einem DeepSource-Projekt mit FilterungParameter:
projectKey(erforderlich) – Die eindeutige Kennung für das DeepSource-ProjektPaginierungsparameter:
offset(optional) – Anzahl der Elemente, die bei der Paginierung übersprungen werden sollenfirst(optional) – Anzahl der zurückzugebenden Elemente (Standardwert: 10)after(optional) - Cursor für die Vorwärtspaginierungbefore(optional) - Cursor für die Rückwärtspaginierunglast(optional) – Anzahl der Elemente, die vor dem Cursor „vor“ zurückgegeben werden sollen (Standard: 10)
Filterparameter:
path(optional) – Filtern Sie Probleme nach einem bestimmten DateipfadanalyzerIn(optional) – Filtern Sie Probleme nach bestimmten Analysatoren (z. B. ["python", "javascript"])tags(optional) – Probleme nach Tags filtern
project_runs: Listenanalyseläufe für ein DeepSource-Projekt mit FilterungParameter:
projectKey(erforderlich) – Die eindeutige Kennung für das DeepSource-ProjektPaginierungsparameter:
offset(optional) – Anzahl der Elemente, die bei der Paginierung übersprungen werden sollenfirst(optional) – Anzahl der zurückzugebenden Elemente (Standardwert: 10)after(optional) - Cursor für die Vorwärtspaginierungbefore(optional) - Cursor für die Rückwärtspaginierunglast(optional) – Anzahl der Elemente, die vor dem Cursor „vor“ zurückgegeben werden sollen (Standard: 10)
Filterparameter:
analyzerIn(optional) – Filter, der von bestimmten Analysatoren ausgeführt wird (z. B. ["python", "javascript"])
run: Rufen Sie eine bestimmte Analyse ab, die über ihre runUid oder commitOid ausgeführt wird.Parameter:
runIdentifier(erforderlich) – Die runUid (UUID) oder commitOid (Commit-Hash) zur Identifizierung des Laufs
recent_run_issues: Ruft Probleme aus der letzten Analyse ab, die auf einem bestimmten Zweig mit Paginierungsunterstützung ausgeführt wurde.Parameter:
projectKey(erforderlich) – Die eindeutige Kennung für das DeepSource-ProjektbranchName(erforderlich) – Der Name des Zweigs, aus dem der letzte Lauf abgerufen werden sollPaginierungsparameter:
first(optional) – Anzahl der zurückzugebenden Probleme (Standardwert: 10)after(optional) - Cursor für die Vorwärtspaginierunglast(optional) – Anzahl der Probleme, die vor einem Cursor zurückgegeben werden sollen (Standard: 10)before(optional) - Cursor für die Rückwärtspaginierung
Widerrufsfolgen:
Informationen zum letzten Lauf auf der Filiale
Aktuelle Probleme im Projekt (Hinweis: Probleme treten auf Repository-Ebene auf, nicht laufspezifisch)
Paginierungsinformationen einschließlich Cursor und Seitenstatus
Metadaten zum Lauf und zum Zweig
dependency_vulnerabilities: Abhängigkeitsschwachstellen aus einem DeepSource-Projekt abrufenParameter:
projectKey(erforderlich) – Die eindeutige Kennung für das DeepSource-ProjektPaginierungsparameter:
offset(optional) – Anzahl der Elemente, die bei der Paginierung übersprungen werden sollenfirst(optional) – Anzahl der zurückzugebenden Elemente (Standardwert: 10)after(optional) - Cursor für die Vorwärtspaginierungbefore(optional) - Cursor für die Rückwärtspaginierunglast(optional) – Anzahl der Elemente, die vor dem Cursor „vor“ zurückgegeben werden sollen (Standard: 10)
quality_metrics: Holen Sie Qualitätsmetriken aus einem DeepSource-Projekt mit FilterungParameter:
projectKey(erforderlich) – Die eindeutige Kennung für das DeepSource-ProjektshortcodeIn(optional) – Filtern Sie Metriken nach bestimmten Shortcodes (z. B. ["LCV", "BCV"])
Gibt Kennzahlen zurück wie:
Linienabdeckung (LCV)
Filialabdeckung (BCV)
Dokumentationsumfang (DCV)
Prozentsatz doppelter Codes (DDP)
Jede Metrik umfasst aktuelle Werte, Schwellenwerte und den Pass/Fail-Status
update_metric_threshold: Aktualisieren Sie den Schwellenwert für eine bestimmte QualitätsmetrikParameter:
projectKey(erforderlich) – Die eindeutige Kennung für das DeepSource-ProjektrepositoryId(erforderlich) – Die GraphQL-Repository-IDmetricShortcode(erforderlich) – Der Shortcode der zu aktualisierenden MetrikmetricKey(erforderlich) – Der Sprach- oder Kontextschlüssel für die MetrikthresholdValue(optional) - Der neue Schwellenwert oder null, um den Schwellenwert zu entfernen
Beispiel: Festlegen eines Schwellenwerts für die Zeilenabdeckung von 80 %: metricShortcode="LCV", metricKey="AGGREGATE", thresholdValue=80
update_metric_setting: Aktualisieren Sie die Einstellungen für eine QualitätsmetrikParameter:
projectKey(erforderlich) – Die eindeutige Kennung für das DeepSource-ProjektrepositoryId(erforderlich) – Die GraphQL-Repository-IDmetricShortcode(erforderlich) – Der Shortcode der zu aktualisierenden MetrikisReported(erforderlich) – Ob die Metrik gemeldet werden sollisThresholdEnforced(erforderlich) – Ob der Schwellenwert erzwungen werden soll (kann bei Prüfungen fehlschlagen)
compliance_report: Erhalten Sie Sicherheits-Compliance-Berichte von einem DeepSource-Projekt
Parameter:
projectKey(erforderlich) – Die eindeutige Kennung für das DeepSource-ProjektreportType(erforderlich) – Der Typ des abzurufenden Compliance-Berichts ( OWASP Top 10 , SANS Top 25 oder MISRA-C )
Gibt umfassende Daten zur Sicherheitskonformität zurück, darunter:
Statistiken zu Sicherheitsproblemen nach Kategorie und Schweregrad
Konformitätsstatus (bestanden/nicht bestanden)
Trenddaten, die Veränderungen im Zeitverlauf zeigen
Analyse und Empfehlungen zur Verbesserung der Sicherheitslage
Entwicklung
Klonen Sie das Repository:
git clone https://github.com/sapientpants/deepsource-mcp-server.git
cd deepsource-mcp-serverInstallieren Sie Abhängigkeiten:
pnpm installErstellen Sie das Projekt:
pnpm run buildClaude Desktop konfigurieren
{
"mcpServers": {
"deepsource": {
"command": "node",
"args": [
"/path/to/deepsource-mcp-server/dist/index.js"
],
"env": {
"DEEPSOURCE_API_KEY": "your-deepsource-api-key"
}
}
}
}Voraussetzungen
Node.js 20 oder höher
pnpm 10.7.0 oder höher
Docker (für Container-Builds)
Skripte
pnpm run build– Erstellen Sie den TypeScript-Codepnpm run start- Starten Sie den Serverpnpm run dev- Starten Sie den Server im Entwicklungsmoduspnpm run test– Tests ausführenpnpm run lint– ESLint ausführenpnpm run format- Code mit Prettier formatieren
Fehlerbehebung
Debug-Protokollierung aktivieren
Wenn Probleme auftreten, aktivieren Sie die Debug-Protokollierung, um ausführliche Informationen anzuzeigen:
Setzen Sie die Umgebungsvariable
LOG_FILEauf einen Dateipfad, in den Protokolle geschrieben werden sollenSetzen Sie
LOG_LEVELaufDEBUG(das ist die Standardeinstellung)Überprüfen Sie die Protokolldatei auf detaillierte Fehlerinformationen
Beispielkonfiguration:
{
"mcpServers": {
"deepsource": {
"command": "npx",
"args": ["-y", "deepsource-mcp-server@1.1.0"],
"env": {
"DEEPSOURCE_API_KEY": "your-api-key",
"LOG_FILE": "/tmp/deepsource-mcp.log",
"LOG_LEVEL": "DEBUG"
}
}
}
}Überprüfen Sie dann die Protokolldatei:
tail -f /tmp/deepsource-mcp.logHäufige Probleme
Authentifizierungsfehler : Stellen Sie sicher, dass Ihr
DEEPSOURCE_API_KEYkorrekt ist und über die erforderlichen Berechtigungen verfügtEs werden keine Protokolle angezeigt : Überprüfen Sie, ob der
LOG_FILEPfad beschreibbar ist und das übergeordnete Verzeichnis vorhanden istTool-Fehler : Überprüfen Sie die Protokolldatei auf detaillierte Fehlermeldungen und Stapelverfolgungen
Lizenz
MIT