> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corgea.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Model Context Protocol (MCP)

> KI-Assistenten über das Model Context Protocol mit Corgea verbinden

Corgea unterstützt das [Model Context Protocol (MCP)](https://modelcontextprotocol.io/). Damit können KI-Assistenten wie Claude direkt auf Ihre Security-Scans, Issues und Richtlinien zugreifen. MCP stellt KI-Modellen den erforderlichen Sicherheitskontext für relevantere Antworten bereit.

## Was ist MCP?

Das Model Context Protocol ist ein offener Standard, über den KI-Modelle sicher auf externe Datenquellen und Tools zugreifen können. Mit der MCP-Integration von Corgea können KI-Assistenten:

* Ergebnisse von Security-Scans abfragen
* Details zu Schwachstellen abrufen
* Security-Issues auflisten und filtern
* Code-Quality-Issues auflisten und filtern
* Auf SCA-, IaC- und Abhängigkeitsdaten zugreifen
* Blocking Rules und Richtlinien überprüfen

## Erste Schritte

### Voraussetzungen

* Ein Corgea-API-Token aus Ihren Kontoeinstellungen
* Ein MCP-kompatibler Client (z. B. Claude Desktop, Continue oder ein anderer MCP-Client)

### Verbindungsdetails

**MCP-Server-URL:**

```
https://www.corgea.app/mcp
```

Oder für Single-Tenant-Deployments:

```
https://<your-instance>.corgea.app/mcp
```

**Authentifizierung:**
Alle MCP-Anfragen erfordern die Authentifizierung mit Ihrem Corgea-API-Token im `CORGEA-TOKEN`-Header.

<Note>
  Corgea unterstützt zustandslose MCP-Anfragen über POST mit JSON-Antworten. Standalone-Server-Sent-Event-(SSE)-Streams werden nicht unterstützt.
</Note>

## Verfügbare Tools

Der MCP-Server von Corgea stellt KI-Assistenten folgende Tools bereit:

### get\_scan\_info

Detaillierte Informationen zu einem bestimmten SAST-Scan abrufen.

**Parameter:**

* `scan_id` (string, erforderlich): Eindeutige ID des Scans

**Rückgabe:**
Detaillierte Scan-Informationen einschließlich Status, Anzahl der Findings, Scan-Datum und Repository-Informationen.

**Beispiel:**

```json theme={null}
{
  "scan_id": "abc123",
  "status": "completed",
  "created_at": "2024-11-01T10:30:00Z",
  "findings_count": 15,
  "project": "my-project",
  "repository": "https://github.com/myorg/myrepo"
}
```

***

### get\_issue\_info

Detaillierte Informationen zu einem bestimmten Security-Issue abrufen.

**Parameter:**

* `issue_id` (string, erforderlich): Eindeutige ID des Issues
* `include_reachability` (boolean, optional): Details zur Erreichbarkeit von Endpunkten für das Issue einschließen

**Rückgabe:**
Umfassende Issue-Details einschließlich Schwachstellentyp, Schweregrad, Position, Fix-Empfehlungen, Behebungsstatus und optionaler Informationen zur Erreichbarkeit von Endpunkten.

**Beispiel:**

```json theme={null}
{
  "issue_id": "issue-456",
  "title": "SQL Injection",
  "severity": "high",
  "file": "src/database.py",
  "line": 42,
  "description": "User input not properly sanitized",
  "fix_available": true
}
```

***

### get\_sca\_issue\_info

Detaillierte Informationen zu einem bestimmten SCA-Issue (Software Composition Analysis) abrufen.

**Parameter:**

* `issue_id` (string, erforderlich): Eindeutige ID des SCA-Issues

**Rückgabe:**
Details zum SCA-Issue einschließlich Paket, Schweregrad, CVE, Fix-Version, Dateiposition und Analyse der Erreichbarkeit der Abhängigkeit.

**Beispiel:**

```json theme={null}
{
  "status": "ok",
  "issue": {
    "id": "sca-789",
    "package": {
      "name": "lodash",
      "version": "4.17.15",
      "ecosystem": "npm",
      "fix_version": "4.17.21"
    },
    "cve": "CVE-2021-23337",
    "severity": "high",
    "reachability": {
      "status": "vulnerable_usage_reachable",
      "description": "Vulnerable function is reachable from application code",
      "usages": []
    }
  }
}
```

***

### list\_security\_issues

Security-Issues mit optionalen Filtern auflisten.

**Parameter:**

* `scan_id` (string, optional): Issues nach Scan-ID filtern
* `project` (string, optional): Issues nach Projektname filtern
* `repo` (string, optional): Issues nach Repository-URL filtern
* `include_reachability` (boolean, optional): Zusammenfassung der Erreichbarkeit von Endpunkten für jedes Issue einschließen

**Rückgabe:**
Liste der Security-Issues, die den angegebenen Filtern entsprechen.

**Beispiel:**

```json theme={null}
{
  "status": "ok",
  "count": 25,
  "issues": [
    {
      "id": "issue-123",
      "title": "Cross-Site Scripting (XSS)",
      "severity": "medium",
      "status": "open"
    }
  ]
}
```

***

### list\_code\_quality\_issues

Code-Quality-Findings getrennt von Security-Issues und mit optionaler Filterung auflisten.

**Parameter:**

* `scan_id` (string, optional): Issues nach Scan-ID filtern
* `project` (string, optional): Issues nach Projektname filtern
* `repo` (string, optional): Issues nach Repository-URL filtern
* `filters` (object, optional): Nach `urgency`, `status`, `confidence`, `language`, `file_path`, `classification`, `sla_status`, `branch`, `show_false_positives` oder `sort_by` filtern
* `page` (integer, optional): Seitennummer
* `page_size` (integer, optional): Anzahl der Ergebnisse pro Seite, maximal 50

Das Feld `classification` enthält das Code-Quality-Label, beispielsweise `Maintainability`, und keine CWE. False Positives sind standardmäßig ausgeschlossen.

**Rückgabe:**
Nur Code-Quality-Issues, die dem angegebenen Scope und den Filtern entsprechen.

***

### list\_sca\_security\_issues

SCA-Security-Issues (Software Composition Analysis) mit optionaler Filterung auflisten.

**Parameter:**

* `scan_id` (string, optional): Issues nach Scan-ID filtern
* `project` (string, optional): Issues nach Projektname filtern
* `repo` (string, optional): Issues nach Repository-URL filtern
* `filters` (object, optional): Nach Feldern wie `severity`, `package`, `ecosystem`, `cve`, `path`, `has_fix`, `branch`, `reachability` oder `sort_by` filtern
* `include_reachability` (boolean, optional): Status und Beschreibung der Erreichbarkeit der Abhängigkeit für jedes SCA-Issue einschließen

Unterstützte Werte für den Filter `reachability` sind `not_direct_dependency`, `pending`, `vulnerable_usage_reachable`, `vulnerable_usage_unreachable` und `dead_dependency`.

**Rückgabe:**
Liste der SCA-Issues einschließlich verwundbarer Abhängigkeiten, CVEs und Versionsinformationen.

**Beispiel:**

```json theme={null}
{
  "status": "ok",
  "count": 12,
  "sca_issues": [
    {
      "id": "sca-789",
      "package": "lodash",
      "current_version": "4.17.15",
      "fixed_version": "4.17.21",
      "cve": "CVE-2021-23337",
      "severity": "high"
    }
  ]
}
```

***

### list\_iac\_security\_issues

IaC-Security-Issues (Infrastructure as Code) mit optionaler Filterung auflisten.

**Parameter:**

* `scan_id` (string, optional): Issues nach Scan-ID filtern
* `project` (string, optional): Issues nach Projektname filtern
* `repo` (string, optional): Issues nach Repository-URL filtern
* `filters` (object, optional): Nach `severity`, `provider`, `service`, `iac_type`, `rule_id`, `avd_id`, `path`, `search`, `sort_by` oder `branch` filtern
* `page` (integer, optional): Seitennummer
* `page_size` (integer, optional): Anzahl der Ergebnisse pro Seite, maximal 50

**Rückgabe:**
Liste der IaC-Issues einschließlich Schweregrad, betroffenem Service, Regel-IDs, Dateiposition und Scan-Kontext.

**Beispiel:**

```json theme={null}
{
  "status": "ok",
  "page": 1,
  "total_pages": 1,
  "total_issues": 1,
  "issues": [
    {
      "id": "11111111-1111-1111-1111-111111111111",
      "title": "Public S3 bucket",
      "severity": "HIGH",
      "provider": "aws",
      "service": "s3",
      "iac_type": "terraform",
      "location": {
        "path": "infra/main.tf",
        "start_line": 10
      }
    }
  ]
}
```

***

### list\_dependencies

Während eines Scans erkannte Softwareabhängigkeiten mit optionaler Filterung auflisten.

**Parameter:**

* `scan_id` (string, optional): Abhängigkeiten nach Scan-ID filtern
* `project` (string, optional): Abhängigkeiten nach Projektname filtern
* `repo` (string, optional): Abhängigkeiten nach Repository-URL filtern
* `filters` (object, optional): Nach `name`, `version`, `type`, `path`, `purl`, `license`, `dep_type`, `search`, `sort_by` oder `branch` filtern
* `page` (integer, optional): Seitennummer
* `page_size` (integer, optional): Anzahl der Ergebnisse pro Seite, maximal 50

**Rückgabe:**
Liste der Abhängigkeiten einschließlich Paketname, Version, Paket-URL, Lizenzinformationen, Abhängigkeitsbeziehung und Scan-Kontext.

**Beispiel:**

```json theme={null}
{
  "status": "ok",
  "page": 1,
  "total_pages": 1,
  "total_dependencies": 1,
  "dependencies": [
    {
      "id": "22222222-2222-2222-2222-222222222222",
      "name": "django",
      "version": "4.2.0",
      "type": "pypi",
      "purl": "pkg:pypi/django@4.2.0",
      "path": "requirements.txt",
      "licenses": ["BSD-3-Clause"],
      "is_direct": true
    }
  ]
}
```

***

### list\_scans

Alle SAST-Scans mit optionaler Filterung auflisten.

**Parameter:**

* `project` (string, optional): Scans nach Projektname filtern
* `repo` (string, optional): Scans nach Teilstring der Repository-URL filtern
* `branch` (string, optional): Scans nach exaktem Branch-Namen filtern
* `pull_request_id` (string, optional): Scans nach exakter Pull-Request- oder Merge-Request-ID filtern

**Rückgabe:**
Liste der Scans mit grundlegenden Informationen wie Scan-ID, Datum, Status und Anzahl der Findings.

**Beispiel:**

```json theme={null}
{
  "status": "ok",
  "count": 50,
  "scans": [
    {
      "id": "scan-001",
      "project": "web-app",
      "created_at": "2024-11-01T09:00:00Z",
      "status": "completed",
      "findings": 8
    }
  ]
}
```

***

### get\_blocking\_rules

Ruft alle für Ihre Organisation konfigurierten Blocking Rules ab.

**Parameter:**
Keine

**Rückgabe:**
Liste der Blocking Rules, die Deployments anhand von Sicherheitsrichtlinien verhindern.

**Beispiel:**

```json theme={null}
{
  "status": "ok",
  "rules": [
    {
      "id": "rule-1",
      "name": "Block Critical Vulnerabilities",
      "condition": "severity >= critical",
      "action": "block",
      "enabled": true
    }
  ]
}
```

## Einrichten von MCP-Clients

### Claude Desktop

Corgea zur Konfiguration von Claude Desktop hinzufügen:

1. Öffnen Sie die Einstellungen von Claude Desktop
2. Wechseln Sie zum Bereich "Developer"
3. Bearbeiten Sie Ihre MCP-Konfigurationsdatei
4. Fügen Sie den Corgea-MCP-Server hinzu:

```json theme={null}
{
  "mcpServers": {
    "corgea": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://www.corgea.app/mcp",
        "--header",
        "CORGEA-TOKEN: ${CORGEA_TOKEN}"
      ],
      "env": {
        "CORGEA_TOKEN": "your_api_token_here"
      }
    }
  }
}
```

5. Starten Sie Claude Desktop neu, damit die Änderungen wirksam werden

### Cursor IDE

Corgea zur MCP-Konfiguration von Cursor hinzufügen:

1. Öffnen Sie die Cursor Settings (Cmd/Ctrl + Shift + J)

2. Wechseln Sie zu "Cursor Settings" → "Models" → "MCP"

3. Alternativ bearbeiten Sie direkt die MCP-Konfigurationsdatei unter:
   * **macOS/Linux**: `~/.cursor/mcp.json`
   * **Windows**: `%APPDATA%\Cursor\User\mcp.json`

4. Fügen Sie den Corgea-MCP-Server hinzu:

```json theme={null}
{
  "mcpServers": {
    "corgea": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://www.corgea.app/mcp",
        "--header",
        "CORGEA-TOKEN: ${CORGEA_TOKEN}"
      ],
      "env": {
        "CORGEA_TOKEN": "your_api_token_here"
      }
    }
  }
}
```

**Alternative Konfiguration (direktes HTTP):**

Wenn Sie einen eigenen MCP-Client mit Unterstützung für direkte HTTP-Verbindungen verwenden:

```json theme={null}
{
  "mcpServers": {
    "corgea": {
      "url": "https://www.corgea.app/mcp",
      "headers": {
        "CORGEA-TOKEN": "your_api_token_here"
      }
    }
  }
}
```

### Continue-IDE-Erweiterung

Corgea zur Continue-Konfiguration hinzufügen:

```json theme={null}
{
  "contextProviders": [
    {
      "name": "corgea",
      "params": {
        "serverUrl": "https://www.corgea.app/mcp",
        "headers": {
          "CORGEA-TOKEN": "your_api_token_here"
        }
      }
    }
  ]
}
```

## Anwendungsfälle

### Security-orientiertes Code-Review

Verbinden Sie Ihren KI-Assistenten mit Corgea und stellen Sie beispielsweise folgende Fragen:

* "Welche kritischen Security-Issues enthält mein letzter Scan?"
* "Zeigen Sie mir alle SQL-Injection-Schwachstellen im Authentifizierungsmodul"
* "Gibt es SCA-Issues mit hohem Schweregrad in meinen Abhängigkeiten?"

### Schwachstellenanalyse

Nutzen Sie KI, um Schwachstellen zu analysieren und zu priorisieren:

* "Erklären Sie das Security-Issue issue-456 und schlagen Sie eine Behebung vor"
* "Welche Schwachstellen sollte ich zuerst beheben, basierend auf Schweregrad und Ausnutzbarkeit?"
* "Welche Blocking Rules würden dieses Deployment verhindern?"

### Automatisierte Planung der Behebung

Nutzen Sie KI, um Security-Fixes zu planen:

* "Erstellen Sie einen Behebungsplan für alle Issues mit hohem Schweregrad in scan-123"
* "Welche Abhängigkeiten müssen aktualisiert werden, um SCA-Issues zu beheben?"
* "Erstellen Sie einen nach Datei gruppierten Bericht über alle offenen Security-Issues"

## Best Practices

<AccordionGroup>
  <Accordion title="API-Token schützen">
    * Committen Sie Ihr API-Token niemals in die Versionsverwaltung
    * Rotieren Sie Tokens regelmäßig
    * Verwenden Sie Umgebungsvariablen oder sichere Secret-Manager
    * Widerrufen Sie kompromittierte Tokens sofort
  </Accordion>

  <Accordion title="Effektiv filtern">
    * Verwenden Sie Projekt-, Repo-, Branch- und Pull Request-Filter, um Ergebnisse einzugrenzen
    * Beginnen Sie beim Debugging mit einem bestimmten Scan
    * Filtern Sie zur Priorisierung nach Schweregrad
  </Accordion>

  <Accordion title="Performance optimieren">
    * Fordern Sie nur die Daten an, die Sie benötigen
    * Verwenden Sie nach Möglichkeit konkrete Issue- oder Scan-IDs
    * Cachen Sie Ergebnisse, sofern sinnvoll
    * Beachten Sie die Rate Limits
  </Accordion>
</AccordionGroup>

## Authentifizierung

Alle MCP-Tool-Aufrufe erfordern ein gültiges Corgea-API-Token, das im `CORGEA-TOKEN`-Header übergeben wird.

**So erhalten Sie Ihr Token:**

1. Melden Sie sich bei Ihrem Corgea-Konto an
2. Navigieren Sie zu Einstellungen → API-Schlüssel
3. Erstellen Sie ein neues API-Token
4. Kopieren Sie das Token und fügen Sie es in Ihre MCP-Clientkonfiguration ein

<Warning>
  Schützen Sie Ihr API-Token. Jeder, der darauf zugreifen kann, kann Ihre Sicherheitsdaten über die MCP-Schnittstelle abfragen.
</Warning>

## Antwortformat

Alle MCP-Tool-Antworten folgen dem Standard-Corgea-API-Antwortformat:

**Erfolgsantwort:**

```json theme={null}
{
  "status": "ok",
  "data": { }
}
```

**Fehlerantwort:**

```json theme={null}
{
  "status": "error",
  "message": "Description of the error",
  "error": "Detailed error information"
}
```

## Rate Limits

Für MCP-Requests gelten dieselben Rate Limits wie für reguläre API-Requests:

* 100 Anfragen pro Minute pro Token
* 1000 Anfragen pro Stunde pro Token

Wenn Sie die Rate Limits überschreiten, erhalten Sie die Response `429 Too Many Requests`.

## Fehlerbehebung

### Verbindungsprobleme

**Problem:** Keine Verbindung zum MCP-Server möglich

**Lösungen:**

* Überprüfen Sie, ob Ihr API-Token über den `/verify`-Endpunkt gültig ist
* Überprüfen Sie, dass der `CORGEA-TOKEN`-Header korrekt konfiguriert ist
* Stellen Sie sicher, dass Ihr Netzwerk HTTPS-Verbindungen zu corgea.app zulässt

### Authentifizierungsfehler

**Problem:** Responses mit `401 Unauthorized`

**Lösungen:**

* Prüfen Sie, ob Ihr API-Token abgelaufen ist
* Prüfen Sie, ob das Token im `CORGEA-TOKEN`-Header statt im Authorization-Header übergeben wird
* Stellen Sie sicher, dass Ihr Token die erforderlichen Berechtigungen hat

### Leere Ergebnisse

**Problem:** Abfragen liefern keine Daten

**Lösungen:**

* Überprüfen Sie, dass Daten in Ihrem Corgea-Konto vorhanden sind
* Prüfen Sie, ob die Filterparameter (scan\_id, project, repo, branch, pull\_request\_id) korrekt sind
* Stellen Sie sicher, dass Sie die richtige Umgebung abfragen (Multi-Tenant oder Single-Tenant)

## Support

<CardGroup cols={2}>
  <Card title="API-Dokumentation" icon="book" href="/de/api-reference/introduction">
    Weitere Informationen zur Corgea API
  </Card>

  <Card title="Treten Sie unserer Community bei" icon="slack" href="https://corgea-community.slack.com/join/shared_invite/zt-2cjmxat2f-Znvd06nP2gn9RYOSWrZI2A#">
    Hilfe von der Corgea-Community
  </Card>

  <Card title="Authentifizierungsleitfaden" icon="key" href="/de/api-reference/authentication">
    Weitere Informationen zur API-Authentifizierung
  </Card>

  <Card title="MCP-Spezifikation" icon="link" href="https://modelcontextprotocol.io/">
    Offizielle MCP-Dokumentation lesen
  </Card>
</CardGroup>

## Nächste Schritte

1. **Rufen Sie Ihr API-Token ab** aus den Kontoeinstellungen von Corgea
2. **Konfigurieren Sie Ihren MCP-Client** mit der Corgea-Server-URL und dem Token
3. **Testen Sie die Verbindung**, indem Sie Ihren KI-Assistenten nach Ihren Scans fragen
4. **Erkunden Sie Anwendungsfälle** wie Sicherheitsanalyse und Behebung von Schwachstellen

Integrieren Sie Corgeas Sicherheitsinformationen jetzt in Ihren KI-gestützten Entwicklungsworkflow.
