> ## 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.

# Dokumentacja użytkowania Discord Agent Proxy

> Discord Agent Proxy API guide - Ace Data Cloud

Discord Agent Proxy to usługa wdrażana **niezależnie**: przechowuje dane uwierzytelniające twojego własnego konta Discord, utrzymuje stałe połączenie z Discord i udostępnia możliwości tego konta przez dwa interfejsy: **MCP** i **REST API**, umożliwiając AI lub programom obsługę Discord w twoim imieniu.

Kontener **nie zawiera żadnego modelu AI**, odpowiada jedynie za wykonywanie — wywołania są inicjowane przez twojego klienta AI (Claude, Cursor itd.) lub własny program.

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

## ⚠️ Koniecznie przeczytaj przed użyciem

Automatyzowanie **osobistego konta** (self-bot) za pomocą programów narusza warunki świadczenia usług Discord, a konto może zostać zablokowane. Jest to nieodłączne założenie tej usługi: podajesz dane uwierzytelniające własnego konta i samodzielnie ponosisz ryzyko.

**Zdecydowanie zaleca się użycie specjalnie utworzonego konta dodatkowego, a nie konta głównego.**

## Wdrażanie usługi

Wejdź do [konsoli → aplikacje](https://platform.acedata.cloud/console/applications), znajdź Discord Agent Proxy i utwórz aplikację. Po utworzeniu najpierw aktywuj subskrypcję, następnie przejdź do strony konfiguracji, wprowadź dane uwierzytelniające swojego konta Discord i wdroż usługę. Zasoby instancji są konfigurowane automatycznie przez platformę, bez konieczności wyboru specyfikacji.

Po przesłaniu wdrożenia przejdziesz na stronę zarządzania aplikacją, z takim samym układem „Przegląd / Logi / Dokumentacja” jak przy wdrażaniu Telegrama i WeChat. „Przegląd” pokazuje status instancji i subskrypcji oraz potwierdza przez zapytanie do konta, czy Discord jest połączony; poprawne działanie kontenera nie oznacza, że konto na pewno jest połączone.

Karta konta Discord w sekcji „Przegląd” udostępnia dwie informacje dotyczące dostępu:

| Element | Przykład | Zastosowanie |
| - | - | - |
| Adres dostępu MCP | `https://discord-bot-xxxxxxxxxxxx.app.acedata.cloud/mcp` | Konfiguracja w kliencie AI |
| Token dostępu | `V0p7kAWY...` | Do uwierzytelniania, patrz poniżej |

### Przeglądanie i testowanie interfejsów w konsoli

Otwórz zakładkę „Dokumentacja” tej aplikacji, aby zobaczyć parametry żądań, strukturę odpowiedzi wszystkich 14 operacji REST, a także przykłady w językach Shell, Python, JavaScript i innych. Adres instancji oraz token dostępu zostaną wypełnione automatycznie; token jest domyślnie ukryty.

Wybierz `GET /api/whoami` i kliknij „Testuj”, aby potwierdzić konto, z którym połączony jest proxy. Operacje takie jak wysyłanie, edytowanie lub usuwanie wiadomości będą wykonywane na rzeczywistym koncie Discord, dlatego przed testowaniem potwierdź zawartość żądania.

„Pobierz OpenAPI (JSON)” umożliwia wyeksportowanie pełnej definicji interfejsu. Plik zawiera adres instancji, ale nie zawiera tokenu dostępu. Jeśli chcesz zmienić dane uwierzytelniające konta Discord, wybierz „Wdróż ponownie” w sekcji „Przegląd”, wprowadź nowe dane uwierzytelniające i prześlij je.

### Jak uzyskać dane uwierzytelniające konta Discord

1. Zaloguj się do Discord w przeglądarce na komputerze ([discord.com/app](https://discord.com/app))
2. Naciśnij `F12`, aby otworzyć narzędzia deweloperskie, i przejdź do panelu **Network (Sieć)**
3. Kliknij dowolny kanał w Discord i obserwuj listę żądań
4. Otwórz dowolne żądanie wysłane do `discord.com/api` i znajdź pole `authorization` w sekcji **Request Headers (Nagłówki żądania)**
5. Skopiuj jego wartość

Ten ciąg poświadczeń jest równoważny stanowi logowania na twoje konto, **nie udostępniaj go nikomu**. W przypadku wycieku zmiana hasła w Discord spowoduje jego natychmiastowe unieważnienie.

## Sposób uwierzytelniania

Z wyjątkiem `/health` i `/readyz`, wszystkie interfejsy wymagają przekazania tokenu dostępu w **nagłówku żądania**:

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

> **Uwaga: ta usługa akceptuje uwierzytelnianie wyłącznie przez nagłówek żądania i nie obsługuje sposobu dołączania tokenu do adresu URL, takiego jak `?token=xxx`.** Bezpośrednie otwarcie adresu interfejsu w przeglądarce zwróci `401 unauthorized`; jest to normalne zjawisko i nie oznacza niepowodzenia wdrożenia. Aby potwierdzić, że proces działa, odwiedź `/health`; aby potwierdzić, czy połączenie Discord może obsłużyć żądania, odwiedź `/readyz`. Oba te sondowania nie wymagają uwierzytelniania. Gdy token dostępu proxy nie jest skonfigurowany, chronione interfejsy zwracają `503` i nie są udostępniane anonimowo.

## Sprawdzanie statusu usługi

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

`/health` oznacza jedynie, że proces HTTP jest aktywny:

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

`/readyz` oznacza, czy Discord Gateway jest dostępny. Gdy połączenie działa prawidłowo, zwraca HTTP 200:

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

Podczas łączenia, gdy dane uwierzytelniające są nieprawidłowe lub połączenie zostało przerwane, bezpośrednie sondowanie Poda przez Kubernetes zwraca HTTP 503, a zaplecze instancji automatycznie ponawia próby. W tym czasie Pod zostanie tymczasowo usunięty z publicznej usługi Service, dlatego nie ma gwarancji, że będzie można odczytać ten diagnostyczny JSON przez domenę instancji; sprawdź status Deployment w konsoli, a po przywróceniu stanu Ready ponownie wywołaj MCP / REST.

## Używanie w kliencie AI (MCP)

Na przykładzie Claude Code:

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

W przypadku klientów takich jak Cursor, które obsługują statyczne nagłówki żądań, skonfiguruj adres Streamable HTTP zgodnie z ich aktualną dokumentacją. Klienci akceptujący poniższą strukturę mogą użyć:

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

Nie jest to uniwersalny format konfiguracji dla wszystkich klientów MCP. Zdalne konektory Claude Desktop / Claude.ai są ustanawiane z chmury i nie odczytują żadnych nagłówków żądań HTTP z lokalnego pliku `claude_desktop_config.json`; jeśli obecnie potrzebujesz statycznego nagłówka Bearer, użyj Claude Code lub klienta wyraźnie obsługującego tę funkcję.

Po zakończeniu konfiguracji możesz bezpośrednio wydawać AI polecenia w języku naturalnym, aby obsługiwało Discord, na przykład:

> Sprawdź, czy mam nowe wiadomości na kanale „dyskusja o projekcie”, a jeśli ktoś zapytał o datę publikacji, pomóż mi odpowiedzieć, że w ten piątek.

### Dostępne narzędzia

| Narzędzie MCP | Funkcja |
| - | - |
| `discord_whoami` | Sprawdzenie, które konto jest obecnie używane przez agenta |
| `discord_list_guilds` | Wyświetlenie wszystkich serwerów, do których dołączyło konto |
| `discord_list_channels` | Wyświetlenie kanałów na danym serwerze |
| `discord_create_text_channel` | Utworzenie kanału tekstowego |
| `discord_list_members` | Wyświetlenie członków serwera |
| `discord_send_message` | Wysłanie wiadomości (można wskazać odpowiedź na konkretną wiadomość) |
| `discord_read_messages` | Odczytanie ostatnich wiadomości z kanału |
| `discord_edit_message` | Edytowanie własnej wysłanej wiadomości |
| `discord_delete_message` | Usunięcie wiadomości |
| `discord_search_messages` | Wyszukiwanie wiadomości w kanale |
| `discord_add_reaction` | Dodanie reakcji emoji do wiadomości |
| `discord_pin_message` | Przypięcie wiadomości |
| `discord_create_dm` | Otwarcie prywatnej rozmowy jeden na jeden, zwraca ID kanału |
| `discord_send_dm` | Wysłanie prywatnej wiadomości do użytkownika |

## Użycie w programie (REST API)

Wszystkie interfejsy REST są dostępne pod `/api`, treść odpowiedzi ma ujednoliconą postać `{"data": ...}`, a w przypadku błędu `{"error": "..."}`.

### Sprawdzenie bieżącego konta

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

### Wysłanie wiadomości

```bash theme={null}
curl -X POST https://discord-bot-xxxxxxxxxxxx.app.acedata.cloud/api/messages \
  -H "Authorization: Bearer <twój_token_dostępu>" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: <unikalny_ID_operacji_dla_tego_wysłania>" \
  -d '{"channel_id": "1234567890", "content": "Cześć"}'
```

Podczas ponawiania tego samego wysłania użyj ponownie tego samego `Idempotency-Key`, a proces zwróci pierwszy wynik bez ponownego wysyłania. Ponowne uruchomienie instancji wyczyści maksymalnie 5 000 przechowywanych w pamięci rekordów deduplikacji, dlatego wywołujący nadal musi samodzielnie śledzić długoterminowy status dostarczania.

Opcjonalny parametr `reply_to` służy do odpowiedzi na wskazaną wiadomość:

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

### Odczytywanie wiadomości

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

### Pełna lista interfejsów

| Metoda i ścieżka | Parametry | Funkcja |
| - | - | - |
| `GET /api/whoami` | — | Informacje o koncie używanym przez agenta |
| `GET /api/guilds` | — | Lista serwerów, do których dołączyło konto |
| `GET /api/guilds/{guild_id}/channels` | — | Lista kanałów na serwerze |
| `POST /api/guilds/{guild_id}/channels` | `{name}` | Utworzenie kanału tekstowego |
| `GET /api/guilds/{guild_id}/members` | `?limit=` (domyślnie 100) | Lista członków serwera |
| `POST /api/messages` | `{channel_id, content, reply_to?}` | Wysłanie wiadomości |
| `GET /api/channels/{channel_id}/messages` | `?limit=` (domyślnie 50, maks. 100) | Odczytanie ostatnich wiadomości |
| `GET /api/channels/{channel_id}/messages/search` | `?q=` (wymagane) `&limit=` (domyślnie 25) | Wyszukiwanie wiadomości |
| `PATCH /api/channels/{channel_id}/messages/{message_id}` | `{content}` | Edytowanie wiadomości |
| `DELETE /api/channels/{channel_id}/messages/{message_id}` | — | Usunięcie wiadomości |
| `POST /api/channels/{channel_id}/messages/{message_id}/reactions` | `{emoji}` | Dodanie reakcji emoji |
| `POST /api/channels/{channel_id}/messages/{message_id}/pin` | — | Przypięcie wiadomości |
| `POST /api/dms` | `{recipient_id}` | Otwarcie prywatnej rozmowy, zwraca ID kanału |
| `POST /api/dms/send` | `{recipient_id, content}` | Wysłanie prywatnej wiadomości |

### Jak uzyskać ID kanału i ID użytkownika

W kliencie Discord kolejno otwórz **Ustawienia użytkownika → Zaawansowane**, a następnie włącz **Tryb dewelopera**. Następnie kliknij prawym przyciskiem myszy dowolny kanał lub użytkownika — w menu pojawi się opcja „Kopiuj ID”.

Możesz także bezpośrednio wywołać `GET /api/guilds` oraz `GET /api/guilds/{guild_id}/channels`, aby je wyliczyć.

## Częste pytania

**Zwracane jest `401 unauthorized`**

Token dostępu jest nieprawidłowy albo został przekazany za pomocą `?token=`. Upewnij się, że token jest przekazywany w nagłówku żądania `Authorization: Bearer <token>` i jest zgodny z tym wyświetlanym w konsoli.

**Zwracane jest `503`**

Połączenie z Discordem nie zostało jeszcze ustanowione. Najpierw odwiedź `/readyz`, aby sprawdzić `gateway_ready`; jeśli przez długi czas ma wartość `false`, najczęściej dane uwierzytelniające konta wygasły — pobierz je ponownie i wdroż ponownie.

**Zwracane jest `403` lub `404`**

Samo konto nie ma odpowiednich uprawnień (na przykład nie znajduje się na tym serwerze lub nie ma prawa pisać na tym kanale) albo ID zostało wpisane nieprawidłowo. Tego typu błędy pochodzą z Discorda, a nie są problemem usługi pośredniczącej.

**Zwracane jest `429`**

Został wywołany limit częstotliwości Discorda; pole `retry_after` w odpowiedzi podaje zalecaną liczbę sekund oczekiwania. Zmniejsz częstotliwość wywołań.

**Konto zostaje zablokowane po wysłaniu wiadomości**

Jak wspomniano wcześniej, automatyzowanie operacji na osobistych kontach narusza warunki świadczenia usług Discorda. Używaj dedykowanego dodatkowego konta oraz kontroluj częstotliwość operacji i unikaj wrażliwych zachowań, takich jak masowe wysyłanie wiadomości.

## Zakres weryfikacji

Produkcyjny smoke test z 1 sierpnia 2026 r. przeprowadzony przy użyciu dedykowanego konta zweryfikował konto, serwery, kanały, członków, odczytywanie wiadomości, wyszukiwanie, wysyłanie, edytowanie, reakcje i usuwanie. Testy automatyczne obejmują uwierzytelnianie, walidację parametrów, mapowanie błędów oraz sygnatury bieżących bibliotek zależności; po zmianach workera lub chartu należy nadal ponownie wykonać smoke test — historycznej weryfikacji nie można traktować jako dowodu ciągłej dostępności.


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