DeepSource MCP Server

by sapientpants
Integrations
  • Retrieves code metrics and analysis results from GitHub repositories through DeepSource integration

  • Connects to DeepSource via GraphQL API to fetch code analysis data

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

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 }

Docker

{ "mcpServers": { "deepsource": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "DEEPSOURCE_API_KEY", "sapientpants/deepsource-mcp-server" ], "env": { "DEEPSOURCE_API_KEY": "your-deepsource-api-key" } } } }

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. 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)
  6. 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
  7. 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
  8. 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)
  9. 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

Lizenz

MIT

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Ein Model Context Protocol-Server, der in DeepSource integriert ist, um KI-Assistenten Zugriff auf Codequalitätsmetriken, Probleme und Analyseergebnisse zu gewähren.

  1. Überblick
    1. Merkmale
      1. Verwendung mit Claude Desktop
        1. Beispielabfragen
        2. Docker
        3. NPX
      2. Verfügbare Tools
        1. Entwicklung
          1. Voraussetzungen
          2. Skripte
        2. Lizenz

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            A Model Context Protocol server that integrates with Linear, enabling AI assistants to create, update, search, and comment on issues for project management and issue tracking.
            Last updated -
            5
            6
            Python
            Apache 2.0
          • -
            security
            F
            license
            -
            quality
            A Model Context Protocol server that enables AI assistants like Claude to perform Python development tasks through file operations, code analysis, project management, and safe code execution.
            Last updated -
            1
            Python
            • Linux
            • Apple
          • -
            security
            A
            license
            -
            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 -
            3
            Python
            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 -
            16
            TypeScript

          View all related MCP servers

          ID: u4wlvmu5z8