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

# Discord Agent Proxy Nutzungsdokumentation

> Discord Agent Proxy API guide - Ace Data Cloud

Discord Agent Proxy ist ein **eigenständig bereitgestellter** Dienst: Er verwahrt deine eigenen Discord-Kontoanmeldedaten, hält eine dauerhafte Verbindung mit Discord aufrecht und stellt die Funktionen dieses Kontos über zwei Schnittstellen, **MCP** und **REST API**, bereit, damit KI oder Programme Discord in deinem Namen bedienen können.

Der Container enthält **keinerlei KI-Modelle**, er ist nur für die Ausführung zuständig – Aufrufe werden von deinem KI-Client (Claude, Cursor usw.) oder deinem eigenen Programm initiiert.

```
AI 客户端  ──MCP /mcp──┐
                       ├─→ Discord Agent Proxy ──→ Discord
你的程序 ──REST /api───┘      （保管你的账号凭据）
```

## ⚠️ Vor der Nutzung unbedingt lesen

Die automatisierte Bedienung eines **persönlichen Kontos** (self-bot) mit Programmen verstößt gegen die Nutzungsbedingungen von Discord, und es besteht das Risiko, dass das Konto gesperrt wird. Dies ist die grundlegende Voraussetzung dieses Dienstes: Du stellst deine eigenen Kontoanmeldedaten bereit und trägst das Risiko selbst.

**Es wird dringend empfohlen, ein speziell dafür vorgesehenes Zweitkonto zu verwenden und nicht dein Hauptkonto.**

## Dienst bereitstellen

