Skip to main content
Glama

DeepSource MCP-Server

CI DeepSource DeepSource DeepSource npm-Version npm-Downloads Lizenz

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

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

  1. Bearbeiten Sie claude_desktop_config.json :

    • Öffnen Sie Claude Desktop

    • Gehen Sie zu Settings -> Developer -> Edit Config

    • Fügen Sie eine der folgenden Konfigurationen zum Abschnitt mcpServers hinzu

  2. 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 runs

Dies 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 Authentifizierung

  • LOG_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:

  1. projects : Listet alle verfügbaren DeepSource-Projekte auf

    • Parameter:

      • Keine erforderlichen Parameter

  2. project_issues : Holen Sie sich Probleme aus einem DeepSource-Projekt mit Filterung

    • Parameter:

      • projectKey (erforderlich) – Die eindeutige Kennung für das DeepSource-Projekt

      • Paginierungsparameter:

        • offset (optional) – Anzahl der Elemente, die bei der Paginierung übersprungen werden sollen

        • first (optional) – Anzahl der zurückzugebenden Elemente (Standardwert: 10)

        • after (optional) - Cursor für die Vorwärtspaginierung

        • before (optional) - Cursor für die Rückwärtspaginierung

        • last (optional) – Anzahl der Elemente, die vor dem Cursor „vor“ zurückgegeben werden sollen (Standard: 10)

      • Filterparameter:

        • path (optional) – Filtern Sie Probleme nach einem bestimmten Dateipfad

        • analyzerIn (optional) – Filtern Sie Probleme nach bestimmten Analysatoren (z. B. ["python", "javascript"])

        • tags (optional) – Probleme nach Tags filtern

  3. project_runs : Listenanalyseläufe für ein DeepSource-Projekt mit Filterung

    • Parameter:

      • projectKey (erforderlich) – Die eindeutige Kennung für das DeepSource-Projekt

      • Paginierungsparameter:

        • offset (optional) – Anzahl der Elemente, die bei der Paginierung übersprungen werden sollen

        • first (optional) – Anzahl der zurückzugebenden Elemente (Standardwert: 10)

        • after (optional) - Cursor für die Vorwärtspaginierung

        • before (optional) - Cursor für die Rückwärtspaginierung

        • last (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"])

  4. 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

  5. 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-Projekt

      • branchName (erforderlich) – Der Name des Zweigs, aus dem der letzte Lauf abgerufen werden soll

      • Paginierungsparameter:

        • first (optional) – Anzahl der zurückzugebenden Probleme (Standardwert: 10)

        • after (optional) - Cursor für die Vorwärtspaginierung

        • last (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

  6. dependency_vulnerabilities : Abhängigkeitsschwachstellen aus einem DeepSource-Projekt abrufen

    • Parameter:

      • projectKey (erforderlich) – Die eindeutige Kennung für das DeepSource-Projekt

      • Paginierungsparameter:

        • offset (optional) – Anzahl der Elemente, die bei der Paginierung übersprungen werden sollen

        • first (optional) – Anzahl der zurückzugebenden Elemente (Standardwert: 10)

        • after (optional) - Cursor für die Vorwärtspaginierung

        • before (optional) - Cursor für die Rückwärtspaginierung

        • last (optional) – Anzahl der Elemente, die vor dem Cursor „vor“ zurückgegeben werden sollen (Standard: 10)

  7. quality_metrics : Holen Sie Qualitätsmetriken aus einem DeepSource-Projekt mit Filterung

    • Parameter:

      • projectKey (erforderlich) – Die eindeutige Kennung für das DeepSource-Projekt

      • shortcodeIn (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

  8. update_metric_threshold : Aktualisieren Sie den Schwellenwert für eine bestimmte Qualitätsmetrik

    • Parameter:

      • projectKey (erforderlich) – Die eindeutige Kennung für das DeepSource-Projekt

      • repositoryId (erforderlich) – Die GraphQL-Repository-ID

      • metricShortcode (erforderlich) – Der Shortcode der zu aktualisierenden Metrik

      • metricKey (erforderlich) – Der Sprach- oder Kontextschlüssel für die Metrik

      • thresholdValue (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

  9. update_metric_setting : Aktualisieren Sie die Einstellungen für eine Qualitätsmetrik

    • Parameter:

      • projectKey (erforderlich) – Die eindeutige Kennung für das DeepSource-Projekt

      • repositoryId (erforderlich) – Die GraphQL-Repository-ID

      • metricShortcode (erforderlich) – Der Shortcode der zu aktualisierenden Metrik

      • isReported (erforderlich) – Ob die Metrik gemeldet werden soll

      • isThresholdEnforced (erforderlich) – Ob der Schwellenwert erzwungen werden soll (kann bei Prüfungen fehlschlagen)

  10. compliance_report : Erhalten Sie Sicherheits-Compliance-Berichte von einem DeepSource-Projekt

  • Parameter:

    • projectKey (erforderlich) – Die eindeutige Kennung für das DeepSource-Projekt

    • reportType (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

  1. Klonen Sie das Repository:

git clone https://github.com/sapientpants/deepsource-mcp-server.git cd deepsource-mcp-server
  1. Installieren Sie Abhängigkeiten:

pnpm install
  1. Erstellen Sie das Projekt:

pnpm run build
  1. Claude 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-Code

  • pnpm run start - Starten Sie den Server

  • pnpm run dev - Starten Sie den Server im Entwicklungsmodus

  • pnpm run test – Tests ausführen

  • pnpm run lint – ESLint ausführen

  • pnpm run format - Code mit Prettier formatieren

Fehlerbehebung

Debug-Protokollierung aktivieren

Wenn Probleme auftreten, aktivieren Sie die Debug-Protokollierung, um ausführliche Informationen anzuzeigen:

  1. Setzen Sie die Umgebungsvariable LOG_FILE auf einen Dateipfad, in den Protokolle geschrieben werden sollen

  2. Setzen Sie LOG_LEVEL auf DEBUG (das ist die Standardeinstellung)

  3. Ü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.log

Häufige Probleme

  1. Authentifizierungsfehler : Stellen Sie sicher, dass Ihr DEEPSOURCE_API_KEY korrekt ist und über die erforderlichen Berechtigungen verfügt

  2. Es werden keine Protokolle angezeigt : Überprüfen Sie, ob der LOG_FILE Pfad beschreibbar ist und das übergeordnete Verzeichnis vorhanden ist

  3. Tool-Fehler : Überprüfen Sie die Protokolldatei auf detaillierte Fehlermeldungen und Stapelverfolgungen

Lizenz

MIT

Related MCP Servers

  • A
    security
    F
    license
    A
    quality
    A Model Context Protocol server that enables AI models to interact with SourceSync.ai's knowledge management platform for managing documents, ingesting content from various sources, and performing semantic searches.
    Last updated -
    25
    33
    • Apple
    • Linux
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables AI agents to retrieve and understand entire codebases at once, providing tools to analyze local workspaces or remote GitHub repositories.
    Last updated -
    3
    70
    MIT License
    • Linux
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enhances AI-generated code quality through comprehensive analysis across 10 critical dimensions, helping identify issues before they become problems.
    Last updated -
    1
    72
    Apache 2.0
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    A comprehensive Model Context Protocol server implementation that enables AI assistants to interact with file systems, databases, GitHub repositories, web resources, and system tools while maintaining security and control.
    Last updated -
    5
    2

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sapientpants/deepsource-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server