Codefluss Logo

Authentifizierung

Authentifizierung

Der CODEFLUSS MCP Server unterstützt zwei Authentifizierungsmethoden: Bearer Token (API-Keys) und Session Cookies. Beide Methoden können je nach Anwendungsfall verwendet werden.

Dual-Auth System

MethodeAnwendungsfallHeader/Cookie
Bearer TokenMCP-Clients, API-IntegrationenAuthorization: Bearer <token>
Session CookieBrowser-basierte Anwendungencf_session=<session_id>

Bearer Token (API-Keys)

API-Keys sind die empfohlene Methode fĂĽr MCP-Client-Integrationen.

API-Key Formate

cf_live_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Production cf_test_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Staging/Test
PräfixUmgebungVerwendung
cf_live_ProductionLive-Daten, echte Projekte
cf_test_StagingTestdaten, Entwicklung

Header-Format

Authorization: Bearer cf_live_sk_1234567890abcdef

Beispiel: cURL

curl -X POST https://app.codefluss.io/api/mcp \ -H "Content-Type: application/json" \ -H "Authorization: Bearer cf_live_sk_1234567890abcdef" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {} }'

Beispiel: JavaScript/TypeScript

const response = await fetch('https://app.codefluss.io/api/mcp', { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${process.env.CODEFLUSS_API_KEY}`, }, body: JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'tools/list', params: {}, }), }); const result = await response.json(); console.log(result);

Beispiel: Python

import requests response = requests.post( 'https://app.codefluss.io/api/mcp', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer cf_live_sk_1234567890abcdef', }, json={ 'jsonrpc': '2.0', 'id': 1, 'method': 'tools/list', 'params': {}, } ) print(response.json())

Session-basierte Authentifizierung wird automatisch verwendet, wenn ein Benutzer im CODEFLUSS Dashboard eingeloggt ist.

cf_session=eyJhbGciOiJIUzI1NiIs...

Verwendung in fetch (Browser)

// Credentials werden automatisch mitgesendet const response = await fetch('/api/mcp', { method: 'POST', credentials: 'include', // Wichtig fĂĽr Cookie-Auth headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'list_projects', params: {}, }), });

API-Key Management

Key erstellen

  1. Dashboard → Einstellungen → API Keys
  2. Neuen API-Key erstellen klicken
  3. Namen vergeben (zur Identifikation)
  4. Optional: Ablaufdatum setzen
  5. Key kopieren und sicher speichern

Key-Eigenschaften

EigenschaftBeschreibung
NameFrei wählbar, zur Identifikation
Präfixcf_live_ oder cf_test_
AblaufdatumOptional, Standard: kein Ablauf
BerechtigungenAktuell: voller Zugriff auf eigene Projekte
Letzte NutzungWird automatisch aktualisiert

Key widerrufen

Dashboard → Einstellungen → API Keys → [Key auswählen] → Widerrufen

Warnung: Ein widerrufener Key kann nicht wiederhergestellt werden. Du musst einen neuen Key erstellen.

Sicherheitsempfehlungen

API-Keys sicher speichern

# Umgebungsvariablen verwenden export CODEFLUSS_API_KEY="cf_live_sk_..." # .env Datei (nicht committen!) CODEFLUSS_API_KEY=cf_live_sk_...

.gitignore Eintrag

# Environment files .env .env.local .env.*.local # API Keys **/api-keys.json

Key-Rotation

Wir empfehlen, API-Keys regelmäßig zu rotieren:

  1. Neuen Key erstellen
  2. Anwendungen aktualisieren
  3. Alten Key widerrufen

Fehler-Responses

UngĂĽltiger oder fehlender Token

{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32001, "message": "Authentication failed", "data": { "reason": "Invalid or missing API key" } } }

Abgelaufener Token

{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32001, "message": "Authentication failed", "data": { "reason": "API key has expired" } } }

Widerrufener Token

{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32001, "message": "Authentication failed", "data": { "reason": "API key has been revoked" } } }

Rate Limiting

API-Anfragen sind rate-limited, um die Stabilität des Dienstes zu gewährleisten:

PlanRequests/MinuteRequests/Tag
Free601.000
Pro30010.000
EnterpriseUnbegrenztUnbegrenzt

Bei Überschreitung erhältst du:

{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32000, "message": "Rate limit exceeded", "data": { "retryAfter": 60 } } }

Nächste Schritte