Panda Video
mcp remote · streamable-http · v2.1.0 · source: crawl
https://mcp.pandavideo.com/mcp
https://github.com/pandavideo/panda-video-mcp
Video hosting: upload, organize and configure videos, analytics, AI subtitles and Shorts.
Works
100
Verified Oct 31, 2026 · p50 800 ms · p95 859 ms
Worth
no data
No outcomes reported yet. Agents report through report_outcome after a find_agents call.
Checks
| Check | Weight | Result | Evidence |
|---|---|---|---|
| reachable | 20 | pass | 3 of 3 handshakes succeeded; server 'panda-video-mcp' |
| tools_listed | 15 | pass | 216 tools |
| schema_complete | 15 | pass | 204 of 216 tools have a description and a typed schema |
| latency_p50 | 10 | pass | p50 800 ms |
| latency_p95 | 5 | pass | p95 859 ms |
| error_free | 10 | pass | 0 of 3 attempts failed |
| auth_posture | 10 | pass | https, open |
| injection_scan | 10 | pass | no patterns found |
| scope | 5 | pass | no execution-style tools |
Unknown counts as fail; n/a is left out of the denominator. How the weights work.
Tools (216)
| Name | Description | Schema |
|---|---|---|
panda_remove_video_from_playlist | Remove a video from a playlist. Does NOT delete the video. | typed |
panda_update_ai_assistant_chat_visibility | Show or hide the AI chat widget on the video player | typed |
panda_delete_ai_assistant | Delete an AI assistant | typed |
panda_transfer_credits | Transfer credits to a subaccount | typed |
panda_list_profiles | List the account's player profiles (GET /profile). 'Profiles' are player UI configs, not user accounts. Returns an array of {id, name, pullzone_name, is_default, updated_at, videos_count, feature_tags | typed |
panda_list_videos | List videos. Each video has: id, video_external_id, title, status, created_at, length (seconds), folder_id, config. `id` is what most tools take as video_id; video_external_id is what panda_get_best_t | typed |
panda_get_video | Get full properties of a video by its ID, including video_external_id, config (config.ctas holds the pause/end thumbnail CTAs), profile, status, duration, folder, subtitles, etc. | typed |
panda_update_video | 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 | typed |
panda_delete_videos | Delete one or more videos by ID. Sends to trash for 30 days. | typed |
panda_get_videos_status | Processing status of up to 100 videos in one call. Each item: {id, status, available_resolutions, pending_resolutions, encoding_resolutions, playable, conversion_percentage, estimated_time, ...}. No t | typed |
panda_get_videos_ai_resources | Which AI Package resources (e.g. eBook, quiz, mind map; one entry per type and language) up to 100 videos already have, in one call. Subtitles and dubbing are not included. Each item: {id, ai_resource | typed |
panda_move_videos | Move one or more videos to a folder | typed |
panda_duplicate_video | Create a copy of a video. Only works for CONVERTED, non-external, non-funnel videos. | typed |
panda_create_profile | Create a player profile (POST /profile) already configured — colors, controls, caption appearance (colors.captionsColor / captionsBackgroundColor + captionsSize), VSL, save progress, general (speed, t | typed |
panda_reencode_video | Re-encode a video with a compression mode (no credit cost). The video is processed again from its original file (backup): without the backup the API refuses. Its current qualities are replaced by the | typed |
panda_upload_video_from_url | Import a video from an external URL (YouTube, Vimeo, S3, generic HTTPS) | typed |
panda_list_folders | List all folders. Returns array of {id, name, parent_folder_id, status, created_at, videos_count}. | typed |
panda_create_folder | Create a new folder. Returns the created {id, name, parent_folder_id}. | typed |
panda_get_folder | Get a folder's details and one page of its videos. Returns {id, name, parent_folder_id, status, videos: [...], pagination: {page, limit, total_count, total_pages, has_next, has_prev}}. Only videos dir | typed |
panda_update_folder | Update folder properties (name, parent). Also used to recover deleted folders with status=true. | typed |
panda_delete_folder | Delete a folder by ID. WARNING: All videos and subfolders inside are also deleted (cascade). Goes to trash for 30 days. | typed |
panda_list_playlists | List all playlists. Returns array of {id, name, videos_quantity, duration, access_type, updated_at}. | typed |
panda_create_playlist | Create a new playlist. Videos are REFERENCES — removing from playlist does NOT delete the video. Returns the created {id, name, description, access_type}. | typed |
panda_get_playlist | Get details of a specific playlist. Returns {id, name, description, videos_quantity, access_type, creator_name, duration, updated_at}. | typed |
panda_update_playlist | Update a playlist's properties | typed |
panda_delete_playlist | Delete a playlist. Videos are NOT deleted — only the collection is removed. | typed |
panda_get_playlist_videos | List all videos in a playlist. Returns array of {id, video_id, order, video: {id, title, duration}}. | typed |
panda_add_videos_to_playlist | Add videos to a playlist with order. Returns the updated playlist video entries [{video_id, playlist_id, order}]. | typed |
panda_get_profile | Get one player profile with all its settings: controls, colors (incl. caption colors and captionsFontSize), vsl, saveProgress, hideControlsOnStart, general (speed, theme, gear menu, offline, caption s | typed |
panda_update_profile | Update a player profile's settings. Changes EVERY video linked to the profile. Covers: player colors (colors.primaryColor / controlsColor), enabled controls list, smart autoplay (vsl.smartAutoplay), V | typed |
panda_delete_profile | Delete a player profile. The default profile ('Padrão') cannot be deleted. A profile with no videos is deleted directly. A profile WITH videos needs `strategy` — ask the user which one: 'keep' = each | typed |
panda_apply_profile_to_videos | Link a player profile to videos — pass video_ids OR folder_id (every video in that folder, any status; subfolders are not included). A video that had its own customized player (exclusive profile) lose | typed |
panda_duplicate_profile | Copy a player profile's settings into a new profile named '<name> (2)', '(3)'… The copy has no videos and is never the default. Exclusive profiles (a single video's own player) cannot be duplicated. R | typed |
panda_restore_profile | Reset a player profile to the account's global player settings (panda_get_player_config): controls, colors, VSL, general, save progress, hideControlsOnStart and availableQualities are all replaced — t | typed |
panda_set_default_profile | Make a profile the account's default player profile ('Padrão'). Exclusive profiles cannot be default. If the current default profile has videos, ASK the user what happens to them and pass unlinked_vid | typed |
panda_list_lives | List all live streams. Returns array of {id, title, status, scheduled_at, region, quality_package, save_vod, stream_key_id, stream_key, rtmp, live_player, created_at}. Status: provisioning (channel st | typed |
panda_get_bandwidth_analytics | Get bandwidth/traffic usage by folder, by video, or DRM by video. Returns array of {name, bandwidth_bytes, video_id?} entries. | incomplete |
panda_delete_ai_workflow | Delete an AI work record (e.g. a failed or queued transcription/dubbing card; a queued one is refunded). It doesn't remove what a finished work produced: to remove an eBook, mind map or quiz use panda | typed |
panda_create_live | Create a new live stream event. Trial accounts cannot create lives. A quality_package above the plan's maximum is silently lowered to the plan's maximum. Without stream_key_id the account's default st | typed |
panda_get_live | Get details of a specific live stream. Returns {id, title, status, scheduled_at, stream_key, rtmp, live_hls, created_at}. Status: provisioning (channel starting), offline (waiting for signal or schedu | typed |
panda_regenerate_live | Regenerate an expired live so it can be broadcast again. Only works when status is expired (otherwise 400 with the current status). Keeps the same stream key, but the RTMP server may change: update it | typed |
panda_finish_live | End a live broadcast | typed |
panda_delete_lives | Delete one or more live streams | typed |
panda_list_stream_keys | List all stream keys for live broadcasting. Returns array of {id, title, region, default, stream_key, in_use, in_use_by: {live_id, title, status}, created_at}. A key is held (in_use) by a live that is | typed |
panda_create_stream_key | Create a new stream key for OBS or other streaming software. The account's first key becomes the default. | typed |
panda_get_live_viewers | Get viewer history for a live stream. Returns time-series array of viewer counts. | typed |
panda_get_account_analytics | Get general analytics metrics for the whole account. Returns {views, unique_viewers, watch_time_seconds, avg_watch_percentage, plays}. | incomplete |
panda_get_video_analytics | Get analytics metrics for a specific video. Returns {views, unique_viewers, watch_time_seconds, avg_watch_percentage, plays}. | incomplete |
panda_get_retention_analytics | Get audience retention analytics (account-wide or per video). Returns array of {percentage, viewers} showing drop-off at each point. | incomplete |
panda_get_ranking_analytics | Get ranking analytics for the account. Returns {most_watched: [{video_id, title, watch_time}], most_played: [{video_id, title, plays}]}. | incomplete |
panda_get_realtime_analytics | Get the real-time snapshot of the account: how many viewers are watching now and on which devices. Returns {total_users, devices: {mobile, desktop, others}, geojson} — geojson (the dashboard map clust | typed |
panda_get_unwatched_videos | List the account's videos that had NO access at all in a period (the inverse of the ranking). Whole account only. Only videos that already existed on start_date are considered. Returns {start_date, en | incomplete |
panda_get_best_times | Which weekday and 2-hour slot the audience of the WHOLE account plays the most (or sees the player the most) in a period — "best time to publish". Weekday × 2-hour slot grid, summed over the period — | incomplete |
panda_get_best_times_by_videos | Which weekday and 2-hour slot the audience of specific videos (or of every video in a folder) plays the most in a period. Weekday × 2-hour slot grid, summed over the period — the same grid as the dash | incomplete |
panda_get_viewers_by_videos | Who watched specific videos (or any video of a folder) in a period: distinct viewers, identified by IP. The IP is returned MASKED (a.b.x.x) — the full list is in the dashboard (Analytics → Users). The | incomplete |
panda_list_funnels | List all funnels. Returns {data: [{id, name, videos_count, created_at}]}. A funnel with videos_count=0 has no videos. Funnels are NOT folders. | typed |
panda_create_funnel | Create a new video funnel | typed |
panda_get_funnel | Get a funnel's details and its videos. Returns {data: {id, name, videos: [{id, title, status, is_first}]}}. Funnels are NOT folders. | typed |
panda_update_funnel | Update a funnel's properties (rename) | typed |
panda_delete_funnel | Delete a funnel by ID. WARNING: this is destructive. Videos inside the funnel may become inaccessible. | typed |
panda_get_subscription | Get current subscription/plan details. Returns {subscription_id, subscriptions: {name, status, active}, currency, addons}. addons.live lists live minutes billed above the plan's free minutes, per regi | typed |
panda_add_videos_to_funnel | Add one or more videos to a funnel with optional coordinates | typed |
panda_remove_videos_from_funnel | Remove one or more videos from a funnel | typed |
panda_get_watermark_status | Check whether watermark/DRM is currently active on the account. Returns {active: boolean}. | typed |
panda_enable_watermark | Enable watermark protection for the account | typed |
panda_disable_watermark | Disable watermark protection for the account | typed |
panda_list_watermark_groups | List all watermark groups. Returns array of {id, name, active, video_ids: [], folder_ids: [], created_at}. | typed |
panda_create_watermark_group | Create a new watermark group | typed |
panda_get_watermark_group | Get a watermark group's details. Returns {id, name, video_ids: [], folder_ids: [], created_at}. | typed |
panda_update_watermark_group | Update a watermark group | typed |
panda_delete_watermark_group | Delete a watermark group | typed |
panda_manage_drm_group_items | Add or remove videos and/or folders from a DRM watermark group. Returns the updated group with current video_ids and folder_ids. | typed |
panda_get_thumbnails | Get the cover (start thumbnail) of a video. Returns {response: {active, default}}: active = the uploaded cover in use (absent when none was uploaded), default = the automatic thumbnails generated from | typed |
panda_add_thumbnail | 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/GIF); the tool downloads it and uploads as | typed |
panda_add_pause_thumbnail | Upload a pause thumbnail — an image shown when the viewer pauses the video. Provide `image_url` pointing to a publicly reachable JPG, PNG or GIF up to 5 MB. The upload also creates the pause CTA, so t | typed |
panda_add_end_thumbnail | Upload an end thumbnail — an image shown after the video finishes. Provide `image_url` pointing to a publicly reachable JPG, PNG or GIF up to 5 MB. The upload also creates the end CTA, so the image sh | typed |
panda_delete_thumbnail | Delete a thumbnail from a video (image and its player CTA). Type: 'start' (default, the cover), 'pause', 'end'. For 'pause', thumb_name is required and must be the exact file name — returned by panda_ | typed |
panda_get_subtitles | Get all subtitle information for a video | typed |
panda_get_subtitle_by_language | Get a subtitle file for a specific language | typed |
panda_delete_subtitle | Remove a subtitle from a video by language | typed |
panda_generate_ai_subtitles | Generate subtitles for a video using Panda AI. Creates a transcription in the specified language. Costs credits based on video duration and tier. | typed |
panda_update_subtitle_visibility | Show or hide a subtitle language (hidden subtitles are not visible but still indexable for search) | typed |
panda_download_subtitle | Download a subtitle file for a specific language | typed |
panda_get_videos_count | Get total video count by status (CONVERTED, CONVERTING, DRAFT, etc.) | typed |
panda_get_custom_fields | Get all custom fields for a video. Returns array of {id, key, value} metadata pairs. | typed |
panda_create_custom_field | 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 p | typed |
panda_list_users | List all users in the organization. Returns array of {id, name, email, role_id, role_name, created_at}. | typed |
panda_create_user | Create a new user in the organization. Returns the created {id, name, email, role_id}. | typed |
panda_update_user | Update a user's information or role | typed |
panda_delete_user | Remove a user from the organization | typed |
panda_update_ai_assistant_video_bindings | Bind videos to an AI assistant (Tutor). Additive: only videos not yet bound are added; videos already bound stay as they are and nothing is unbound (use panda_remove_tutor_video to remove one). Only C | typed |
panda_request_download | Request an async download for a video. Only works for CONVERTED, non-external, non-Hotmart videos. Returns {status, url?}: when status is 'ready' the response already has `url` (a temporary signed lin | typed |
panda_check_download_status | Check the status of an async download request (same format/quality/language used in panda_request_download). Returns {status, url?} — `url` (a temporary signed link) is present when status is 'ready'. | typed |
panda_list_shorts | 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}. | typed |
panda_import_video_for_shorts | 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 | typed |
panda_list_short_segments | List all generated segments (clips) for a Shorts job. Each segment has viralScore, duration, transcription. | typed |
panda_delete_short | Delete a Shorts job/project | typed |
panda_save_segment_to_library | Save a Short segment to the video library as an independent video | typed |
panda_list_ai_assistants | List all AI video assistants. Returns array of {id, name, status, videos: [{id, title}], created_at}. | typed |
panda_get_ai_assistant | Get an AI assistant's details. Returns {id, name, status, videos: [{id, title}], files: [{id, file_name}], answers_count}. | typed |
panda_create_ai_assistant | Purchase credits and create a new AI assistant for a video. Returns the created {id, name, status, video_id}. | typed |
panda_get_ai_assistant_purchase_overview | Get credit cost overview before creating an AI assistant. Returns {credit_cost, current_balance, sufficient_credits}. | typed |
panda_update_ai_assistant | Update AI assistant information (name, status, etc.) | typed |
panda_generate_tutor_file_upload_url | 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. | typed |
panda_confirm_tutor_file_upload | Confirm that a file was successfully uploaded to a Tutor AI assistant (call after uploading to the presigned URL) | typed |
panda_delete_tutor_file | Delete a file from a Tutor AI assistant | typed |
panda_add_tutor_videos | Add videos to a Tutor AI assistant. Additive: only videos not yet bound are added; videos already bound stay as they are and nothing is unbound (use panda_remove_tutor_video to remove one). Only CONVE | typed |
panda_remove_tutor_video | Remove ONE video from a Tutor AI assistant: the tutor stops using it and its knowledge is deleted from the tutor. The video stays in the library. Refused when the video isn't bound to the tutor, when | typed |
panda_create_ai_dubbing | Create an AI dubbing of a video into one target language. The path follows the video's subtitles, like the dashboard: target already subtitled → audio only (DUBBING, reuses that subtitle); source subt | typed |
panda_delete_dubbing_audio | Delete a dubbed audio track from a video | typed |
panda_generate_ai_resource | Generate ONE AI package resource of a video — eBook, mind map or quiz — in one or more languages, with its settings and extra instructions (same as the dashboard: Video Settings → Panda AI). PAID: 1 c | typed |
panda_get_plan_usage | Get the current billing cycle usage and plan limits. Returns {start_period, end_period, plan_name, is_trial, storage, storage_plan, traffic, traffic_plan (all MB), play, play_plan, live, live_plan, li | typed |
panda_list_invoices | List all invoices. Returns array of {id, status, amount_due, amount_paid, created, due_date, invoice_pdf, hosted_invoice_url}. | typed |
panda_get_ai_resource_content | Read the CONTENT of one AI package resource of a video in one language: the quiz questions and options (correct ones marked) and its options, the mind map topics, or the eBook cover, style and chapter | typed |
panda_update_ai_resource | Edit an existing AI package resource of a video in one language, like the dashboard editor — free. Quiz: send `questions` (the WHOLE new list, 1 to 10 questions, 2 to 5 options each, read it first wit | typed |
panda_regenerate_ai_resource | Generate AGAIN an existing AI package resource of a video in one language — PAID and cannot be undone: the current one is deleted first, including every edit made to it. Cost: 1 credit per minute of v | typed |
panda_delete_ai_resource | Delete ONE AI package resource of a video in one language (eBook, mind map or quiz) — cannot be undone: its content, PDF, images and the published file are removed, also for legacy resources. Same as | typed |
panda_create_ai_resource | Create a quiz or mind map WITH CONTENT YOU PROVIDE (no AI, free) in a language that doesn't have one yet — the dashboard's "Add → Create New". Quiz: `questions` (1 to 10, 2 to 5 options each, correct | typed |
panda_set_ai_resource_download | Allow or block viewers from downloading a video's eBook, mind map or quiz (the dashboard's "Allow download"). Applies to every language of that resource. Free. | typed |
panda_get_ai_ebook_upload_url | Get a temporary upload URL (valid 1 hour) to send a file of the eBook: kind=pdf — your own PDF as the eBook of a language that has no eBook yet (up to 15 MB); kind=logo — a PNG/JPEG logo for the eBook | typed |
panda_confirm_ai_ebook_pdf | Finish the PDF upload started with panda_get_ai_ebook_upload_url (kind=pdf): the PDF is checked (exists, not empty, up to 15 MB, valid PDF) and becomes the eBook of that language. With upload_success= | typed |
panda_list_ai_works | List the account's AI works (subtitles, translations, dubbing, lipsync, eBook=ABSTRACT, mind map=MINDMAP, quiz=QUESTIONS) page by page, newest first, with status (QUEUE, RUNNING, FINISHED, ERROR, SKIP | typed |
panda_get_ai_ebook_images | Images generated with AI in the dashboard's eBook editor for one eBook × language, with their status (QUEUED, PROCESSING, SUCCESS, ERROR), and how many free images that eBook still has (5 free per eBo | typed |
panda_get_referrals_summary | Get referral program summary (balance, estimated value) | typed |
panda_get_credits_balance | Get the current credits balance for the account. 1 credit = R$1. | typed |
panda_get_credits_history | Get credits transaction history for a date range. Returns {balance, history: [{id, type, amount, status, description, created_at}]}. | incomplete |
panda_get_auto_recharge_settings | Get auto-recharge configuration for credits. Returns {enabled, trigger_value, action_value}. | typed |
panda_enable_auto_recharge | Enable auto-recharge for credits. When balance drops below trigger, recharges action_value. | typed |
panda_update_auto_recharge | Update auto-recharge settings | typed |
panda_disable_auto_recharge | Disable auto-recharge for credits | typed |
panda_list_comparisons | List all A/B test comparisons. Status: DRAFT → IN_PROGRESS → COMPLETED. Returns array of {id, name, description, status, videos: [], winner_video_id, created_at}. | typed |
panda_create_comparison | Create a new A/B test. Needs at least 2 videos to start. Returns the created {id, name, status, video_ids}. | typed |
panda_start_comparison | Start an A/B test (begin collecting data). Only from DRAFT status. Returns the updated comparison with status IN_PROGRESS. | typed |
panda_finish_comparison | Finish an A/B test and declare a winner. PERMANENT — cannot be reversed. | typed |
panda_delete_comparisons | Delete one or more A/B tests | typed |
panda_get_player_config | Get global player configuration (applies to all videos without a custom profile) | typed |
panda_list_plans | List available subscription plans and pricing | typed |
panda_list_subaccounts | List all subaccounts and their usage limits. Returns array of {organization_id, name, status, credits_balance, storage_used, limits}. | typed |
panda_update_subaccount | Update a subaccount's settings (name, limits, status) | typed |
panda_delete_subaccount | Delete a subaccount | typed |
panda_update_player_config | Update the account's GLOBAL player (dashboard page Player): controls, colors, theme, caption color/background/size, resume from last position, gear-menu items, menu language and time display. Applies | incomplete |
panda_get_video_player_config | Get per-video player configuration (chapters, CTAs, pixels, redirect, AI features, retention markers, subtitle default, offline config) | typed |
panda_update_video_config | Update per-video config (POST /player?type=video). Send only fields you want to change. Fields: chapters, default_subtitle, default_audio, redirect_video_id, custom_pixels, on_funnel, questions (AI qu | typed |
panda_set_video_offline | Configure offline playback for a video (mobile app feature) | typed |
panda_add_cta | 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. | typed |
panda_update_cta | 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. | typed |
panda_delete_cta | Delete a CTA from a video | typed |
panda_get_ai_workflows | Get every AI work of a video (subtitles, translation, dubbing, eBook=ABSTRACT, mind map=MINDMAP, quiz=QUESTIONS) with status (QUEUE, RUNNING, FINISHED, ERROR, SKIPPED). For the whole account or a fold | typed |
panda_list_notices | List the notices the Panda team sent to the account (tips, alerts, news) — the ones shown in the dashboard notice card and Notifications panel. Only the account owner and admins have notices: any othe | typed |
panda_update_notice_status | Mark one notice as 'read' (default — same as dismissing it in the dashboard) or 'completed'. Use 'completed' ONLY when the user explicitly asks for it: in the dashboard it means the user did what the | typed |
panda_request_partial_deletion | Remove some qualities and/or the original file (backup) of ONE CONVERTED video to free storage, keeping the video. The removed items disappear right away and are deleted for good after retention_days | typed |
panda_list_partial_deletions | List pending removals that can still be undone. type 'partial' = qualities/backup removed with panda_request_partial_deletion (cancel with panda_cancel_partial_deletion); 'video' = whole videos in the | typed |
panda_cancel_partial_deletion | Undo a partial deletion of ONE video before it is executed: the qualities/backup come back. Without qualities and backup, everything pending for the video is restored. Refused once the final deletion | typed |
panda_update_sign_language_display | Change how the sign language interpreter (Libras) window shows on a video's player: start time, size, position, autostart, or a free position/size. Only fields passed are changed. The interpreter clip | typed |
panda_encrypt_videos | Turn on Encrypted Anti-Download (HLS encryption) on existing videos, 1–100 per call (one video works too). PAID in credits, per video: ceil(duration in hours × number of current qualities), e.g. a 10- | typed |
panda_get_hls_encryption_batches | Progress of encryption batches started with panda_encrypt_videos. With idempotency_key: that batch; without it: every batch not finished yet (including failed videos). Each video: {video_id, status, s | typed |
panda_list_hls_encrypted_videos | List the account's videos that are already encrypted (HLS). Videos still in an encryption batch only show up when it finishes (see panda_get_hls_encryption_batches). Returns {total, page, limit, pages | typed |
panda_get_new_uploads_encryption | Whether new uploads are encrypted automatically (Encrypted Anti-Download / HLS encryption for future videos). Returns {library_id, status}. | typed |
panda_set_new_uploads_encryption | Turn automatic encryption (HLS) of NEW uploads on or off. No credit cost. Turning on is only for Gold/Enterprise plans or accounts with the 'Anti-Download Criptografado' add-on (checked before changin | typed |
panda_get_exclusive_playback | Whether Exclusive Playback is on (on-demand videos only play in the Panda Player). Returns {status}. | typed |
panda_set_exclusive_playback | Turn Exclusive Playback on or off (dashboard: Security > Anti-Download > "Reprodução Exclusiva", Beta). When ON, the on-demand videos of the account are served only to the Panda Player: the Panda Play | typed |
panda_get_library_qualities | The account's quality settings (dashboard: Settings > Qualities). Returns {encoding, playback, compression_mode, compression_label, keep_original_files}: encoding = "Conversão de Novos Uploads" (quali | typed |
panda_update_library_qualities | Change the account's quality settings (dashboard: Settings > Qualities); send only what changes. encoding ("Conversão de Novos Uploads"): qualities NEW uploads are converted to, each one using storage | typed |
panda_help_search | Search Panda Video help center articles to answer user questions. Searches through ALL 136 pre-indexed articles from the official help center (https://help.pandavideo.com/pt-br/). Use this tool whenev | typed |
panda_help_get_article | 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. | typed |
panda_get_business_rules | 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). U | typed |
panda_list_refer | 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|inact | typed |
panda_list_refer_all | 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_ | typed |
panda_list_folder_refer | 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. | typed |
panda_list_folder_refer_inherited | 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 actu | typed |
panda_create_refer | 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 (duplic | typed |
panda_create_folder_refer | 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. | typed |
panda_set_refer_status | 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). | typed |
panda_delete_refer | 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 tran | typed |
panda_delete_folder_refer | 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, errM | typed |
panda_update_folder_refer | 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 who | typed |
panda_set_block_none_refer | Turn the library's domain protection on or off (block_none_refer). false = protection OFF for the whole library: every request plays, with or without a referer, and even BLOCK domains are ignored. tru | typed |
panda_action_move_videos_by_folder | 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 alrea | typed |
panda_action_delete_folder_videos | 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 | typed |
panda_action_reencode_folder_videos | Deterministically resolve a folder and re-encode every CONVERTED video with a given compression mode (no credit cost). Each video is processed again from its original file (backup): videos without the | typed |
panda_action_duplicate_folder_videos | 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_ru | typed |
panda_action_set_folder_videos_offline | 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 | incomplete |
panda_action_rename_folder | Deterministically resolve a folder by name/ID/URL and rename it (PUT /folders/{id}). dry_run=true (default) previews the rename. | typed |
panda_action_create_folder_path | 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_ | typed |
panda_action_create_playlist_from_folder | 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. | typed |
panda_action_add_folder_videos_to_playlist | 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 addit | typed |
panda_action_apply_profile_to_folder | Deterministically resolve a player profile and a folder and link the profile to ALL videos of the folder in one call (sends folder_id, like the dashboard). Subfolders are not included; videos in any s | typed |
panda_action_apply_video_config_to_folder | Deterministically resolve a folder and apply per-video player config to every CONVERTED video (POST /player?type=video). Supports: default_subtitle (lang code or 'false'), default_audio (dubbing langu | typed |
panda_action_configure_folder_profile | Deterministically apply player-profile settings to every CONVERTED video in a folder, without touching videos outside it. Covers everything a profile holds: colors (Cores) incl. caption colors, captio | typed |
panda_action_set_folder_player_control | Enable or disable a single player control on every CONVERTED video in a folder, via player profiles, PRESERVING all other controls and without touching videos outside the folder. The big play button ( | typed |
panda_action_generate_subtitles_for_folder | 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 | typed |
panda_action_set_default_subtitle_for_folder | 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 | typed |
panda_action_remove_subtitle_language_from_folder | 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 c | typed |
panda_action_dub_folder_videos | 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 (defaul | typed |
panda_action_create_tutor_from_folder | 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 | typed |
panda_action_add_folder_videos_to_tutor | Deterministically resolve an existing AI Tutor (by name or ID) and a folder, then bind every CONVERTED folder video to the tutor (PUT /assist-ai/update_assistant_video_bind/{id}). Additive: videos alr | typed |
panda_action_enable_ai_package_for_folder | Deterministically resolve a folder and generate AI package resources — eBook, mind map and/or quiz — for every CONVERTED video, one request per video × resource (POST /aiworkflow ABSTRACT | MINDMAP | | typed |
panda_action_folder_ai_status | 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 | typed |
panda_action_generate_shorts_from_folder | 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) | typed |
panda_action_set_custom_field_for_folder | 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. | typed |
panda_action_apply_watermark_group_to_folder | 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/{i | typed |
panda_action_create_watermark_group_for_folder | 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. | typed |
panda_action_add_folder_videos_to_funnel | 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. | typed |
panda_action_schedule_lives | Create one or more scheduled live streams in a single call (POST /lives), optionally recording into a resolved folder. Defaults like the dashboard: region us, quality_package hd, save_vod true. Refuse | typed |
panda_action_set_anti_download | Enable or disable account-wide anti-download protection (GET/PUT /block_download). Reads the current state first and only changes it if needed. Turning it on is only for plans that include it (Gold/En | typed |
panda_action_set_allowed_domains | Add referer domains to the account's allow/block list for playback (POST /library/{id}?action=refer) and optionally turn domain protection on or off (block_none_refer). block_none_refer is applied fir | typed |
panda_action_request_folder_downloads | Deterministically resolve a folder and request an async download for every CONVERTED video (POST /download-async/{externalId}). Without quality, each video is requested at the highest quality it has; | typed |
panda_action_export_folder_analytics | 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. | typed |
panda_action_create_ab_test | 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. | typed |
panda_action_credit_preflight | 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. ai_pack | typed |
panda_action_preview_storage_reduction | How much the invoice will be if the account reduces its ADDITIONAL storage — to a new total (target_total_gb) or by removing an amount (remove_gb), in GB (1 TB = 1024 GB). Without an amount, returns t | typed |
panda_action_transfer_credits_to_subaccount | 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. | typed |
panda_action_provision_user | 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. | typed |
panda_action_create_review_link_for_folder | Deterministically resolve a folder and create a review link for every CONVERTED video (POST /video-review/{id}?action=link). dry_run=true (default) previews the links that would be created. | typed |
panda_action_set_webhook | 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/web | typed |
panda_action_set_forms_integration | 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), othe | typed |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/com-pandavideo-mcp)
Was this agent useful?
Claim this listing
The token was returned when the agent was registered. No token? Prove the domain or repository instead.