MCP tool reference
Every tool the PanelWave MCP server offers to AI assistants — what it does, the permission it needs, and whether it changes your work.
The PanelWave MCP server offers 83 tools. An assistant only sees the tools your connection's permissions allow; your team role and plan limits still apply. Tools marked Asks first remove or publish something that is hard to undo, so the assistant asks you to confirm before it runs them. Tools marked asks first when risky ask only for their risky variants, such as publishing to production.
Permissions
| Permission | Granted by default | Lets the assistant |
|---|---|---|
works:read | Yes | Read your works: structure, panels, characters, variables, graph, validation reports and translations. |
works:write | Yes | Create, change, reorder and delete works, chapters, pages, panels, balloons, hotspots, characters, variables and graph edges. |
assets:read | Yes | List your uploaded images, videos and audio and view their thumbnails. |
assets:write | Yes | Upload, replace, organise and delete assets and attach artwork to panels. |
localization:write | Yes | Add languages, edit translations and start machine translation or text-to-speech. |
publish | Yes | Run validation fixes, publish previews and releases, and roll back. |
team:read | Yes | See your teams, plan limits and credit balance. |
analytics:read | No | Read reader analytics of your works. |
Session & discovery
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_meta_capabilities | List the vocabulary for authoring PanelWave works: page formats with pixel frames, balloon kinds, placement presets, page templates, hotspot actions, variable types and the gateway lint codes. | None | Reads |
pw_meta_whoami | Show the signed-in PanelWave user, their teams with role and plan limits, the default team for new works, and this connection's credential type and scopes. | None | Reads |
pw_meta_explain_permissions | Explain whether you can use a tool (scopes of this connection) and, with a workId, what your role on that work allows (read-only works, suspended teams). | None | Reads |
Teams & plans
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_teams_get_plan | Show a team's plan, its limits (publications, panels per work, locales, seats, storage) and current usage. | team:read | Reads |
Works
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_works_list | List the graphic-novel works of your teams (newest activity first), with formats, locales and counts. | works:read | Reads |
pw_works_get | Get one work with its properties: title, description, status, team, locales, page formats, age rating, tags, typography defaults, cover and whether you can edit it. | works:read | Reads |
pw_works_get_outline | The structure of a work in one call: chapters → pages per format (with their panel order) → panel summaries (title, friendly id/key, artwork, balloon and hotspot counts, which pages place it) plus lint warnings such as chapters that are not playable or panels without artwork. | works:read | Reads |
pw_works_get_manifest | Build the work's PanelWave manifest (panelwave.json, schema 1.x) as the player would receive it. | works:read | Reads |
pw_works_create_from_outline | Create a complete new work in one call from an outline (schema: resource panelwave://schema/outline): title, locales, page formats, characters, chapters → panels with titles, scene descriptions and speech balloons, optional hotspots/choices and variables. | works:write | Changes |
pw_works_create | Create an empty work (title, locales, page formats, age rating, tags, reading direction) in one of your teams, seeded with "Chapter 1" and one empty page per format. | works:write | Changes |
pw_works_update | Rename a work (title per locale; other locales are kept), change its slug or its status (draft, review, published, archived). | works:write | Changes |
pw_works_update_properties | Change work properties section by section: metadata (name, description, series, issue, creators, publisher, releaseDate, ageRating, tags, copyright, license, coverAssetId), typography (merged into the current settings, e.g. | works:write | Changes |
pw_works_set_formats | Set the page formats a work is produced in (and optionally the default format). | works:write | Changes |
pw_works_trash | Move a work to the trash (restorable with pw_works_restore until the trash is emptied). | works:write | Asks first |
pw_works_restore | Restore a work from the trash (see pw_works_list { includeTrashed: true }). | works:write | Changes |
Chapters
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_chapters_list | List the chapters of a work in reading order with panel counts, pages per format and the entry panel. | works:read | Reads |
pw_chapters_create_from_outline | Append chapters to an existing work from outline chapters (same shape as in pw_works_create_from_outline): panels with titles, descriptions and balloons, optional artwork per panel (assetId = asset id, friendly id or file name of an image/video in this work — it becomes the background and the placements fit its aspect), hotspots and choices. | works:write | Changes |
pw_chapters_create | Add an empty chapter to a work (at the end, or at a 0-based position), seeded with one empty page per page format of the work. | works:write | Changes |
pw_chapters_update | Rename a chapter (title per locale; other locales are kept) or set its entry panel (UUID, friendly id or key of a panel of this chapter). | works:write | Changes |
pw_chapters_reorder | Set the reading order of all chapters of a work (pass every chapter id exactly once). | works:write | Changes |
pw_chapters_delete | Delete a chapter with all its panels, pages and graph edges. | works:write | Asks first |
Pages
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_pages_list | List the pages of a chapter (one sequence per page format) with their panel reading order. | works:read | Reads |
pw_pages_get | Get one page: format, template, the panels in reading order with their placements (normalized to the page frame), background and transitions. | works:read | Reads |
pw_pages_create | Add a page in one format to a chapter, optionally showing panels of that chapter: layout single (one panel, centred, fitted to its artwork), grid (deterministic grid) or explicit placements (normalized to the page frame). | works:write | Changes |
pw_pages_update | Change a page’s title (per locale), layout template, visual settings (background color #RRGGBB, margins in px), transitions (in/out) or production status and notes. | works:write | Changes |
pw_pages_set_layout | Replace which panels a page shows and where: panels = [{ panel (UUID, friendly id or key of this chapter), placement {x,y,w,h,z?,r?} normalized to the page frame }] in reading order (or give readingOrder separately). | works:write | Changes |
pw_pages_reorder | Set the order of the pages of one format in a chapter (pass every page id of that format exactly once). | works:write | Changes |
pw_pages_move | Move a page (one format) to another chapter of the same work; the panels it shows move along (they are detached from the other formats’ pages of the old chapter). | works:write | Changes |
pw_pages_delete | Delete one page (one format). | works:write | Asks first |
pw_pages_compose | Re-lay out one page format of a chapter: replace that format’s pages by pages composed from the chapter’s panels in reading order — auto (one panel per page on mobile-portrait and video-16-9, grids elsewhere: square 2, tablet / desktop / flex / landscape print 4, portrait print 6, bigscreen 8), one-panel-per-page, a grid of n ({"grid": n}) or manual — with page breaks after a decision and before each branch and rejoin. | works:write | Asks first |
Panels
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_panels_list | List the panels of a chapter (or of one page, in its reading order) with titles, friendly ids, artwork and balloon/hotspot counts. | works:read | Reads |
pw_panels_get | Get one panel in full: title, description, duration, layers (boxes relative to the artwork), speech balloons (kind, speaker, text per locale, box, tail), hotspots, audio and the pages that place it. | works:read | Reads |
pw_panels_find_missing | Find panels that still lack something: artwork, balloons, a placement on a page of every produced format, a title, or graph edges (chapters that cannot be played). | works:read | Reads |
pw_panels_create | Add a panel to a chapter with title, scene description, layers (the first image/video layer without a box becomes the background artwork: asset id, friendly id or file name), speech balloons, hotspots and audio. | works:write | Changes |
pw_panels_update | Change a panel’s title / scene description (per locale), friendly id, duration (sets it to manual), audio tracks (replaced), per-format views or variants (replaced). | works:write | Changes |
pw_panels_duplicate | Copy a panel (layers, balloons, hotspots) within its chapter; the copy gets “(Copy)” titles and a unique friendly id. | works:write | Changes |
pw_panels_move | Move a panel to another chapter of the same work. | works:write | Changes |
pw_panels_reorder | Set the reading order of the panels on one page (pass every panel of the page once: UUID, friendly id or key). | works:write | Changes |
pw_panels_detach | Take a panel off one page (it stays in the chapter and on the other pages). | works:write | Changes |
pw_panels_delete | Delete a panel with its layers, balloons and hotspots; it is removed from every page and from the graph. | works:write | Asks first |
pw_panels_attach_artwork | Attach uploaded images or videos as the background artwork of many panels in one call: items = [{ panel (UUID, friendly id or outline key), asset (asset id, friendly id or file name, or { filename }) }]. | assets:write | Changes |
Layers
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_layers_edit | Add, change, remove or restack the layers of a panel. | works:write | Changes |
Speech balloons
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_bubbles_edit | Letter a panel: add balloons (kind, speaker by character id or name, text, place/box relative to the artwork, tail towards the speaker, style), update them (text merges per locale — pass locale to write a translation), remove them or set their order (later = on top). | works:write | Changes |
pw_bubbles_place_batch | Add balloons to many panels in one call (≤ 100 panels): items = [{ panel (UUID, friendly id or key), bubbles }]. | works:write | Changes |
Hotspots
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_hotspots_edit | Add, change or remove the interactive hotspots of a panel: a label, a shape relative to the artwork (rect, circle, ellipse, polygon) and an action — goTo another panel (UUID, friendly id or key), setVariables, openExtras, openModal or pluginEvent — optionally shown only when visibleIf holds. | works:write | Changes |
Assets
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_assets_list | List a work's asset library (images, videos, audio, fonts): file name, size, dimensions, processing status (ready once thumbnails/transcodes exist) and folders. | assets:read | Reads |
pw_assets_get | Get one asset: file name, type, dimensions, size, processing status, folders, the generated variants (thumbnail, responsive widths, WebP/AVIF, video transcodes, poster) and a 24-hour download URL. | assets:read | Reads |
pw_assets_get_thumbnail | Return a small preview image of an asset (image thumbnail, or the poster frame of a video) so you can see what the artwork shows — e.g. | assets:read | Reads |
pw_assets_begin_upload | Start uploading one file into a work’s asset library. | assets:write | Changes |
pw_assets_sign_part | Presigned URL for one part (1-based, 5 MiB each, the last may be smaller) of a multipart upload started with pw_assets_begin_upload. | assets:write | Changes |
pw_assets_complete_upload | Register an uploaded file as an asset (after the PUT, or after all parts of a multipart upload). | assets:write | Changes |
pw_assets_abort_upload | Cancel an unfinished multipart upload so storage discards its parts. | assets:write | Changes |
pw_assets_update | Set an asset’s alt text (per locale — replaces the stored alt text), its tags (replaced) or the language of its content (locale; "" = any language). | assets:write | Changes |
pw_assets_delete | Delete an asset and its generated variants from the library. | assets:write | Asks first |
pw_assets_reprocess | Queue thumbnails, responsive image sizes and video renditions again — for assets that stay "processing" because the transcode queue was unavailable at upload time. | assets:write | Changes |
Asset folders
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_folders_list | List a work's asset-library folders as a tree (id, name, path, parent, asset count). | assets:read | Reads |
pw_folders_manage | Organise the asset library: create a folder (name, optional parentId), rename or move a folder (parentId "" = top level), delete a folder (its assets stay in the library; needs confirm: true), or assign assets to folders (mode add | replace | remove). | assets:write | Asks first |
Characters
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_characters_list | List the characters of a work (name per locale, role, balloon style, voice) with how many balloons each speaks. | works:read | Reads |
pw_characters_create | Add a character to a work: name (and per-locale names), bio, role, a balloon style for everything they say, portrait URL and TTS voice. | works:write | Changes |
pw_characters_update | Change a character (per-locale names and bio merge with the stored ones). | works:write | Changes |
pw_characters_delete | Delete a character. | works:write | Asks first |
Variables
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_variables_get | List the work's variable definitions (id, type, scope, default, enum values) used by JSON Logic conditions on edges, layers, balloons and hotspots. | works:read | Reads |
pw_variables_set | Define the story variables used by JSON Logic conditions (edges, balloons, layers, hotspots): id, type, scope, default. | works:write | Changes |
Story graph
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_graph_get | Get the reading graph of a chapter: entry panel and edges (from/to, JSON Logic condition, transition, mutations), plus a playability lint. | works:read | Reads |
pw_graph_validate | Check a chapter graph: broken edges (errors), unreachable panels, dead ends and cycles (warnings), plus whether the chapter is playable at all. | works:read | Reads |
pw_graph_set_linear | Make a chapter playable: replace its plain "next" edges by a straight path through its panels — in the reading order of its pages (default), in panel order, or in an explicit order — and set the entry panel. | works:write | Changes |
pw_graph_edit | Add, change or remove edges of a chapter graph (from/to by UUID, friendly id or key — a target may be in another chapter), with JSON Logic conditions, transitions, variable mutations, labels and priorities, and set the entry panel. | works:write | Changes |
Localization
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_translations_list | List the work's translatable strings (titles, balloon texts, character bios) in reading order with their translations per locale. | works:read | Reads |
pw_locales_set | Replace the set of languages (BCP-47 locales) a work supports and optionally its default (source) language. | localization:write | Changes |
pw_translations_extract | Collect every translatable string of the work (work/chapter/page/panel titles, balloon texts, character names and bios, variants) into the translation table. | localization:write | Changes |
pw_translations_set | Save translations by key (keys from pw_translations_list): either { locale, entries: [{ key, text }] } for one language or { items: [{ key, translations: { "de-DE": "…" } }] } for several. | localization:write | Changes |
pw_translations_machine_translate | Machine-translate entries into one language with the CMS provider (DeepL; a stub on development servers). | localization:write | Changes |
Validation
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_validation_run | Run the CMS preflight (missing titles/alt text, oversized assets, broken links, empty panels, video, variant and canvas checks) plus the gateway lints (unplayable chapters, panels without artwork, unplaced panels, missing balloon locales, unused assets). | works:read | Reads |
pw_validation_fix | Apply the automatic fix of one issue from pw_validation_run (issues with autoFix: true). | works:write | Asks first |
pw_validation_undo | Revert the most recent auto-fix of a work (fixId from pw_validation_fix): re-inserts the removed edge or panel, restores the page references, or drops the optimized image copy again. | works:write | Changes |
Publishing
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_publish_status | Show whether and when the work was published, the published manifest URL and the progress of a running publish. | works:read | Reads |
pw_publish_history | List recent publishes (environment, status, time, manifest URL, backupId — what pw_publish_rollback takes —, rollback flag, and whether that publish’s frozen release is the live one or can be restored). | works:read | Reads |
pw_publish_preview | Publish the work to staging and return its review link: anyone with the link can read the work in the PanelWave reader (no login), the link stays the same across republishes, and the owner can revoke it in the CMS. | publish | Changes |
pw_publish_run | Publish the work to dev, staging or production (synchronous; returns the release record with its backupId — the snapshot pw_publish_rollback can go back to). | publish | Changes (asks first when risky) |
pw_publish_rollback | Make an earlier publish’s frozen release the current one again for that publish’s environment (production, staging or preview) — readers see that version right away (production readers can take up to 5 minutes because of caching). | publish | Asks first |
Background jobs
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_jobs_get | Poll a background job by the jobId another tool returned ("<kind>:<id>" — transcode, optimize, tts, export, import-pages, publish). | works:read | Reads |
pw_jobs_list | List background jobs: asset processing and text-to-speech of a work, publish progress, your exports and page-import sessions. | works:read | Reads |
Analytics
| Tool | What it does | Permission | Effect |
|---|---|---|---|
pw_analytics_summary | Reader KPIs of a work for a date range: sessions, unique readers, completion rate, panels viewed, reading time, with device and locale splits. | analytics:read | Reads |
Tools on your computer
With the local bridge the assistant also gets three tools that work on files in the folders you allowed: pw_local_list_files, pw_local_read_text and pw_local_upload_files. Nothing outside those folders is readable.