Większość błędów MCP to wygasły token uploadu, stary katalog narzędzi albo limit planu. Samo połączenie zwykle działa.

## Upload zwrócił 401

`uploadUrl` żyje około 30 minut. Wywołaj `create_upload_link` i kontynuuj `curl -T`. Nie musisz logować się ponownie.

Jeśli każde wywołanie MCP wraca 401, sesja OAuth albo klucz API nie żyje. Połącz się znowu w kliencie albo wygeneruj nowy klucz na [Connections](https://app.prezzly.ai/connections).

## W kliencie nie ma `create_upload_link`

Katalog jest nieaktualny. Przeładuj serwer Prezzly MCP (Cursor: Settings → MCP → przełącz serwer). Nie wysyłaj placeholdera przez `add_revision`, żeby dostać `uploadUrl`.

## 402 `plan_limit`

Limit miejsca albo rozmiaru jednego uploadu. Powiedz użytkownikowi; nie ponawiaj. Na darmowym planie domyślnie 10 MB na upload i 250 MB przestrzeni. Porównaj plany w aplikacji.

## 409 ścieżka istnieje / pusta prezentacja

- "Najpierw `index.html` albo zip": prezentacja nie ma jeszcze HTML. Wgraj HTML albo zip zanim pojedyncze pliki.
- `files` plus `missingAssets`: ta ścieżka już istnieje z innymi bajtami. Zastąp ją zipem na `uploadUrl` albo `add_revision`, nie drugim `add_files`.

## 400 na `index.html`

Pojedynczy PUT `index.html` na istniejącą prezentację jest odrzucany. Klienty lokalne pakują `index.html` (i nowe pliki binarne) do zipa na `uploadUrl`. Klienty czatowe wysyłają prawdziwy HTML przez `add_revision`.

## OAuth się nie uruchamia

Sprawdź, czy URL to `https://mcp.prezzly.ai`. Klient musi mówić Streamable HTTP, nie stdio. Jeśli przyjmuje tylko token, użyj klucza Bearer z Connections.

Blokada wyskakujących okien może zjeść okno logowania Prezzly. Zezwól na popup i spróbuj ponownie.

## Agent wrzucił obrazki do argumentów narzędzi

[Zainstaluj skill](/pl/docs/skills/install/). Na kliencie lokalnym `create_presentation` bierze tylko tytuł i kind; binaria idą przez `curl -T`. Klienty czatowe powinny używać URL-i https albo `add_files` z `url`.

## Slajdy nie przechodzą

Dokładnie jeden element musi mieć jednocześnie `slide` i `active`. CSS musi ukrywać nieaktywne slajdy. Nie dodawaj własnego handlera ArrowLeft / ArrowRight, chyba że chcesz przejąć nawigację. Zobacz [Slajdy i dashboardy](/pl/docs/html-conventions/).

## Dashboard nie ma listy sekcji

Oznacz główne bloki przez `id` albo `data-prezzly-section`. Same `h1`–`h3` to fallback. Sprawdź, czy przy uploadzie `kind` było `dashboard`.

## `missingAssets` nie spada do zera

Każda względna ścieżka z HTML musi istnieć na dysku i być wgrana pod tą samą ścieżką. Pomijaj `https:`, `data:`, `#` i `mailto:`. Ścieżki ze spacjami i spoza ASCII wymagają zipa, nie surowego `curl -T`.

## Nowa rewizja jest za mała

Porównaj `revision.totalBytes` z poprzednią rewizją z `get_presentation`. Jeśli skurczyła się bez powodu, wywołaj `restore_revision`.

Więcej kodów statusu: [Publikuj i aktualizuj prezentację](/pl/docs/mcp/upload/).