Skip to main content
Glama
sapientpants

DeepSource MCP Server

by sapientpants

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

Related MCP server: CodeAlive 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

  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

Install Server
A
license - permissive license
B
quality
F
maintenance

Maintenance

Maintainers
Response time
2dRelease cycle
15Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A Model Context Protocol server that enhances AI agents by providing deep semantic understanding of codebases, enabling more intelligent interactions through advanced code search and contextual awareness.
    88
    MIT
  • -
    license
    B
    quality
    Not graded
    maintenance
    A Model Context Protocol server that enables AI assistants to fetch and understand GitHub repository documentation on-demand from DeepWiki during conversations.
    3
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that analyzes application codebases with real-time file watching, providing AI assistants like Claude with deep insights into project structure, code patterns, and architecture.
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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