com.pandavideo/mcp · v2.1.0 · ai-and-media
Panda Video is healthy: it completed an MCP handshake in 642 ms and exposes 177 tools.
Video hosting: upload, organize and configure videos, analytics, AI subtitles and Shorts.
Endpoint: https://mcp.pandavideo.com/mcp (streamable-http)
Repository · Website · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 177 |
| Latency | 642 ms |
| Last checked (UTC) | 2026-10-15T23:10:08.077Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-10-15T23:10:08.077Z | Healthy | 642 | |
| 2026-10-14T21:05:39.838Z | Healthy | 2969 |
panda_list_videos | 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. |
panda_get_video | Get full properties of a video by its ID, including config, profile, status, duration, folder, subtitles, etc. |
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 specific tools for those. |
panda_delete_videos | Delete one or more videos by ID. Sends to trash for 30 days. |
panda_move_videos | Move one or more videos to a folder |
panda_duplicate_video | Create a copy of a video. Only works for CONVERTED, non-external, non-funnel videos. |
panda_reencode_video | Re-encode a video with a specific compression mode |
panda_upload_video_from_url | Import a video from an external URL (YouTube, Vimeo, S3, generic HTTPS) |
panda_list_folders | List all folders. Returns array of {id, name, parent_folder_id, status, created_at, videos_count}. |
panda_create_folder | Create a new folder. Returns the created {id, name, parent_folder_id}. |
panda_get_folder | Get a folder's details and contents. Returns {id, name, parent_folder_id, status, videos: [{id, title, status}], folders: [{id, name}]}. |
panda_update_folder | Update folder properties (name, parent). Also used to recover deleted folders with status=true. |
panda_delete_folder | Delete a folder by ID. WARNING: All videos and subfolders inside are also deleted (cascade). Goes to trash for 30 days. |
panda_list_playlists | List all playlists. Returns array of {id, name, videos_quantity, duration, access_type, updated_at}. |
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}. |
panda_get_playlist | Get details of a specific playlist. Returns {id, name, description, videos_quantity, access_type, creator_name, duration, updated_at}. |
panda_update_playlist | Update a playlist's properties |
panda_delete_playlist | Delete a playlist. Videos are NOT deleted — only the collection is removed. |
panda_get_playlist_videos | List all videos in a playlist. Returns array of {id, video_id, order, video: {id, title, duration}}. |
panda_add_videos_to_playlist | Add videos to a playlist with order. Returns the updated playlist video entries [{video_id, playlist_id, order}]. |
panda_remove_video_from_playlist | Remove a video from a playlist. Does NOT delete the video. |
panda_list_profiles | 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. |
panda_create_profile | 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 pand |
panda_get_profile | Get details of a specific player profile including all settings (controls, colors, vsl, saveProgress) |
panda_update_profile | 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_delete_profile | Delete a player profile by ID |
panda_apply_profile_to_videos | Apply a player profile to one or more videos. Returns confirmation with the list of updated video_ids. |
panda_list_lives | List all live streams. Returns array of {id, title, status, scheduled_at, created_at}. |
panda_create_live | Create a new live stream event |
panda_get_live | Get details of a specific live stream. Returns {id, title, status, scheduled_at, stream_key, rtmp, live_hls, created_at}. |
panda_finish_live | End a live broadcast |
panda_delete_lives | Delete one or more live streams |
panda_list_stream_keys | List all stream keys for live broadcasting. Returns array of {id, name, stream_key, rtmp, created_at}. |
panda_create_stream_key | Create a new named stream key for OBS or other streaming software |
panda_get_live_viewers | Get viewer history for a live stream. Returns time-series array of viewer counts. |
panda_get_account_analytics | Get general analytics metrics for the whole account. Returns {views, unique_viewers, watch_time_seconds, avg_watch_percentage, plays}. |
panda_get_video_analytics | Get analytics metrics for a specific video. Returns {views, unique_viewers, watch_time_seconds, avg_watch_percentage, plays}. |
panda_get_retention_analytics | Get audience retention analytics (account-wide or per video). Returns array of {percentage, viewers} showing drop-off at each point. |
panda_get_ranking_analytics | Get ranking analytics for the account. Returns {most_watched: [{video_id, title, watch_time}], most_played: [{video_id, title, plays}]}. |
panda_get_realtime_analytics | Get real-time viewer count and activity for the account. Returns {current_viewers, active_videos: [{video_id, title, viewers}]}. |
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. |
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. |
panda_create_funnel | Create a new video funnel |
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. |
panda_update_funnel | Update a funnel's properties (rename) |
panda_delete_funnel | Delete a funnel by ID. WARNING: this is destructive. Videos inside the funnel may become inaccessible. |
panda_add_videos_to_funnel | Add one or more videos to a funnel with optional coordinates |
panda_remove_videos_from_funnel | Remove one or more videos from a funnel |
panda_get_watermark_status | Check whether watermark/DRM is currently active on the account. Returns {active: boolean}. |
panda_enable_watermark | Enable watermark protection for the account |
panda_disable_watermark | Disable watermark protection for the account |
panda_list_watermark_groups | List all watermark groups. Returns array of {id, name, active, video_ids: [], folder_ids: [], created_at}. |
panda_create_watermark_group | Create a new watermark group |
panda_get_watermark_group | Get a watermark group's details. Returns {id, name, video_ids: [], folder_ids: [], created_at}. |
panda_update_watermark_group | Update a watermark group |
panda_delete_watermark_group | Delete a watermark group |
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. |
panda_get_thumbnails | Get all thumbnails for a video. Returns {start: {url, name}, pause: [{url, name}], end: {url, name}} — each type may be null if not set. |
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/WEBP); the tool downloads it and uploads as multipart to the Panda API. Replaces any existing start thumbnail. After this returns, the cover is |
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 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 wi |
panda_add_end_thumbnail | 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 thi |
panda_delete_thumbnail | Delete a thumbnail from a video. Type: 'start' (default), 'pause' (requires thumb_name), 'end'. |
panda_get_subtitles | Get all subtitle information for a video |
panda_get_subtitle_by_language | Get a subtitle file for a specific language |
panda_delete_subtitle | Remove a subtitle from a video by language |
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. |
panda_update_subtitle_visibility | Show or hide a subtitle language (hidden subtitles are not visible but still indexable for search) |
panda_download_subtitle | Download a subtitle file for a specific language |
panda_get_videos_count | Get total video count by status (CONVERTED, CONVERTING, DRAFT, etc.) |
panda_get_custom_fields | Get all custom fields for a video. Returns array of {id, key, value} metadata pairs. |
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 per video. |
panda_list_users | List all users in the organization. Returns array of {id, name, email, role_id, role_name, created_at}. |
panda_create_user | Create a new user in the organization. Returns the created {id, name, email, role_id}. |
panda_update_user | Update a user's information or role |
panda_delete_user | Remove a user from the organization |
panda_request_download | Request an async download for a video. Only works for CONVERTED, non-external, non-Hotmart videos. Returns {status, message}. |
panda_check_download_status | Check the status of an async download request. Returns {status, download_url} — url is present when status is 'ready'. |
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}. |
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 DRM. |
panda_list_short_segments | List all generated segments (clips) for a Shorts job. Each segment has viralScore, duration, transcription. |
panda_delete_short | Delete a Shorts job/project |
panda_save_segment_to_library | Save a Short segment to the video library as an independent video |
panda_list_ai_assistants | List all AI video assistants. Returns array of {id, name, status, videos: [{id, title}], created_at}. |
panda_get_ai_assistant | Get an AI assistant's details. Returns {id, name, status, videos: [{id, title}], files: [{id, file_name}], answers_count}. |
panda_create_ai_assistant | Purchase credits and create a new AI assistant for a video. Returns the created {id, name, status, video_id}. |
panda_get_ai_assistant_purchase_overview | Get credit cost overview before creating an AI assistant. Returns {credit_cost, current_balance, sufficient_credits}. |
panda_update_ai_assistant | Update AI assistant information (name, status, etc.) |
panda_update_ai_assistant_video_bindings | Replace the videos bound to an AI assistant. Sends the FULL list of video_ids — existing bindings not in the list will be removed. |
panda_update_ai_assistant_chat_visibility | Show or hide the AI chat widget on the video player |
panda_delete_ai_assistant | Delete an AI assistant |
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. |
panda_confirm_tutor_file_upload | Confirm that a file was successfully uploaded to a Tutor AI assistant (call after uploading to the presigned URL) |
panda_delete_tutor_file | Delete a file from a Tutor AI assistant |
panda_add_tutor_videos | Add videos to a Tutor AI assistant |
panda_create_ai_dubbing | 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}. |
panda_delete_dubbing_audio | Delete a dubbed audio track from a video |
panda_get_referrals_summary | Get referral program summary (balance, estimated value) |
panda_get_credits_balance | Get the current credits balance for the account. 1 credit = R$1. |
panda_get_credits_history | Get credits transaction history for a date range. Returns {balance, history: [{id, type, amount, status, description, created_at}]}. |
panda_get_auto_recharge_settings | Get auto-recharge configuration for credits. Returns {enabled, trigger_value, action_value}. |