Skip to content

Panda Video

by pandavideo.com · remote · no sign-in to list tools · v2.1.0 · published by com.pandavideo

Video hosting: upload, organize and configure videos, analytics, AI subtitles and Shorts.

Deletes · 62Final · 1Changes · 58

177 tools: 62 can delete or cancel things, 1 do something that can't be undone, 58 change things and 56 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http pandavideo https://mcp.pandavideo.com/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

177 tools

Deletes or cancels 62Claude Code: deny
  • panda_action_delete_folder_videosDeterministically resolve a folder and send every video inside it to the trash (30-day recovery).No findings

    Why it is in this group

    • The name "panda_action_delete_folder_videos" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Deterministically resolve a folder and send every video inside it to the trash (30-day recovery). DESTRUCTIVE. dry_run=true (default) returns a preview of what would be deleted; set dry_run=false AND confirm=true to actually delete.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_move_videos_by_folderDeterministically resolve a source and target folder and move every video from the source into the target in one call.No findings

    Why it is in this group

    • The name "panda_action_move_videos_by_folder" says "move": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Deterministically resolve a source and target folder and move every video from the source into the target in one call. Pass target_folder_ref='root' to move to the root (no folder). Skips videos already being deleted. Free action (no credits). dry_run=true (default) returns a preview of which videos would move.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_remove_subtitle_language_from_folderDeterministically resolve a folder and delete a subtitle language from every CONVERTED video that has it (DELETE /subtitles/{id}).No findings

    Why it is in this group

    • The name "panda_action_remove_subtitle_language_from_folder" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Deterministically resolve a folder and delete a subtitle language from every CONVERTED video that has it (DELETE /subtitles/{id}). DESTRUCTIVE. dry_run=true (default) previews; set dry_run=false AND confirm=true to delete. Videos without that language are simply skipped by the API.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_rename_folderDeterministically resolve a folder by name/ID/URL and rename it (PUT /folders/{id}).No findings

    Why it is in this group

    • The name "panda_action_rename_folder" says "rename": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Deterministically resolve a folder by name/ID/URL and rename it (PUT /folders/{id}). dry_run=true (default) previews the rename.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_set_allowed_domainsAdd referer domains to the account's allow/block list for playback (POST /library/{id}?action=refer) and optionally toggle 'block requests with no referer'.No findings

    Why it is in this group

    • The name "panda_action_set_allowed_domains" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Add referer domains to the account's allow/block list for playback (POST /library/{id}?action=refer) and optionally toggle 'block requests with no referer'. Resolves the library ID automatically. dry_run=true (default) previews.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_set_anti_downloadEnable or disable account-wide anti-download protection (GET/PUT /block_download).No findings

    Why it is in this group

    • The name "panda_action_set_anti_download" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Enable or disable account-wide anti-download protection (GET/PUT /block_download). Reads the current state first and only changes it if needed. dry_run=true (default) previews the change.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_set_custom_field_for_folderDeterministically resolve a folder and set a custom metadata field (key/value) on every CONVERTED video (POST /videos/{id}?custom_fields).No findings

    Why it is in this group

    • The name "panda_action_set_custom_field_for_folder" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Deterministically resolve a folder and set a custom metadata field (key/value) on every CONVERTED video (POST /videos/{id}?custom_fields). dry_run=true (default) previews the affected videos.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_set_default_subtitle_for_folderDeterministically resolve a folder and set the default subtitle language on every CONVERTED video (POST /player?type=video).No findings

    Why it is in this group

    • The name "panda_action_set_default_subtitle_for_folder" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Deterministically resolve a folder and set the default subtitle language on every CONVERTED video (POST /player?type=video). Pass language 'false' to clear the default. dry_run=true (default) previews the affected videos. Note: videos lacking that subtitle simply won't show it.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_set_folder_player_controlEnable or disable a single player control on every CONVERTED video in a folder, via player profiles, PRESERVING all other controls.No findings

    Why it is in this group

    • The name "panda_action_set_folder_player_control" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Enable or disable a single player control on every CONVERTED video in a folder, via player profiles, PRESERVING all other controls. The big play button (dashboard 'Botão de Play Grande') is the 'play-large' control — disable it with control='play-large', enabled=false. Each video's profile controls are read-modify-written; when a profile has no explicit control list it inherits the global player controls, so the action materializes that global list minus/plus the control. Videos without a profile get one created and assigned. dry_run=true (default) validates + previews per-video changes.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_set_folder_videos_offlineDeterministically resolve a folder and enable or disable offline (mobile app) playback for every CONVERTED video inside it, in one batch call (POST /app).No findings

    Why it is in this group

    • The name "panda_action_set_folder_videos_offline" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Deterministically resolve a folder and enable or disable offline (mobile app) playback for every CONVERTED video inside it, in one batch call (POST /app). dry_run=true (default) previews the affected videos.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_set_forms_integrationCreate or update a forms/CRM integration by service name.No findings

    Why it is in this group

    • The name "panda_action_set_forms_integration" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Create or update a forms/CRM integration by service name. Reads existing integrations (GET /forms-integration/get); updates in place if the service already exists (PUT /forms-integration/update), otherwise creates it (POST /forms-integration/save). dry_run=true (default) previews.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_set_webhookIdempotently set the account webhook URL.No findings

    Why it is in this group

    • The name "panda_action_set_webhook" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Idempotently set the account webhook URL. Reads the current webhook (GET /user/webhook); if a different one exists it is removed (DELETE /user/webhook/{id}) before creating the new one (POST /user/webhook). dry_run=true (default) previews the change.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_transfer_credits_to_subaccountResolve a subaccount by name or ID and transfer credits to it (POST /user/limit/transfer_credits).No findings

    Why it is in this group

    • The name "panda_action_transfer_credits_to_subaccount" says "transfer": a word for a change that another call does not undo.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Resolve a subaccount by name or ID and transfer credits to it (POST /user/limit/transfer_credits). Checks the parent balance first. dry_run=true (default) previews the transfer.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • panda_add_end_thumbnailUpload an end thumbnail — an image shown after the video finishes.No findings

    Why it is in this group

    • The name "panda_add_end_thumbnail" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Upload an end thumbnail — an image shown after the video finishes. Provide `image_url` pointing to a publicly reachable image. Returns the uploaded filename. NOTE: the upload alone is NOT visible in the player — the viewer-facing display requires an `end` CTA on the player config that references this thumbnail. Use this MCP tool to upload the asset; for full setup (CTA wiring), redirect the user to the dashboard end-thumbnail editor.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_ai_assistantDelete an AI assistantNo findings

    Why it is in this group

    • The name "panda_delete_ai_assistant" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete an AI assistant

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_ai_workflowDelete an AI workflow (transcription, dubbing, etc.)No findings

    Why it is in this group

    • The name "panda_delete_ai_workflow" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete an AI workflow (transcription, dubbing, etc.)

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_comparisonsDelete one or more A/B testsNo findings

    Why it is in this group

    • The name "panda_delete_comparisons" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete one or more A/B tests

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_ctaDelete a CTA from a videoNo findings

    Why it is in this group

    • The name "panda_delete_cta" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a CTA from a video

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_dubbing_audioDelete a dubbed audio track from a videoNo findings

    Why it is in this group

    • The name "panda_delete_dubbing_audio" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a dubbed audio track from a video

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_folderDelete a folder by ID.No findings

    Why it is in this group

    • The name "panda_delete_folder" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a folder by ID. WARNING: All videos and subfolders inside are also deleted (cascade). Goes to trash for 30 days.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_folder_referDelete one or more folder-level referrers by id (batch).No findings

    Why it is in this group

    • The name "panda_delete_folder_refer" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete one or more folder-level referrers by id (batch). Duplicate ids are de-duplicated; if any id is missing the API returns 404, and if any referrer is library-level it returns 400 ({ errCode, errMsg }). Rows transition to 'deleting' and are removed asynchronously.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_funnelDelete a funnel by ID.No findings

    Why it is in this group

    • The name "panda_delete_funnel" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a funnel by ID. WARNING: this is destructive. Videos inside the funnel may become inaccessible.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_livesDelete one or more live streamsNo findings

    Why it is in this group

    • The name "panda_delete_lives" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete one or more live streams

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_playlistDelete a playlist.No findings

    Why it is in this group

    • The name "panda_delete_playlist" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a playlist. Videos are NOT deleted — only the collection is removed.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_profileDelete a player profile by IDNo findings

    Why it is in this group

    • The name "panda_delete_profile" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a player profile by ID

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_referDelete one or more library-level referrers by id (batch).No findings

    Why it is in this group

    • The name "panda_delete_refer" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete one or more library-level referrers by id (batch). Each referrer must be library-level (folder_id=null) and belong to the library; otherwise the API returns 400 ({ errCode, errMsg }). Rows transition to 'deleting' and are removed asynchronously.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_shortDelete a Shorts job/projectNo findings

    Why it is in this group

    • The name "panda_delete_short" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a Shorts job/project

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_subaccountDelete a subaccountNo findings

    Why it is in this group

    • The name "panda_delete_subaccount" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a subaccount

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_subtitleRemove a subtitle from a video by languageNo findings

    Why it is in this group

    • The name "panda_delete_subtitle" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove a subtitle from a video by language

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_thumbnailDelete a thumbnail from a video.No findings

    Why it is in this group

    • The name "panda_delete_thumbnail" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a thumbnail from a video. Type: 'start' (default), 'pause' (requires thumb_name), 'end'.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_tutor_fileDelete a file from a Tutor AI assistantNo findings

    Why it is in this group

    • The name "panda_delete_tutor_file" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a file from a Tutor AI assistant

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_userRemove a user from the organizationNo findings

    Why it is in this group

    • The name "panda_delete_user" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove a user from the organization

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_videosDelete one or more videos by ID.No findings

    Why it is in this group

    • The name "panda_delete_videos" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete one or more videos by ID. Sends to trash for 30 days.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_delete_watermark_groupDelete a watermark groupNo findings

    Why it is in this group

    • The name "panda_delete_watermark_group" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a watermark group

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_disable_auto_rechargeDisable auto-recharge for creditsNo findings

    Why it is in this group

    • The name "panda_disable_auto_recharge" says "disable": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Disable auto-recharge for credits

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • panda_disable_watermarkDisable watermark protection for the accountNo findings

    Why it is in this group

    • The name "panda_disable_watermark" says "disable": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Disable watermark protection for the account

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • panda_finish_comparisonFinish an A/B test and declare a winner.No findings

    Why it is in this group

    • The description says "cannot be reversed".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Finish an A/B test and declare a winner. PERMANENT — cannot be reversed.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_finish_liveEnd a live broadcastNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    End a live broadcast

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • panda_move_videosMove one or more videos to a folderNo findings

    Why it is in this group

    • The name "panda_move_videos" says "move": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Move one or more videos to a folder

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • panda_remove_video_from_playlistRemove a video from a playlist.No findings

    Why it is in this group

    • The name "panda_remove_video_from_playlist" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove a video from a playlist. Does NOT delete the video.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_remove_videos_from_funnelRemove one or more videos from a funnelNo findings

    Why it is in this group

    • The name "panda_remove_videos_from_funnel" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove one or more videos from a funnel

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_set_block_none_referSet the global 'block_none_refer' policy for the library.No findings

    Why it is in this group

    • The name "panda_set_block_none_refer" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Set the global 'block_none_refer' policy for the library. When true, playback requests that carry NO referer are blocked; when false, they are allowed. This is the master switch that activates/deactivates domain protection for requests without a referer. On error the API returns { errCode, errMsg }. library_id is resolved automatically when omitted.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_set_refer_statusActivate (active=true) or deactivate (active=false) a single referrer by refer_id.No findings

    Why it is in this group

    • The name "panda_set_refer_status" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Activate (active=true) or deactivate (active=false) a single referrer by refer_id. Activation moves inactive→pending; deactivation moves active→turning_inactive (the async worker finalizes the state). If the referrer is already in an intermediate state (pending|deleting|turning_inactive) the API returns 400 ({ errCode, errMsg }: 'Operation in progress, ...'). Works for both library- and folder-level referrers.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_set_video_offlineConfigure offline playback for a video (mobile app feature)No findings

    Why it is in this group

    • The name "panda_set_video_offline" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Configure offline playback for a video (mobile app feature)

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_transfer_creditsTransfer credits to a subaccountNo findings

    Why it is in this group

    • The name "panda_transfer_credits" says "transfer": a word for a change that another call does not undo.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Transfer credits to a subaccount

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • panda_update_ai_assistantUpdate AI assistant information (name, status, etc.)No findings

    Why it is in this group

    • The name "panda_update_ai_assistant" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update AI assistant information (name, status, etc.)

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_ai_assistant_chat_visibilityShow or hide the AI chat widget on the video playerNo findings

    Why it is in this group

    • The name "panda_update_ai_assistant_chat_visibility" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Show or hide the AI chat widget on the video player

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_ai_assistant_video_bindingsReplace the videos bound to an AI assistant.No findings

    Why it is in this group

    • The name "panda_update_ai_assistant_video_bindings" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Replace the videos bound to an AI assistant. Sends the FULL list of video_ids — existing bindings not in the list will be removed.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_auto_rechargeUpdate auto-recharge settingsNo findings

    Why it is in this group

    • The name "panda_update_auto_recharge" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update auto-recharge settings

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_ctaUpdate a CTA on a video.No findings

    Why it is in this group

    • The name "panda_update_cta" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update a CTA on a video. Only the fields you pass are changed; everything else keeps its current value. Placement cannot be changed — delete and re-add the CTA instead.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_folderUpdate folder properties (name, parent).No findings

    Why it is in this group

    • The name "panda_update_folder" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update folder properties (name, parent). Also used to recover deleted folders with status=true.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_folder_referEdit one or more existing referrers (refer_ids) in a single call: rename the hostname, change the type (ALLOW|BLOCK), and/or move them between scopes.No findings

    Why it is in this group

    • The name "panda_update_folder_refer" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Edit one or more existing referrers (refer_ids) in a single call: rename the hostname, change the type (ALLOW|BLOCK), and/or move them between scopes. scope='library' makes the domain apply to the whole library (omit folder_ids). scope='folder' makes it apply to the listed folder_ids (required and non-empty, the backend computes the add/remove diff). All refer_ids must belong to the same hostname. Returns { message, hostname, type, scope, renamed, folders_added, folders_removed, refers }. On error the API returns { errCode, errMsg }. library_id is resolved automatically when omitted.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • panda_update_funnelUpdate a funnel's properties (rename)No findings

    Why it is in this group

    • The name "panda_update_funnel" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update a funnel's properties (rename)

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_player_configUpdate global player configuration (applies to all videos without a custom profile).No findings

    Why it is in this group

    • The name "panda_update_player_config" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update global player configuration (applies to all videos without a custom profile). Returns the updated config object.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_playlistUpdate a playlist's propertiesNo findings

    Why it is in this group

    • The name "panda_update_playlist" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update a playlist's properties

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_profileUpdate a player profile's settings.No findings

    Why it is in this group

    • The name "panda_update_profile" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update a player profile's settings. Covers: player colors (colors.primaryColor / controlsColor), enabled controls list, smart autoplay (vsl.smartAutoplay), VSL mode (vsl.disablePause / disableForward / alternativeProgress), playback speed (general.default_speed), save progress, big play button (use panda_update_video_config — that lives elsewhere), and SUBTITLE APPEARANCE: caption text/background colors (captions.foreground / captions.background — 8-char hex with alpha) and caption font size (general.fontSize as keyword 'extraSmall'|'small'|'normal'|'large'|'extraLarge', plus general.fontSizePx as the matching pixel number). When the user names a UI label like "extra pequeno" / "extra small", map it to the corresponding fontSize keyword and send both fontSize + fontSizePx. Do NOT use this tool for: chapters (use panda_update_video_config), subtitle generation (use panda_generate_ai_subtitles), thumbnails, or title/description (use panda_update_video). Each nested object REPLACES the existing one — send the COMPLETE object you want to keep.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_subaccountUpdate a subaccount's settings (name, limits, status)No findings

    Why it is in this group

    • The name "panda_update_subaccount" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update a subaccount's settings (name, limits, status)

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_subtitle_visibilityShow or hide a subtitle language (hidden subtitles are not visible but still indexable for search)No findings

    Why it is in this group

    • The name "panda_update_subtitle_visibility" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Show or hide a subtitle language (hidden subtitles are not visible but still indexable for search)

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_userUpdate a user's information or roleNo findings

    Why it is in this group

    • The name "panda_update_user" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update a user's information or role

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_videoUpdate basic metadata of a video: title, description text, or move to a different folder.No findings

    Why it is in this group

    • The name "panda_update_video" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update basic metadata of a video: title, description text, or move to a different folder. Do NOT use this for player settings, chapters, subtitles, thumbnails, or any playback configuration — use the specific tools for those.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_video_configUpdate per-video config (POST /player?type=video).No findings

    Why it is in this group

    • The name "panda_update_video_config" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update per-video config (POST /player?type=video). Send only fields you want to change. Fields: chapters, default_subtitle, redirect_video_id, custom_pixels, on_funnel, panda_branding, questions (AI quiz), mindmap (AI), abstract (AI ebook), retention_markers, ai. NOT for: controls, autoplay, Smart Autoplay, colors, speed, big play button, save progress — use panda_update_profile for those.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • panda_update_watermark_groupUpdate a watermark groupNo findings

    Why it is in this group

    • The name "panda_update_watermark_group" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update a watermark group

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
Can't be undone 1Claude Code: ask
  • panda_create_ai_assistantPurchase credits and create a new AI assistant for a video.No findings

    Why it is in this group

    • The name "panda_create_ai_assistant" says "create": a word for a change.
    • The description's first verb is "purchase": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    Purchase credits and create a new AI assistant for a video. Returns the created {id, name, status, video_id}.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Changes things 58Claude Code: ask
  • panda_action_add_folder_videos_to_funnelDeterministically resolve a funnel (by name or ID) and a folder, then add every CONVERTED folder video to the funnel (POST /funnels/add_videos).No findings

    Why it is in this group

    • The name "panda_action_add_folder_videos_to_funnel" says "add": a word for a change.
    Description, as the server wrote it
    Deterministically resolve a funnel (by name or ID) and a folder, then add every CONVERTED folder video to the funnel (POST /funnels/add_videos). dry_run=true (default) previews the additions.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_add_folder_videos_to_playlistDeterministically resolve a folder and an existing playlist (by name or ID), then append every CONVERTED folder video to the playlist after its current items.No findings

    Why it is in this group

    • The name "panda_action_add_folder_videos_to_playlist" says "add": a word for a change.
    Description, as the server wrote it
    Deterministically resolve a folder and an existing playlist (by name or ID), then append every CONVERTED folder video to the playlist after its current items. dry_run=true (default) previews the additions.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_add_folder_videos_to_tutorDeterministically resolve an existing AI Tutor (by name or ID) and a folder, then bind every CONVERTED folder video to the tutor (POST /assist_ai/update_assistant_videos).No findings

    Why it is in this group

    • The name "panda_action_add_folder_videos_to_tutor" says "add": a word for a change.
    Description, as the server wrote it
    Deterministically resolve an existing AI Tutor (by name or ID) and a folder, then bind every CONVERTED folder video to the tutor (POST /assist_ai/update_assistant_videos). dry_run=true (default) previews the additions.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_apply_profile_to_folderDeterministically resolve a player profile and a folder, list eligible (CONVERTED) videos, and apply the profile to all of them in one call.No findings

    Why it is in this group

    • The name "panda_action_apply_profile_to_folder" says "apply": a word for a change.
    Description, as the server wrote it
    Deterministically resolve a player profile and a folder, list eligible (CONVERTED) videos, and apply the profile to all of them in one call. Free action (no credits). dry_run=true (default) returns a preview of which videos would be updated.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_apply_video_config_to_folderDeterministically resolve a folder and apply per-video player config to every CONVERTED video (POST /player?type=video).No findings

    Why it is in this group

    • The name "panda_action_apply_video_config_to_folder" says "apply": a word for a change.
    Description, as the server wrote it
    Deterministically resolve a folder and apply per-video player config to every CONVERTED video (POST /player?type=video). Supports: panda_branding, default_subtitle (lang code or 'false'), on_funnel, and the AI toggles questions/mindmap/abstract. Send only the fields you want to change. dry_run=true (default) previews the affected videos.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_apply_watermark_group_to_folderDeterministically resolve a watermark/DRM group (by name or ID) and a folder, then add the folder to the group so all its videos (current and future) inherit the forensic watermark…No findings

    Why it is in this group

    • The name "panda_action_apply_watermark_group_to_folder" says "apply": a word for a change.
    Description, as the server wrote it
    Deterministically resolve a watermark/DRM group (by name or ID) and a folder, then add the folder to the group so all its videos (current and future) inherit the forensic watermark (PUT /drm/videos/{id} folders.increment). dry_run=true (default) previews.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_configure_folder_profileDeterministically apply player-profile settings to every CONVERTED video in a folder, taking the correct create-or-update route per video.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Deterministically apply player-profile settings to every CONVERTED video in a folder, taking the correct create-or-update route per video. Covers everything a profile holds: colors (Cores), controls incl. the big play button 'play-large' (Controles / Botão de Play Grande), caption appearance (Legendas), VSL, save-progress, and general settings — pass any subset. Per video: if it already has a profile, that profile is updated (PUT /profile/{id}); if it has none, a new profile is created (POST /profile, name=video id), configured, and assigned (set-videos). dry_run=true (default) first VALIDATES each video (has-profile vs not) and previews the plan without changing anything.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_create_ab_testCreate an A/B comparison from 2+ videos (POST /comparison) and optionally start it immediately (PUT /comparison/{id}?type=start).No findings

    Why it is in this group

    • The name "panda_action_create_ab_test" says "create": a word for a change.
    Description, as the server wrote it
    Create an A/B comparison from 2+ videos (POST /comparison) and optionally start it immediately (PUT /comparison/{id}?type=start). dry_run=true (default) previews.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_create_folder_pathDeterministically ensure a nested folder path exists (e.g.No findings

    Why it is in this group

    • The name "panda_action_create_folder_path" says "create": a word for a change.
    Description, as the server wrote it
    Deterministically ensure a nested folder path exists (e.g. 'Courses/2026/Module 1'), creating only the missing segments and returning the leaf folder ID. Idempotent: existing segments are reused. dry_run=true (default) previews which segments would be created.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_create_playlist_from_folderDeterministically resolve a folder, create a new playlist, and add every CONVERTED video to it in folder order.No findings

    Why it is in this group

    • The name "panda_action_create_playlist_from_folder" says "create": a word for a change.
    Description, as the server wrote it
    Deterministically resolve a folder, create a new playlist, and add every CONVERTED video to it in folder order. dry_run=true (default) previews the playlist and its videos without creating anything.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_create_tutor_from_folderDeterministically resolve a folder, estimate the credit cost via purchase_overview, and create an AI Tutor bound to every CONVERTED video in the folder.No findings

    Why it is in this group

    • The name "panda_action_create_tutor_from_folder" says "create": a word for a change.
    Description, as the server wrote it
    Deterministically resolve a folder, estimate the credit cost via purchase_overview, and create an AI Tutor bound to every CONVERTED video in the folder. dry_run=true (default) returns the cost preview without creating anything.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_create_watermark_group_for_folderDeterministically resolve a folder and create a new watermark/DRM group seeded with all its videos (POST /drm/videos).No findings

    Why it is in this group

    • The name "panda_action_create_watermark_group_for_folder" says "create": a word for a change.
    Description, as the server wrote it
    Deterministically resolve a folder and create a new watermark/DRM group seeded with all its videos (POST /drm/videos). dry_run=true (default) previews the group and its videos.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_credit_preflightEstimate the credit cost of running a paid operation (dub / subtitles / ai_package) across every CONVERTED video in a folder and compare it to the current balance — WITHOUT executi…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Estimate the credit cost of running a paid operation (dub / subtitles / ai_package) across every CONVERTED video in a folder and compare it to the current balance — WITHOUT executing anything. Read-only; use before the real action to decide whether to proceed.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_dub_folder_videosDeterministically resolve a folder, list eligible (CONVERTED) videos, estimate the dubbing cost in credits, and optionally create AI dubbing jobs for one or more target languages.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Deterministically resolve a folder, list eligible (CONVERTED) videos, estimate the dubbing cost in credits, and optionally create AI dubbing jobs for one or more target languages. dry_run=true (default) returns a preview without creating any job. standard mode = 2 credits/min, lipsync = 10 credits/min (lipsync rejects videos over 60 minutes).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_duplicate_folder_videosDeterministically resolve a folder and create a copy of every CONVERTED video inside it.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Deterministically resolve a folder and create a copy of every CONVERTED video inside it. Duplication only works for non-external, non-funnel videos (the API rejects others, surfaced per-video). dry_run=true (default) previews the affected videos.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_enable_ai_package_for_folderDeterministically resolve a folder and activate the AI package (mindmap + abstract/eBook + quiz) for every CONVERTED video (POST /aiworkflow type=ALL_TEXT_ITEMS).No findings

    Why it is in this group

    • The name "panda_action_enable_ai_package_for_folder" says "enable": a word for a change.
    Description, as the server wrote it
    Deterministically resolve a folder and activate the AI package (mindmap + abstract/eBook + quiz) for every CONVERTED video (POST /aiworkflow type=ALL_TEXT_ITEMS). Estimates credits (1/started minute; Gold/Enterprise may have a free daily quota that reduces real cost). dry_run=true (default) returns the cost preview.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_export_folder_analyticsDeterministically resolve a folder and aggregate per-video play analytics over a date range (GET /general/{videoId} on the analytics host).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Deterministically resolve a folder and aggregate per-video play analytics over a date range (GET /general/{videoId} on the analytics host). Read-only — returns a per-video breakdown and folder total. No dry_run.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_action_generate_shorts_from_folderDeterministically resolve a folder and submit each eligible video (CONVERTED, 5min–5h) for AI Shorts generation (POST /shorts/import-video).No findings

    Why it is in this group

    • The name "panda_action_generate_shorts_from_folder" says "generate": a word for a change.
    Description, as the server wrote it
    Deterministically resolve a folder and submit each eligible video (CONVERTED, 5min–5h) for AI Shorts generation (POST /shorts/import-video). Each job consumes Shorts processing. dry_run=true (default) previews eligible videos. DRM-protected videos are rejected by the API and surfaced per-video.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_generate_subtitles_for_folderDeterministically resolve a folder, list eligible (CONVERTED) videos, estimate the AI subtitle cost in credits, and optionally generate subtitles in one or more languages.No findings

    Why it is in this group

    • The name "panda_action_generate_subtitles_for_folder" says "generate": a word for a change.
    Description, as the server wrote it
    Deterministically resolve a folder, list eligible (CONVERTED) videos, estimate the AI subtitle cost in credits, and optionally generate subtitles in one or more languages. Tiers: essential (only en/pt-BR/es, 1 credit/30min), advanced (34 langs, 1 credit/5min), pro (34 langs, 1 credit/min). dry_run=true (default) returns a preview.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_provision_userCreate a team user, resolving the role by name (or original_name/ID) to its role_id (POST /users).No findings

    Why it is in this group

    • The description's first verb is "create": a word for a change.
    Description, as the server wrote it
    Create a team user, resolving the role by name (or original_name/ID) to its role_id (POST /users). dry_run=true (default) previews. Validates the email format up front.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_reencode_folder_videosDeterministically resolve a folder and re-encode every CONVERTED video with a given compression mode.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Deterministically resolve a folder and re-encode every CONVERTED video with a given compression mode. Reprocessing consumes processing resources. dry_run=true (default) previews the affected videos.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_request_folder_downloadsDeterministically resolve a folder and request an async download for every CONVERTED video at a given quality/format/language (POST /download-async/{externalId}).No findings

    Why it is in this group

    • The name "panda_action_request_folder_downloads" says "request": a word for a change.
    Description, as the server wrote it
    Deterministically resolve a folder and request an async download for every CONVERTED video at a given quality/format/language (POST /download-async/{externalId}). Poll status later with panda_check_download_status. dry_run=true (default) previews the requests.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_action_schedule_livesCreate one or more scheduled live streams in a single call (POST /lives), optionally recording into a resolved folder.No findings

    Why it is in this group

    • The name "panda_action_schedule_lives" says "schedule": a word for a change.
    Description, as the server wrote it
    Create one or more scheduled live streams in a single call (POST /lives), optionally recording into a resolved folder. dry_run=true (default) previews the lives that would be created.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_add_ctaAdd a CTA (Call-to-Action) button to a video.No findings

    Why it is in this group

    • The name "panda_add_cta" says "add": a word for a change.
    Description, as the server wrote it
    Add a CTA (Call-to-Action) button to a video. Placement 'inside' = overlay on the video, 'outside' = below the video. Builds the same payload the dashboard's button editor sends.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_add_pause_thumbnailUpload a pause thumbnail — an image shown when the viewer pauses the video.No findings

    Why it is in this group

    • The name "panda_add_pause_thumbnail" says "add": a word for a change.
    Description, as the server wrote it
    Upload a pause thumbnail — an image shown when the viewer pauses the video. Provide `image_url` pointing to a publicly reachable image. Returns the uploaded thumbnail's filename. NOTE: the upload alone is NOT visible in the player — the viewer-facing display requires a pause CTA wiring (with time window and optional button overlay) which is configured separately via the dashboard. Use this MCP tool only to upload the asset; for full setup, redirect the user to the dashboard pause-thumbnail editor.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_add_thumbnailUpload the video cover (start thumbnail) — the image shown before the user presses play.No findings

    Why it is in this group

    • The name "panda_add_thumbnail" says "add": a word for a change.
    Description, as the server wrote it
    Upload the video cover (start thumbnail) — the image shown before the user presses play. Provide `image_url` pointing to a publicly reachable image (PNG/JPG/WEBP); the tool downloads it and uploads as multipart to the Panda API. Replaces any existing start thumbnail. After this returns, the cover is active immediately for the player.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_add_tutor_videosAdd videos to a Tutor AI assistantNo findings

    Why it is in this group

    • The name "panda_add_tutor_videos" says "add": a word for a change.
    Description, as the server wrote it
    Add videos to a Tutor AI assistant

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_add_videos_to_funnelAdd one or more videos to a funnel with optional coordinatesNo findings

    Why it is in this group

    • The name "panda_add_videos_to_funnel" says "add": a word for a change.
    Description, as the server wrote it
    Add one or more videos to a funnel with optional coordinates

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_add_videos_to_playlistAdd videos to a playlist with order.No findings

    Why it is in this group

    • The name "panda_add_videos_to_playlist" says "add": a word for a change.
    Description, as the server wrote it
    Add videos to a playlist with order. Returns the updated playlist video entries [{video_id, playlist_id, order}].

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_apply_profile_to_videosApply a player profile to one or more videos.No findings

    Why it is in this group

    • The name "panda_apply_profile_to_videos" says "apply": a word for a change.
    Description, as the server wrote it
    Apply a player profile to one or more videos. Returns confirmation with the list of updated video_ids.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_confirm_tutor_file_uploadConfirm that a file was successfully uploaded to a Tutor AI assistant (call after uploading to the presigned URL)No findings

    Why it is in this group

    • The name "panda_confirm_tutor_file_upload" says "upload": a word for a change.
    Description, as the server wrote it
    Confirm that a file was successfully uploaded to a Tutor AI assistant (call after uploading to the presigned URL)

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_ai_dubbingCreate an AI dubbing job for a video.No findings

    Why it is in this group

    • The name "panda_create_ai_dubbing" says "create": a word for a change.
    Description, as the server wrote it
    Create an AI dubbing job for a video. Costs 2 credits/min (standard) or 10 credits/min (lipsync). Returns {id, status, video_id, from_lang, to_lang}.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_comparisonCreate a new A/B test.No findings

    Why it is in this group

    • The name "panda_create_comparison" says "create": a word for a change.
    Description, as the server wrote it
    Create a new A/B test. Needs at least 2 videos to start. Returns the created {id, name, status, video_ids}.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_custom_fieldCreate a custom metadata key-value field for a video (for tagging/categorization).No findings

    Why it is in this group

    • The name "panda_create_custom_field" says "create": a word for a change.
    Description, as the server wrote it
    Create a custom metadata key-value field for a video (for tagging/categorization). Do NOT use this for chapters, subtitles, CTAs, or player settings — use the specific tools for those. Max 50 fields per video.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_folderCreate a new folder.No findings

    Why it is in this group

    • The name "panda_create_folder" says "create": a word for a change.
    Description, as the server wrote it
    Create a new folder. Returns the created {id, name, parent_folder_id}.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_folder_referAdd a domain referrer scoped to a single folder.No findings

    Why it is in this group

    • The name "panda_create_folder_refer" says "create": a word for a change.
    Description, as the server wrote it
    Add a domain referrer scoped to a single folder. type is ALLOW|BLOCK. The new row starts in 'pending'. A folder cannot have the same hostname twice. library_id is resolved automatically when omitted. On error the API returns { errCode, errMsg }.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_funnelCreate a new video funnelNo findings

    Why it is in this group

    • The name "panda_create_funnel" says "create": a word for a change.
    Description, as the server wrote it
    Create a new video funnel

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_liveCreate a new live stream eventNo findings

    Why it is in this group

    • The name "panda_create_live" says "create": a word for a change.
    Description, as the server wrote it
    Create a new live stream event

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_playlistCreate a new playlist.No findings

    Why it is in this group

    • The name "panda_create_playlist" says "create": a word for a change.
    Description, as the server wrote it
    Create a new playlist. Videos are REFERENCES — removing from playlist does NOT delete the video. Returns the created {id, name, description, access_type}.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_profileCreate a new player profile (POST /profile).No findings

    Why it is in this group

    • The name "panda_create_profile" says "create": a word for a change.
    Description, as the server wrote it
    Create a new player profile (POST /profile). IMPORTANT: per the Panda API, `name` MUST be the ID of an existing video — if it is not a real video ID the API returns 500 and nothing is created. Create only accepts `name` and `exclusive`; it does NOT accept colors/controls/vsl. To set those, call panda_update_profile with the returned profile id afterward. Returns {data: {id, name}}.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_referAdd one or more library-level domain referrers.No findings

    Why it is in this group

    • The name "panda_create_refer" says "create": a word for a change.
    Description, as the server wrote it
    Add one or more library-level domain referrers. Each entry has a hostname and a type (ALLOW|BLOCK, default ALLOW). The same hostname cannot coexist as both ALLOW and BLOCK at the library scope (duplicate check is type-agnostic). New rows start in 'pending' (when domain protection is active) or 'inactive'. library_id is resolved automatically when omitted. On error the API returns { errCode, errMsg }.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_stream_keyCreate a new named stream key for OBS or other streaming softwareNo findings

    Why it is in this group

    • The name "panda_create_stream_key" says "create": a word for a change.
    Description, as the server wrote it
    Create a new named stream key for OBS or other streaming software

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_userCreate a new user in the organization.No findings

    Why it is in this group

    • The name "panda_create_user" says "create": a word for a change.
    Description, as the server wrote it
    Create a new user in the organization. Returns the created {id, name, email, role_id}.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_create_watermark_groupCreate a new watermark groupNo findings

    Why it is in this group

    • The name "panda_create_watermark_group" says "create": a word for a change.
    Description, as the server wrote it
    Create a new watermark group

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_download_subtitleDownload a subtitle file for a specific languageNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Download a subtitle file for a specific language

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_duplicate_videoCreate a copy of a video.No findings

    Why it is in this group

    • The description's first verb is "create": a word for a change.
    Description, as the server wrote it
    Create a copy of a video. Only works for CONVERTED, non-external, non-funnel videos.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_enable_auto_rechargeEnable auto-recharge for credits.No findings

    Why it is in this group

    • The name "panda_enable_auto_recharge" says "enable": a word for a change.
    Description, as the server wrote it
    Enable auto-recharge for credits. When balance drops below trigger, recharges action_value.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_enable_watermarkEnable watermark protection for the accountNo findings

    Why it is in this group

    • The name "panda_enable_watermark" says "enable": a word for a change.
    Description, as the server wrote it
    Enable watermark protection for the account

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_generate_ai_subtitlesGenerate subtitles for a video using Panda AI.No findings

    Why it is in this group

    • The name "panda_generate_ai_subtitles" says "generate": a word for a change.
    Description, as the server wrote it
    Generate subtitles for a video using Panda AI. Creates a transcription in the specified language. Costs credits based on video duration and tier.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_generate_tutor_file_upload_urlGenerate a presigned URL to upload a PDF/file to a Tutor AI assistant.No findings

    Why it is in this group

    • The name "panda_generate_tutor_file_upload_url" says "generate": a word for a change.
    Description, as the server wrote it
    Generate a presigned URL to upload a PDF/file to a Tutor AI assistant. Returns upload_url and file_id. After uploading, call panda_confirm_tutor_file_upload.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_import_video_for_shortsImport a video for AI shorts generation.No findings

    Why it is in this group

    • The name "panda_import_video_for_shorts" says "import": a word for a change.
    Description, as the server wrote it
    Import a video for AI shorts generation. Sources: library (video_id), youtube (source_url). Default config: vertical aspect, 30-60s duration, no captions. Video must be CONVERTED, 5min-5hrs, <50GB, no DRM.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_manage_drm_group_itemsAdd or remove videos and/or folders from a DRM watermark group.No findings

    Why it is in this group

    • The description's first verb is "add": a word for a change.
    Description, as the server wrote it
    Add or remove videos and/or folders from a DRM watermark group. Returns the updated group with current video_ids and folder_ids.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_reencode_videoRe-encode a video with a specific compression modeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Re-encode a video with a specific compression mode

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_request_downloadRequest an async download for a video.No findings

    Why it is in this group

    • The name "panda_request_download" says "request": a word for a change.
    Description, as the server wrote it
    Request an async download for a video. Only works for CONVERTED, non-external, non-Hotmart videos. Returns {status, message}.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_save_segment_to_librarySave a Short segment to the video library as an independent videoNo findings

    Why it is in this group

    • The name "panda_save_segment_to_library" says "save": a word for a change.
    Description, as the server wrote it
    Save a Short segment to the video library as an independent video

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_start_comparisonStart an A/B test (begin collecting data).No findings

    Why it is in this group

    • The name "panda_start_comparison" says "start": a word for a change.
    Description, as the server wrote it
    Start an A/B test (begin collecting data). Only from DRAFT status. Returns the updated comparison with status IN_PROGRESS.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • panda_upload_video_from_urlImport a video from an external URL (YouTube, Vimeo, S3, generic HTTPS)No findings

    Why it is in this group

    • The name "panda_upload_video_from_url" says "upload": a word for a change.
    Description, as the server wrote it
    Import a video from an external URL (YouTube, Vimeo, S3, generic HTTPS)

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 56Claude Code: allow
  • panda_action_folder_ai_statusDeterministically resolve a folder and report the aggregate status of all its AI workflow jobs (subtitles, dubbing, AI package) via GET /aiworkflow?folder_id.No findings

    Why it is in this group

    • The name "panda_action_folder_ai_status" says "status": a word for reading.
    Description, as the server wrote it
    Deterministically resolve a folder and report the aggregate status of all its AI workflow jobs (subtitles, dubbing, AI package) via GET /aiworkflow?folder_id. Read-only — returns counts by status and by type. No dry_run (nothing is mutated).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_check_download_statusCheck the status of an async download request.No findings

    Why it is in this group

    • The name "panda_check_download_status" says "status": a word for reading.
    Description, as the server wrote it
    Check the status of an async download request. Returns {status, download_url} — url is present when status is 'ready'.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_account_analyticsGet general analytics metrics for the whole account.No findings

    Why it is in this group

    • The name "panda_get_account_analytics" says "get": a word for reading.
    Description, as the server wrote it
    Get general analytics metrics for the whole account. Returns {views, unique_viewers, watch_time_seconds, avg_watch_percentage, plays}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_ai_assistantGet an AI assistant's details.No findings

    Why it is in this group

    • The name "panda_get_ai_assistant" says "get": a word for reading.
    Description, as the server wrote it
    Get an AI assistant's details. Returns {id, name, status, videos: [{id, title}], files: [{id, file_name}], answers_count}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_ai_assistant_purchase_overviewGet credit cost overview before creating an AI assistant.No findings

    Why it is in this group

    • The name "panda_get_ai_assistant_purchase_overview" says "get": a word for reading.
    Description, as the server wrote it
    Get credit cost overview before creating an AI assistant. Returns {credit_cost, current_balance, sufficient_credits}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_ai_workflowsGet AI workflow status for a video (transcription, dubbing, translation progress)No findings

    Why it is in this group

    • The name "panda_get_ai_workflows" says "get": a word for reading.
    Description, as the server wrote it
    Get AI workflow status for a video (transcription, dubbing, translation progress)

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_auto_recharge_settingsGet auto-recharge configuration for credits.No findings

    Why it is in this group

    • The name "panda_get_auto_recharge_settings" says "get": a word for reading.
    Description, as the server wrote it
    Get auto-recharge configuration for credits. Returns {enabled, trigger_value, action_value}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_bandwidth_analyticsGet bandwidth/traffic usage by folder, by video, or DRM by video.No findings

    Why it is in this group

    • The name "panda_get_bandwidth_analytics" says "get": a word for reading.
    Description, as the server wrote it
    Get bandwidth/traffic usage by folder, by video, or DRM by video. Returns array of {name, bandwidth_bytes, video_id?} entries.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_business_rulesReturns the platform business rules: the real consequences of actions that modify, delete or move resources (e.g., removing a video from a funnel deletes it permanently, it does no…No findings

    Why it is in this group

    • The name "panda_get_business_rules" says "get": a word for reading.
    Description, as the server wrote it
    Returns the platform business rules: the real consequences of actions that modify, delete or move resources (e.g., removing a video from a funnel deletes it permanently, it does not just unlink it). Useful before planning such actions, so the advice given to the user matches how the platform actually behaves. Domains: funnels, videos_and_folders, playlists, drm_watermark, comparisons_ab_tests, lives, shorts, player_profiles, anti_download_and_domains, credits, thumbnails_and_subtitles.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • panda_get_credits_balanceGet the current credits balance for the account.No findings

    Why it is in this group

    • The name "panda_get_credits_balance" says "get": a word for reading.
    Description, as the server wrote it
    Get the current credits balance for the account. 1 credit = R$1.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_credits_historyGet credits transaction history for a date range.No findings

    Why it is in this group

    • The name "panda_get_credits_history" says "get": a word for reading.
    Description, as the server wrote it
    Get credits transaction history for a date range. Returns {balance, history: [{id, type, amount, status, description, created_at}]}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_custom_fieldsGet all custom fields for a video.No findings

    Why it is in this group

    • The name "panda_get_custom_fields" says "get": a word for reading.
    Description, as the server wrote it
    Get all custom fields for a video. Returns array of {id, key, value} metadata pairs.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_folderGet a folder's details and contents.No findings

    Why it is in this group

    • The name "panda_get_folder" says "get": a word for reading.
    Description, as the server wrote it
    Get a folder's details and contents. Returns {id, name, parent_folder_id, status, videos: [{id, title, status}], folders: [{id, name}]}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_funnelGet a funnel's details and its videos.No findings

    Why it is in this group

    • The name "panda_get_funnel" says "get": a word for reading.
    Description, as the server wrote it
    Get a funnel's details and its videos. Returns {data: {id, name, videos: [{id, title, status, is_first}]}}. Funnels are NOT folders.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_liveGet details of a specific live stream.No findings

    Why it is in this group

    • The name "panda_get_live" says "get": a word for reading.
    Description, as the server wrote it
    Get details of a specific live stream. Returns {id, title, status, scheduled_at, stream_key, rtmp, live_hls, created_at}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_live_viewersGet viewer history for a live stream.No findings

    Why it is in this group

    • The name "panda_get_live_viewers" says "get": a word for reading.
    Description, as the server wrote it
    Get viewer history for a live stream. Returns time-series array of viewer counts.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_player_configGet global player configuration (applies to all videos without a custom profile)No findings

    Why it is in this group

    • The name "panda_get_player_config" says "get": a word for reading.
    Description, as the server wrote it
    Get global player configuration (applies to all videos without a custom profile)

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_playlistGet details of a specific playlist.No findings

    Why it is in this group

    • The name "panda_get_playlist" says "get": a word for reading.
    Description, as the server wrote it
    Get details of a specific playlist. Returns {id, name, description, videos_quantity, access_type, creator_name, duration, updated_at}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_playlist_videosList all videos in a playlist.No findings

    Why it is in this group

    • The name "panda_get_playlist_videos" says "get": a word for reading.
    Description, as the server wrote it
    List all videos in a playlist. Returns array of {id, video_id, order, video: {id, title, duration}}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_profileGet details of a specific player profile including all settings (controls, colors, vsl, saveProgress)No findings

    Why it is in this group

    • The name "panda_get_profile" says "get": a word for reading.
    Description, as the server wrote it
    Get details of a specific player profile including all settings (controls, colors, vsl, saveProgress)

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_ranking_analyticsGet ranking analytics for the account.No findings

    Why it is in this group

    • The name "panda_get_ranking_analytics" says "get": a word for reading.
    Description, as the server wrote it
    Get ranking analytics for the account. Returns {most_watched: [{video_id, title, watch_time}], most_played: [{video_id, title, plays}]}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_realtime_analyticsGet real-time viewer count and activity for the account.No findings

    Why it is in this group

    • The name "panda_get_realtime_analytics" says "get": a word for reading.
    Description, as the server wrote it
    Get real-time viewer count and activity for the account. Returns {current_viewers, active_videos: [{video_id, title, viewers}]}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_referrals_summaryGet referral program summary (balance, estimated value)No findings

    Why it is in this group

    • The name "panda_get_referrals_summary" says "get": a word for reading.
    Description, as the server wrote it
    Get referral program summary (balance, estimated value)

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_retention_analyticsGet audience retention analytics (account-wide or per video).No findings

    Why it is in this group

    • The name "panda_get_retention_analytics" says "get": a word for reading.
    Description, as the server wrote it
    Get audience retention analytics (account-wide or per video). Returns array of {percentage, viewers} showing drop-off at each point.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_subscriptionGet current subscription/plan details.No findings

    Why it is in this group

    • The name "panda_get_subscription" says "get": a word for reading.
    Description, as the server wrote it
    Get current subscription/plan details. Returns {subscription_id, subscriptions: {name, status, active}, currency, addons}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_subtitle_by_languageGet a subtitle file for a specific languageNo findings

    Why it is in this group

    • The name "panda_get_subtitle_by_language" says "get": a word for reading.
    Description, as the server wrote it
    Get a subtitle file for a specific language

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_subtitlesGet all subtitle information for a videoNo findings

    Why it is in this group

    • The name "panda_get_subtitles" says "get": a word for reading.
    Description, as the server wrote it
    Get all subtitle information for a video

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_thumbnailsGet all thumbnails for a video.No findings

    Why it is in this group

    • The name "panda_get_thumbnails" says "get": a word for reading.
    Description, as the server wrote it
    Get all thumbnails for a video. Returns {start: {url, name}, pause: [{url, name}], end: {url, name}} — each type may be null if not set.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_videoGet full properties of a video by its ID, including config, profile, status, duration, folder, subtitles, etc.No findings

    Why it is in this group

    • The name "panda_get_video" says "get": a word for reading.
    Description, as the server wrote it
    Get full properties of a video by its ID, including config, profile, status, duration, folder, subtitles, etc.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_video_analyticsGet analytics metrics for a specific video.No findings

    Why it is in this group

    • The name "panda_get_video_analytics" says "get": a word for reading.
    Description, as the server wrote it
    Get analytics metrics for a specific video. Returns {views, unique_viewers, watch_time_seconds, avg_watch_percentage, plays}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_video_player_configGet per-video player configuration (chapters, CTAs, pixels, redirect, AI features, retention markers, subtitle default, offline config)No findings

    Why it is in this group

    • The name "panda_get_video_player_config" says "get": a word for reading.
    Description, as the server wrote it
    Get per-video player configuration (chapters, CTAs, pixels, redirect, AI features, retention markers, subtitle default, offline config)

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_videos_countGet total video count by status (CONVERTED, CONVERTING, DRAFT, etc.)No findings

    Why it is in this group

    • The name "panda_get_videos_count" says "get": a word for reading.
    Description, as the server wrote it
    Get total video count by status (CONVERTED, CONVERTING, DRAFT, etc.)

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_watermark_groupGet a watermark group's details.No findings

    Why it is in this group

    • The name "panda_get_watermark_group" says "get": a word for reading.
    Description, as the server wrote it
    Get a watermark group's details. Returns {id, name, video_ids: [], folder_ids: [], created_at}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_get_watermark_statusCheck whether watermark/DRM is currently active on the account.No findings

    Why it is in this group

    • The name "panda_get_watermark_status" says "get": a word for reading.
    Description, as the server wrote it
    Check whether watermark/DRM is currently active on the account. Returns {active: boolean}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_help_get_articleGet the full content of a specific Panda Video help center article by slug.No findings

    Why it is in this group

    • The name "panda_help_get_article" says "get": a word for reading.
    Description, as the server wrote it
    Get the full content of a specific Panda Video help center article by slug. Use this after searching to read the complete content of an article. The response is the full official documentation.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • panda_list_ai_assistantsList all AI video assistants.No findings

    Why it is in this group

    • The name "panda_list_ai_assistants" says "list": a word for reading.
    Description, as the server wrote it
    List all AI video assistants. Returns array of {id, name, status, videos: [{id, title}], created_at}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_comparisonsList all A/B test comparisons.No findings

    Why it is in this group

    • The name "panda_list_comparisons" says "list": a word for reading.
    Description, as the server wrote it
    List all A/B test comparisons. Status: DRAFT → IN_PROGRESS → COMPLETED. Returns array of {id, name, description, status, videos: [], winner_video_id, created_at}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_folder_referList the domain referrers set directly on a folder.No findings

    Why it is in this group

    • The name "panda_list_folder_refer" says "list": a word for reading.
    Description, as the server wrote it
    List the domain referrers set directly on a folder. Returns { refers: [{ id, url, type, status, origin: { type, id } }] }. library_id is resolved automatically when omitted.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_folder_refer_inheritedList the effective referrers that apply to a folder using override-total semantics: the folder's own referrers if it has any, otherwise the library-level referrers.No findings

    Why it is in this group

    • The name "panda_list_folder_refer_inherited" says "list": a word for reading.
    Description, as the server wrote it
    List the effective referrers that apply to a folder using override-total semantics: the folder's own referrers if it has any, otherwise the library-level referrers. Use this to know which domains actually gate playback for videos in the folder. Returns { refers: [{ id, url, type, status, origin: { type, id } }] }. library_id is resolved automatically when omitted.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_foldersList all folders.No findings

    Why it is in this group

    • The name "panda_list_folders" says "list": a word for reading.
    Description, as the server wrote it
    List all folders. Returns array of {id, name, parent_folder_id, status, created_at, videos_count}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_funnelsList all funnels.No findings

    Why it is in this group

    • The name "panda_list_funnels" says "list": a word for reading.
    Description, as the server wrote it
    List all funnels. Returns {data: [{id, name, videos_count, created_at}]}. A funnel with videos_count=0 has no videos. Funnels are NOT folders.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_invoicesList all invoices.No findings

    Why it is in this group

    • The name "panda_list_invoices" says "list": a word for reading.
    Description, as the server wrote it
    List all invoices. Returns array of {id, status, amount_due, amount_paid, created, due_date, invoice_pdf, hosted_invoice_url}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_livesList all live streams.No findings

    Why it is in this group

    • The name "panda_list_lives" says "list": a word for reading.
    Description, as the server wrote it
    List all live streams. Returns array of {id, title, status, scheduled_at, created_at}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_plansList available subscription plans and pricingNo findings

    Why it is in this group

    • The name "panda_list_plans" says "list": a word for reading.
    Description, as the server wrote it
    List available subscription plans and pricing

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_playlistsList all playlists.No findings

    Why it is in this group

    • The name "panda_list_playlists" says "list": a word for reading.
    Description, as the server wrote it
    List all playlists. Returns array of {id, name, videos_quantity, duration, access_type, updated_at}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_profilesList all player profiles (GET /profile).No findings

    Why it is in this group

    • The name "panda_list_profiles" says "list": a word for reading.
    Description, as the server wrote it
    List all player profiles (GET /profile). 'Profiles' are player UI configs, not user accounts. Returns {data: [{id, name, pullzone_name}]} — a profile's `name` is the ID of the video it was created for. Use panda_get_profile for a profile's full settings. No pagination.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_referList the library-level domain referrers (Domain Protection / allow-block list for playback).No findings

    Why it is in this group

    • The name "panda_list_refer" says "list": a word for reading.
    Description, as the server wrote it
    List the library-level domain referrers (Domain Protection / allow-block list for playback). Returns { refers: [{ id, url, type, status }] } where type is ALLOW|BLOCK and status is one of active|inactive|pending|deleting|turning_inactive. library_id is resolved automatically when omitted.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_refer_allList all of the library's domains consolidated by hostname across library and folder scopes.No findings

    Why it is in this group

    • The name "panda_list_refer_all" says "list": a word for reading.
    Description, as the server wrote it
    List all of the library's domains consolidated by hostname across library and folder scopes. Returns { refers: [{ hostname, type, status, scope, library_refer_id, folders, type_inconsistency, created_at }] }. scope is library|folder|mixed; status may be 'mixed' when rows differ; library_refer_id is the library-level row id (null if folder-only); folders is an array of { folder_id, name, refer_id, status }; type_inconsistency=true when the same hostname has divergent ALLOW/BLOCK rows. Referrers with status=deleting are ignored. library_id is resolved automatically when omitted.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_short_segmentsList all generated segments (clips) for a Shorts job.No findings

    Why it is in this group

    • The name "panda_list_short_segments" says "list": a word for reading.
    Description, as the server wrote it
    List all generated segments (clips) for a Shorts job. Each segment has viralScore, duration, transcription.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_shortsList all Shorts jobs.No findings

    Why it is in this group

    • The name "panda_list_shorts" says "list": a word for reading.
    Description, as the server wrote it
    List all Shorts jobs. Projects expire after ~30 days. Returns array of {job_id, status, user_context: {video_title, source_type}, completed_segments, created_at}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_stream_keysList all stream keys for live broadcasting.No findings

    Why it is in this group

    • The name "panda_list_stream_keys" says "list": a word for reading.
    Description, as the server wrote it
    List all stream keys for live broadcasting. Returns array of {id, name, stream_key, rtmp, created_at}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_subaccountsList all subaccounts and their usage limits.No findings

    Why it is in this group

    • The name "panda_list_subaccounts" says "list": a word for reading.
    Description, as the server wrote it
    List all subaccounts and their usage limits. Returns array of {organization_id, name, status, credits_balance, storage_used, limits}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_usersList all users in the organization.No findings

    Why it is in this group

    • The name "panda_list_users" says "list": a word for reading.
    Description, as the server wrote it
    List all users in the organization. Returns array of {id, name, email, role_id, role_name, created_at}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_videosList videos.No findings

    Why it is in this group

    • The name "panda_list_videos" says "list": a word for reading.
    Description, as the server wrote it
    List videos. Each video has: id, title, status, created_at, length (seconds), folder_id, config. Results are returned newest first by default. There is NO server-side date filter or sorting — to find videos created on a specific date, fetch videos and check created_at in the response.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • panda_list_watermark_groupsList all watermark groups.No findings

    Why it is in this group

    • The name "panda_list_watermark_groups" says "list": a word for reading.
    Description, as the server wrote it
    List all watermark groups. Returns array of {id, name, active, video_ids: [], folder_ids: [], created_at}.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 2.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http pandavideo https://mcp.pandavideo.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__pandavideo__panda_list_videos",
      "mcp__pandavideo__panda_get_video",
      "mcp__pandavideo__panda_list_folders",
      "mcp__pandavideo__panda_get_folder",
      "mcp__pandavideo__panda_list_playlists",
      "mcp__pandavideo__panda_get_playlist",
      "mcp__pandavideo__panda_get_playlist_videos",
      "mcp__pandavideo__panda_list_profiles",
      "mcp__pandavideo__panda_get_profile",
      "mcp__pandavideo__panda_list_lives",
      "mcp__pandavideo__panda_get_live",
      "mcp__pandavideo__panda_list_stream_keys",
      "mcp__pandavideo__panda_get_live_viewers",
      "mcp__pandavideo__panda_get_account_analytics",
      "mcp__pandavideo__panda_get_video_analytics",
      "mcp__pandavideo__panda_get_retention_analytics",
      "mcp__pandavideo__panda_get_ranking_analytics",
      "mcp__pandavideo__panda_get_realtime_analytics",
      "mcp__pandavideo__panda_get_bandwidth_analytics",
      "mcp__pandavideo__panda_list_funnels",
      "mcp__pandavideo__panda_get_funnel",
      "mcp__pandavideo__panda_get_watermark_status",
      "mcp__pandavideo__panda_list_watermark_groups",
      "mcp__pandavideo__panda_get_watermark_group",
      "mcp__pandavideo__panda_get_thumbnails",
      "mcp__pandavideo__panda_get_subtitles",
      "mcp__pandavideo__panda_get_subtitle_by_language",
      "mcp__pandavideo__panda_get_videos_count",
      "mcp__pandavideo__panda_get_custom_fields",
      "mcp__pandavideo__panda_list_users",
      "mcp__pandavideo__panda_check_download_status",
      "mcp__pandavideo__panda_list_shorts",
      "mcp__pandavideo__panda_list_short_segments",
      "mcp__pandavideo__panda_list_ai_assistants",
      "mcp__pandavideo__panda_get_ai_assistant",
      "mcp__pandavideo__panda_get_ai_assistant_purchase_overview",
      "mcp__pandavideo__panda_get_referrals_summary",
      "mcp__pandavideo__panda_get_credits_balance",
      "mcp__pandavideo__panda_get_credits_history",
      "mcp__pandavideo__panda_get_auto_recharge_settings",
      "mcp__pandavideo__panda_list_comparisons",
      "mcp__pandavideo__panda_get_player_config",
      "mcp__pandavideo__panda_get_video_player_config",
      "mcp__pandavideo__panda_get_ai_workflows",
      "mcp__pandavideo__panda_get_subscription",
      "mcp__pandavideo__panda_list_invoices",
      "mcp__pandavideo__panda_list_plans",
      "mcp__pandavideo__panda_list_subaccounts",
      "mcp__pandavideo__panda_help_search",
      "mcp__pandavideo__panda_help_get_article",
      "mcp__pandavideo__panda_get_business_rules",
      "mcp__pandavideo__panda_list_refer",
      "mcp__pandavideo__panda_list_refer_all",
      "mcp__pandavideo__panda_list_folder_refer",
      "mcp__pandavideo__panda_list_folder_refer_inherited",
      "mcp__pandavideo__panda_action_folder_ai_status"
    ],
    "ask": [
      "mcp__pandavideo__panda_duplicate_video",
      "mcp__pandavideo__panda_reencode_video",
      "mcp__pandavideo__panda_upload_video_from_url",
      "mcp__pandavideo__panda_create_folder",
      "mcp__pandavideo__panda_create_playlist",
      "mcp__pandavideo__panda_add_videos_to_playlist",
      "mcp__pandavideo__panda_create_profile",
      "mcp__pandavideo__panda_apply_profile_to_videos",
      "mcp__pandavideo__panda_create_live",
      "mcp__pandavideo__panda_create_stream_key",
      "mcp__pandavideo__panda_create_funnel",
      "mcp__pandavideo__panda_add_videos_to_funnel",
      "mcp__pandavideo__panda_enable_watermark",
      "mcp__pandavideo__panda_create_watermark_group",
      "mcp__pandavideo__panda_manage_drm_group_items",
      "mcp__pandavideo__panda_add_thumbnail",
      "mcp__pandavideo__panda_add_pause_thumbnail",
      "mcp__pandavideo__panda_generate_ai_subtitles",
      "mcp__pandavideo__panda_download_subtitle",
      "mcp__pandavideo__panda_create_custom_field",
      "mcp__pandavideo__panda_create_user",
      "mcp__pandavideo__panda_request_download",
      "mcp__pandavideo__panda_import_video_for_shorts",
      "mcp__pandavideo__panda_save_segment_to_library",
      "mcp__pandavideo__panda_create_ai_assistant",
      "mcp__pandavideo__panda_generate_tutor_file_upload_url",
      "mcp__pandavideo__panda_confirm_tutor_file_upload",
      "mcp__pandavideo__panda_add_tutor_videos",
      "mcp__pandavideo__panda_create_ai_dubbing",
      "mcp__pandavideo__panda_enable_auto_recharge",
      "mcp__pandavideo__panda_create_comparison",
      "mcp__pandavideo__panda_start_comparison",
      "mcp__pandavideo__panda_add_cta",
      "mcp__pandavideo__panda_create_refer",
      "mcp__pandavideo__panda_create_folder_refer",
      "mcp__pandavideo__panda_action_reencode_folder_videos",
      "mcp__pandavideo__panda_action_duplicate_folder_videos",
      "mcp__pandavideo__panda_action_create_folder_path",
      "mcp__pandavideo__panda_action_create_playlist_from_folder",
      "mcp__pandavideo__panda_action_add_folder_videos_to_playlist",
      "mcp__pandavideo__panda_action_apply_profile_to_folder",
      "mcp__pandavideo__panda_action_apply_video_config_to_folder",
      "mcp__pandavideo__panda_action_configure_folder_profile",
      "mcp__pandavideo__panda_action_generate_subtitles_for_folder",
      "mcp__pandavideo__panda_action_dub_folder_videos",
      "mcp__pandavideo__panda_action_create_tutor_from_folder",
      "mcp__pandavideo__panda_action_add_folder_videos_to_tutor",
      "mcp__pandavideo__panda_action_enable_ai_package_for_folder",
      "mcp__pandavideo__panda_action_generate_shorts_from_folder",
      "mcp__pandavideo__panda_action_apply_watermark_group_to_folder",
      "mcp__pandavideo__panda_action_create_watermark_group_for_folder",
      "mcp__pandavideo__panda_action_add_folder_videos_to_funnel",
      "mcp__pandavideo__panda_action_schedule_lives",
      "mcp__pandavideo__panda_action_request_folder_downloads",
      "mcp__pandavideo__panda_action_export_folder_analytics",
      "mcp__pandavideo__panda_action_create_ab_test",
      "mcp__pandavideo__panda_action_credit_preflight",
      "mcp__pandavideo__panda_action_provision_user",
      "mcp__pandavideo__panda_action_create_review_link_for_folder"
    ],
    "deny": [
      "mcp__pandavideo__panda_update_video",
      "mcp__pandavideo__panda_delete_videos",
      "mcp__pandavideo__panda_move_videos",
      "mcp__pandavideo__panda_update_folder",
      "mcp__pandavideo__panda_delete_folder",
      "mcp__pandavideo__panda_update_playlist",
      "mcp__pandavideo__panda_delete_playlist",
      "mcp__pandavideo__panda_remove_video_from_playlist",
      "mcp__pandavideo__panda_update_profile",
      "mcp__pandavideo__panda_delete_profile",
      "mcp__pandavideo__panda_finish_live",
      "mcp__pandavideo__panda_delete_lives",
      "mcp__pandavideo__panda_update_funnel",
      "mcp__pandavideo__panda_delete_funnel",
      "mcp__pandavideo__panda_remove_videos_from_funnel",
      "mcp__pandavideo__panda_disable_watermark",
      "mcp__pandavideo__panda_update_watermark_group",
      "mcp__pandavideo__panda_delete_watermark_group",
      "mcp__pandavideo__panda_add_end_thumbnail",
      "mcp__pandavideo__panda_delete_thumbnail",
      "mcp__pandavideo__panda_delete_subtitle",
      "mcp__pandavideo__panda_update_subtitle_visibility",
      "mcp__pandavideo__panda_update_user",
      "mcp__pandavideo__panda_delete_user",
      "mcp__pandavideo__panda_delete_short",
      "mcp__pandavideo__panda_update_ai_assistant",
      "mcp__pandavideo__panda_update_ai_assistant_video_bindings",
      "mcp__pandavideo__panda_update_ai_assistant_chat_visibility",
      "mcp__pandavideo__panda_delete_ai_assistant",
      "mcp__pandavideo__panda_delete_tutor_file",
      "mcp__pandavideo__panda_delete_dubbing_audio",
      "mcp__pandavideo__panda_update_auto_recharge",
      "mcp__pandavideo__panda_disable_auto_recharge",
      "mcp__pandavideo__panda_finish_comparison",
      "mcp__pandavideo__panda_delete_comparisons",
      "mcp__pandavideo__panda_update_player_config",
      "mcp__pandavideo__panda_update_video_config",
      "mcp__pandavideo__panda_set_video_offline",
      "mcp__pandavideo__panda_update_cta",
      "mcp__pandavideo__panda_delete_cta",
      "mcp__pandavideo__panda_delete_ai_workflow",
      "mcp__pandavideo__panda_update_subaccount",
      "mcp__pandavideo__panda_delete_subaccount",
      "mcp__pandavideo__panda_transfer_credits",
      "mcp__pandavideo__panda_set_refer_status",
      "mcp__pandavideo__panda_delete_refer",
      "mcp__pandavideo__panda_delete_folder_refer",
      "mcp__pandavideo__panda_update_folder_refer",
      "mcp__pandavideo__panda_set_block_none_refer",
      "mcp__pandavideo__panda_action_move_videos_by_folder",
      "mcp__pandavideo__panda_action_delete_folder_videos",
      "mcp__pandavideo__panda_action_set_folder_videos_offline",
      "mcp__pandavideo__panda_action_rename_folder",
      "mcp__pandavideo__panda_action_set_folder_player_control",
      "mcp__pandavideo__panda_action_set_default_subtitle_for_folder",
      "mcp__pandavideo__panda_action_remove_subtitle_language_from_folder",
      "mcp__pandavideo__panda_action_set_custom_field_for_folder",
      "mcp__pandavideo__panda_action_set_anti_download",
      "mcp__pandavideo__panda_action_set_allowed_domains",
      "mcp__pandavideo__panda_action_transfer_credits_to_subaccount",
      "mcp__pandavideo__panda_action_set_webhook",
      "mcp__pandavideo__panda_action_set_forms_integration"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as pandavideo. Review it before you use it.