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
missingAssetsnie jest puste albo jestwarning. 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
- Wywołaj
create_upload_linkz id prezentacji. - 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). curl -Tzipa nauploadUrl.- Wywołaj
get_presentation_files. GdymissingAssetsjest puste, podajviewUrl.
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.htmldo argumentów na kliencie lokalnym - Nie wołaj
list_presentations, żeby zgadnąć prezentację, ani przed pierwszym uploadem - Nie filtruj folderu po
html/css/jsi nie ignoruj obrazków - Nie podawaj
viewUrlbezget_presentation_filespo ostatnim uploadzie
Jeśli w katalogu narzędzi nie ma create_upload_link, przeładuj serwer MCP Prezzly. Zobacz Rozwiązywanie problemów.