Gehe zu [Konsole → Anwendungen](https://platform.acedata.cloud/console/applications), suche Discord Agent Proxy und erstelle eine Anwendung. Schließe nach der Erstellung zunächst ein Abonnement ab, gehe dann zur Konfigurationsseite, trage deine Discord-Kontoanmeldedaten ein und stelle sie bereit. Die Instanzressourcen werden automatisch von der Plattform konfiguriert, ohne dass eine Spezifikation ausgewählt werden muss.

Nach dem Absenden der Bereitstellung gelangst du zur Anwendungsverwaltungsseite, die dasselbe Layout „Übersicht / Protokolle / Dokumentation“ wie bei der Telegram- und WeChat-Bereitstellung verwendet. „Übersicht“ zeigt den Instanz- und Abonnementstatus an und bestätigt über eine Kontoabfrage, ob Discord verbunden ist; ein normal laufender Container bedeutet nicht zwangsläufig, dass das Konto verbunden ist.

Die Discord-Kontokarte in „Übersicht“ stellt zwei Verbindungsinformationen bereit:

| Element | Beispiel | Zweck |
| - | - | - |
| MCP-Verbindungsadresse | `https://discord-bot-xxxxxxxxxxxx.app.acedata.cloud/mcp` | Im KI-Client konfigurieren |
| Zugriffstoken | `V0p7kAWY...` | Für die Authentifizierung, siehe unten |

### Schnittstellen in der Konsole einsehen und testen

Öffne den Reiter „Dokumentation“ dieser Anwendung, um die Anforderungsparameter, Antwortstrukturen sowie Beispiele für Shell, Python, JavaScript und andere Sprachen für alle 14 REST-Operationen einzusehen. Instanzadresse und Zugriffstoken werden automatisch eingefügt; das Token ist standardmäßig verborgen.

Wähle `GET /api/whoami` und klicke auf „Testen“, um das mit dem Proxy verbundene Konto zu bestätigen. Vorgänge wie das Senden, Bearbeiten oder Löschen von Nachrichten wirken sich auf das echte Discord-Konto aus; bestätige daher vor dem Testen den Inhalt der Anfrage.

„OpenAPI (JSON) herunterladen“ kann die vollständige Schnittstellendefinition exportieren. Die Datei enthält die Instanzadresse, jedoch nicht das Zugriffstoken. Wenn du die Discord-Kontoanmeldedaten wechseln musst, wähle in „Übersicht“ „Erneut bereitstellen“, trage die neuen Anmeldedaten ein und sende sie ab.

### So erhältst du Discord-Kontoanmeldedaten

1. Melde dich im Computerbrowser bei Discord an ([discord.com/app](https://discord.com/app))
2. Drücke `F12`, um die Entwicklertools zu öffnen, und wechsle zum Bereich **Network（网络）**
3. Klicke in Discord beliebig auf einen Kanal und beobachte die Anforderungsliste
4. Öffne eine beliebige Anfrage an `discord.com/api` und suche in **Request Headers（请求头）** das Feld `authorization`
5. Kopiere dessen Wert

Diese Anmeldedaten entsprechen deinem Konto-Anmeldestatus, **teile sie mit niemandem**. Falls sie offengelegt werden, kannst du sie durch eine Passwortänderung in Discord sofort ungültig machen.

## Authentifizierungsmethode

Mit Ausnahme von `/health` und `/readyz` müssen alle Schnittstellen das Zugriffstoken im **Anfrageheader** mitführen:

```
Authorization: Bearer <你的访问令牌>
```

> **Hinweis: Dieser Dienst akzeptiert nur die Authentifizierung über Anfrageheader und unterstützt nicht die Methode, ein Token wie `?token=xxx` an die URL anzuhängen.** Wenn du eine Schnittstellenadresse direkt im Browser öffnest, wird `401 unauthorized` zurückgegeben. Das ist normal und bedeutet nicht, dass die Bereitstellung fehlgeschlagen ist. Um zu bestätigen, ob der Prozess aktiv ist, rufe `/health` auf; um zu bestätigen, ob die Discord-Verbindung Anfragen verarbeiten kann, rufe `/readyz` auf. Beide Prüfungen benötigen keine Authentifizierung. Wenn das Proxy-Zugriffstoken nicht konfiguriert ist, geben geschützte Schnittstellen `503` zurück und werden nicht anonym geöffnet.

## Dienststatus prüfen

```bash theme={null}
curl https://discord-bot-xxxxxxxxxxxx.app.acedata.cloud/health
curl https://discord-bot-xxxxxxxxxxxx.app.acedata.cloud/readyz
```

`/health` zeigt nur an, dass der HTTP-Prozess aktiv ist:

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

`/readyz` zeigt an, ob das Discord Gateway verfügbar ist. Bei normaler Verbindung wird HTTP 200 zurückgegeben:

```json theme={null}
{ "status": "ready", "gateway_ready": true }
```

Während der Verbindung, bei ungültigen Anmeldedaten oder bei einer Verbindungsunterbrechung gibt die direkte Kubernetes-Prüfung des Pods HTTP 503 zurück, und das Instanz-Backend versucht automatisch erneut. In diesem Fall wird der Pod vorübergehend aus dem öffentlichen Service entfernt, sodass nicht garantiert ist, dass dieses Diagnose-JSON über die Instanzdomain gelesen werden kann; prüfe bitte den Deployment-Status in der Konsole und rufe MCP / REST erst nach der Wiederherstellung von Ready auf.

## Im KI-Client verwenden (MCP)

Am Beispiel von Claude Code:

```bash theme={null}
claude mcp add --transport http discord \
  https://discord-bot-xxxxxxxxxxxx.app.acedata.cloud/mcp \
  --header "Authorization: Bearer <你的访问令牌>"
```

Clients wie Cursor, die statische Anfrageheader unterstützen, konfiguriere bitte gemäß ihrer aktuellen Dokumentation mit der Streamable-HTTP-Adresse. Clients, die die folgende Struktur akzeptieren, können diese verwenden:

```json theme={null}
{
  "mcpServers": {
    "discord": {
      "type": "http",
      "url": "https://discord-bot-xxxxxxxxxxxx.app.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer <你的访问令牌>"
      }
    }
  }
}
```

Dies ist kein universelles Konfigurationsformat für alle MCP-Clients. Die Remote-Connectoren von Claude Desktop / Claude.ai werden über die Cloud aufgebaut und lesen keine beliebigen HTTP-Anfrageheader aus der lokalen `claude_desktop_config.json`; wenn derzeit statische Bearer-Anfrageheader benötigt werden, verwende bitte Claude Code oder einen Client, der diese Funktion ausdrücklich unterstützt.

Nach Abschluss der Konfiguration kannst du die KI direkt per natürlicher Sprache anweisen, Discord zu bedienen, zum Beispiel:

> Schau nach, ob ich im Kanal „Projektdiskussion“ neue Nachrichten habe. Wenn jemand nach dem Veröffentlichungsdatum fragt, antworte bitte, dass es diesen Freitag ist.

### Verfügbare Tools

| MCP-Tools | Funktion |
| - | - |
| `discord_whoami` | Anzeigen, welches Konto der aktuelle Agent nutzt |
| `discord_list_guilds` | Alle Server auflisten, denen das Konto beigetreten ist |
| `discord_list_channels` | Kanäle unter einem bestimmten Server auflisten |
| `discord_create_text_channel` | Einen Textkanal erstellen |
| `discord_list_members` | Servermitglieder auflisten |
| `discord_send_message` | Nachricht senden (kann als Antwort auf eine bestimmte Nachricht angegeben werden) |
| `discord_read_messages` | Die neuesten Nachrichten eines Kanals lesen |
| `discord_edit_message` | Eigene gesendete Nachrichten bearbeiten |
| `discord_delete_message` | Nachrichten löschen |
| `discord_search_messages` | Nachrichten innerhalb eines Kanals suchen |
| `discord_add_reaction` | Einer Nachricht eine Emoji-Reaktion hinzufügen |
| `discord_pin_message` | Eine Nachricht anheften |
| `discord_create_dm` | Einen Eins-zu-eins-Privatchat öffnen und die Kanal-ID zurückgeben |
| `discord_send_dm` | Einem bestimmten Benutzer eine Direktnachricht senden |

## Verwendung im Programm (REST API)

Alle REST-Schnittstellen sind unter `/api` eingebunden, der Antwortkörper ist einheitlich `{"data": ...}`, bei Fehlern lautet er `{"error": "..."}`.

### Aktuelles Konto anzeigen

```bash theme={null}
curl https://discord-bot-xxxxxxxxxxxx.app.acedata.cloud/api/whoami \
  -H "Authorization: Bearer <dein Zugriffstoken>"
```

### Nachricht senden

```bash theme={null}
curl -X POST https://discord-bot-xxxxxxxxxxxx.app.acedata.cloud/api/messages \
  -H "Authorization: Bearer <dein Zugriffstoken>" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: <eindeutige Operations-ID für diesen Versand>" \
  -d '{"channel_id": "1234567890", "content": "Hallo"}'
```

Bei einem erneuten Versuch desselben Versands denselben `Idempotency-Key` wiederverwenden, der Prozess gibt das erste Ergebnis zurück, ohne erneut zu senden. Ein Neustart der Instanz leert die In-Memory-Deduplizierungsaufzeichnungen von bis zu 5.000 Einträgen, daher muss der Aufrufer den langfristigen Zustellstatus weiterhin selbst verfolgen.

Der optionale Parameter `reply_to` wird verwendet, um auf eine bestimmte Nachricht zu antworten:

```json theme={null}
{ "channel_id": "1234567890", "content": "Erhalten", "reply_to": "9876543210" }
```

### Nachrichten lesen

```bash theme={null}
curl "https://discord-bot-xxxxxxxxxxxx.app.acedata.cloud/api/channels/1234567890/messages?limit=20" \
  -H "Authorization: Bearer <dein Zugriffstoken>"
```

### Vollständige Schnittstellenliste

| Methode und Pfad | Parameter | Funktion |
| - | - | - |
| `GET /api/whoami` | — | Kontoinformationen des aktuellen Agenten |
| `GET /api/guilds` | — | Liste der Server, denen das Konto beigetreten ist |
| `GET /api/guilds/{guild_id}/channels` | — | Liste der Kanäle unter dem Server |
| `POST /api/guilds/{guild_id}/channels` | `{name}` | Einen Textkanal erstellen |
| `GET /api/guilds/{guild_id}/members` | `?limit=` (Standard 100) | Servermitgliederliste |
| `POST /api/messages` | `{channel_id, content, reply_to?}` | Nachricht senden |
| `GET /api/channels/{channel_id}/messages` | `?limit=` (Standard 50, Maximum 100) | Neueste Nachrichten lesen |
| `GET /api/channels/{channel_id}/messages/search` | `?q=` (erforderlich) `&limit=` (Standard 25) | Nachrichten suchen |
| `PATCH /api/channels/{channel_id}/messages/{message_id}` | `{content}` | Nachricht bearbeiten |
| `DELETE /api/channels/{channel_id}/messages/{message_id}` | — | Nachricht löschen |
| `POST /api/channels/{channel_id}/messages/{message_id}/reactions` | `{emoji}` | Emoji-Reaktion hinzufügen |
| `POST /api/channels/{channel_id}/messages/{message_id}/pin` | — | Nachricht anheften |
| `POST /api/dms` | `{recipient_id}` | Privatchat öffnen, Kanal-ID zurückgeben |
| `POST /api/dms/send` | `{recipient_id, content}` | Direktnachricht senden |

### So erhältst du die Kanal-ID und Benutzer-ID

Öffne im Discord-Client nacheinander **Benutzereinstellungen → Erweiterte Einstellungen** und aktiviere den **Entwicklermodus**. Klicke danach mit der rechten Maustaste auf einen beliebigen Kanal oder Benutzer, im Menü erscheint „ID kopieren“.

Du kannst auch direkt `GET /api/guilds` und `GET /api/guilds/{guild_id}/channels` aufrufen, um sie aufzulisten.

## Häufige Fragen

**Rückgabe `401 unauthorized`**

Das Zugriffstoken ist nicht korrekt oder wurde über `?token=` übergeben. Bitte stelle sicher, dass das Token über den Anfrage-Header `Authorization: Bearer <Token>` übergeben wird und mit dem in der Konsole angezeigten übereinstimmt.

**Rückgabe `503`**

Die Verbindung zu Discord wurde noch nicht hergestellt. Rufe zuerst `/readyz` auf, um `gateway_ready` zu prüfen. Wenn es längere Zeit `false` ist, sind meist die Kontoanmeldedaten ungültig; bitte erneut abrufen und erneut bereitstellen.

**Rückgabe `403` oder `404`**

Das Konto selbst verfügt nicht über die entsprechenden Berechtigungen (z. B. befindet es sich nicht auf diesem Server oder darf in diesem Kanal nicht sprechen), oder die ID wurde falsch eingegeben. Diese Fehler stammen von Discord und sind kein Problem des Proxy-Dienstes.

**Rückgabe `429`**

Das Discord-Frequenzlimit wurde ausgelöst, das Feld `retry_after` in der Antwort gibt die empfohlene Wartezeit in Sekunden an. Bitte reduziere die Aufruffrequenz.

**Konto wird nach dem Senden einer Nachricht gesperrt**

Wie zuvor erwähnt, verstoßen automatisierte Aktionen mit persönlichen Konten gegen die Discord-Nutzungsbedingungen. Bitte verwende ein separates Zweitkonto und kontrolliere die Operationsfrequenz sowie vermeide sensible Verhaltensweisen wie Massenversand.

## Validierungsumfang

Der Produktions-Smoke-Test vom 1. August 2026 verwendete ein separates Konto zur Validierung von Konto, Servern, Kanälen, Mitgliedern, Lesen von Nachrichten, Suche, Senden, Bearbeiten, Reagieren und Löschen. Automatisierte Tests decken Authentifizierung, Parameterprüfung, Fehlerzuordnung und die Signaturen der aktuellen Abhängigkeitsbibliothek ab; nach Änderungen an Worker oder Chart sollte der Smoke-Test weiterhin erneut ausgeführt werden, historische Validierungen dürfen nicht als Beweis für fortlaufende Verfügbarkeit betrachtet werden.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.