Przejdź do treści
Dokumentacja

Publikuj i aktualizuj prezentację

Ostatnia aktualizacja: 2026-09-08

Dla nowej prezentacji wywołaj create_presentation raz. Nie listuj najpierw biblioteki. Nie wgrywaj zaślepki.

kind to presentation (slajdy) albo dashboard (jedna przewijana strona). HTML tego nie ustala. Zobacz Slajdy i dashboardy.

Nigdy nie wkładaj zawartości obrazków ani fontów do argumentów narzędzi MCP.

Klienty czatowe (Claude.ai, bez dysku)

Wyślij files z jednym samodzielnym index.html. CSS i JS trzymaj w tym HTML. Obrazki jako adresy https albo małe data URI. Nie buduj zipa w przeglądarce. add_files z url może ściągnąć zdalny asset.

create_presentation({ "title": "Q1 Review", "kind": "presentation", "files": [{ "path": "index.html", "content": "<!doctype html>..." }] })

Potem podaj użytkownikowi viewUrl. Jeśli missingAssets nie jest puste, dociągnij te URL-e przez add_files albo powiedz, że prezentacja jest niekompletna.

Klienty lokalne (Cursor, Claude Code, pliki na dysku)

Wywołaj create_presentation tylko z tytułem i kind. Nie wklejaj index.html ani binariów do narzędzia.

create_presentation({ "title": "Q1 Review", "kind": "dashboard" })

Odczytaj uploadUrl. Najlepiej jeden zip całego folderu (serwer rozpakuje pojedynczy folder nadrzędny). Użyj zipa, gdy ścieżka ma spacje albo znaki spoza ASCII (curl -T nie koduje URL-a).

cd <dir> && zip -r /tmp/deck.zip . -x '.git/*' '.cursor/*' '.agents/*' 'node_modules/*' 'skills-lock.json' '*.zip' '*.code-workspace'
curl -sS -T /tmp/deck.zip -H 'Content-Type: application/zip' -w '\n%{http_code}\n' "<uploadUrl>"

Albo najpierw index.html, potem każdą pozostałą ścieżkę ASCII:

curl -sS -T index.html "<uploadUrl>index.html"
curl -sS -T "assets/hero.webp" "<uploadUrl>assets/hero.webp"

curl -T na uploadUrl (ze slashem na końcu) jest w porządku: serwer rozpakuje zip nawet gdy curl dopisze deck.zip do ścieżki.

Czytaj missingAssets z każdego JSON-a. Powtarzaj, aż lista będzie pusta. Gdy uploadUrl wygaśnie, wywołaj create_upload_link i kontynuuj. Na końcu get_presentation_files i podaj viewUrl.

Uwaga: Nie mów użytkownikowi, że upload jest skończony, gdy missingAssets nie jest puste albo jest warning. Nie spłaszczaj zipa (zip -j). Zachowaj względne ścieżki.

Nowa prezentacja vs rewizja

create_presentation tworzy nową prezentację. add_revision / zip na create_upload_link to nowa wersja tej samej prezentacji. Historia, linki i komentarze zostają.

Rewizja, gdy użytkownik wskazał prezentację, wkleił URL albo id Prezzly, albo powiedział update / kolejna rewizja. Nowa prezentacja, gdy prosi o osobną kopię. Gdy nie jesteś pewien, zapytaj.

Edycja lokalna

  1. Wywołaj create_upload_link z id prezentacji.
  2. Spakuj to, co się zmieniło. Sama zmiana tekstu może być zipem index.html. Wcześniej wgrane pliki, do których HTML nadal się odwołuje, są ponownie użyte (reusedAssets).
  3. curl -T zipa na uploadUrl.
  4. Wywołaj get_presentation_files. Gdy missingAssets jest puste, podaj viewUrl.

Pojedynczy PUT index.html na istniejącą prezentację jest odrzucany (400). Zip na uploadUrl to nowa rewizja.

Edycja w czacie

add_revision z files zawierającymi prawdziwy index.html. Pliki, do których HTML nadal się odwołuje, są ponownie użyte. Nigdy nie wysyłaj zaślepki, żeby dostać uploadUrl. Do tego służy create_upload_link.

add_files dopisuje mały tekst albo zdalny https URL. Istniejące ścieżki są odrzucane; żeby je zastąpić, zrób zip nowej rewizji.

restore_revision cofa zmianę. Rewizje to historia.

Odpowiedzi uploadu

Status Sygnał w body Co zrobić
200 missingAssets niepuste Wgraj wymienione ścieżki. Jeszcze nie koniec.
200 missingAssets: [] get_presentation_files, potem viewUrl.
200 jest warning Zareaguj na warning zanim skończysz.
401 podpowiedź create_upload_link Token wygasł. create_upload_link, retry.
402 code: plan_limit Limit miejsca albo rozmiaru uploadu. Powiedz użytkownikowi; nie ponawiaj.
409 najpierw index.html albo zip Pusta prezentacja. Najpierw HTML albo zip.
409 files + missingAssets Ścieżka istnieje z innymi bajtami. Zastąp zipem / add_revision.
400 index.html nie da się tak dodać Zastąp HTML zipem (lokalnie) albo add_revision files (czat).

Ponowny curl -T tych samych bajtów jest bezpieczny: wraca 200, nie 409.

Dodaj -w '\n%{http_code}\n', żeby widzieć status. curl -sS wypisuje JSON przy 4xx, więc czytaj body, nie tylko kod wyjścia.

Nie rób tego

  • Nie wgrywaj zaślepki, placeholdera ani pustej skorupy z obietnicą poprawki
  • Nie wkładaj obrazka, fontu, zipa ani lokalnego index.html do argumentów na kliencie lokalnym
  • Nie wołaj list_presentations, żeby zgadnąć prezentację, ani przed pierwszym uploadem
  • Nie filtruj folderu po html/css/js i nie ignoruj obrazków
  • Nie podawaj viewUrl bez get_presentation_files po ostatnim uploadzie

Jeśli w katalogu narzędzi nie ma create_upload_link, przeładuj serwer MCP Prezzly. Zobacz Rozwiązywanie problemów.