Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Panda Video

REMOTE · MCP.PANDAVIDEO.COM

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

+3 this week 92 Trust /100

Last scanned (15 hours ago)

Scores higher than 99% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability80
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 27581 tokens (~126/item across 218 items; 216 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management99
  • Stability check failed: schema churn in the 30 days we've observed: 0 tool removals, 2 breaking changes, 0 auth/transport breaks, 39 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 29 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 217 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
What we tested

Checks we ran (13)

  • TLS certificate
  • Authorization
  • HTTPS
  • HSTS header
  • DNSSEC
  • Transport
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Does not apply to this hosted endpoint (2)

  • Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
  • Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1
    • Tool “panda_action_dub_folder_videos” rewrote its description, which is the text the model reads security
    • Tool “panda_create_ai_dubbing” rewrote its description, which is the text the model reads security
    • “panda_action_dub_folder_videos” reworded the description of “mode” cosmetic
    • “panda_create_ai_dubbing” reworded the description of “is_lipsync” cosmetic
  • 4 Nov 26 0
    • Tool “panda_add_videos_to_funnel” rewrote its description, which is the text the model reads security
    • Tool “panda_delete_funnel” rewrote its description, which is the text the model reads security
    • Tool “panda_get_business_rules” rewrote its description, which is the text the model reads security
    • Tool “panda_help_search” rewrote its description, which is the text the model reads security
    • Tool “panda_remove_videos_from_funnel” rewrote its description, which is the text the model reads security
  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 89 to 93.

  • 31 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 79 to 83.

  • 30 Oct 26 0
    • New tool “panda_delete_ai_resource”, which the server declares destructive security
    • New tool “panda_regenerate_ai_resource”, which the server declares destructive security
    • New tool “panda_update_ai_resource”, which the server declares destructive security
    • Tool “panda_action_credit_preflight” rewrote its description, which is the text the model reads security
    • Tool “panda_action_enable_ai_package_for_folder” rewrote its description, which is the text the model reads security
    • Tool “panda_delete_ai_workflow” rewrote its description, which is the text the model reads security
    • Tool “panda_get_ai_workflows” rewrote its description, which is the text the model reads security
    • Tool “panda_get_videos_ai_resources” rewrote its description, which is the text the model reads security
    • Schema quality: 24596 → 27392 ▼ functional
    • New tool “panda_confirm_ai_ebook_pdf” functional
    • New tool “panda_create_ai_resource” functional
    • New tool “panda_generate_ai_resource” functional
    • New tool “panda_get_ai_ebook_images” functional
    • New tool “panda_get_ai_ebook_upload_url” functional
    • New tool “panda_get_ai_resource_content” functional
    • New tool “panda_list_ai_works” functional
    • New tool “panda_set_ai_resource_download” functional
    • “panda_action_enable_ai_package_for_folder” added an optional parameter “resources” cosmetic
    • “panda_action_enable_ai_package_for_folder” added an optional parameter “to_langs” cosmetic
    • “panda_action_credit_preflight” reworded the description of “target_langs” cosmetic
    • “panda_action_enable_ai_package_for_folder” reworded the description of “dry_run” cosmetic
    • “panda_action_enable_ai_package_for_folder” reworded the description of “from_lang” cosmetic
  • 29 Oct 26 +1
    • New tool “panda_encrypt_videos”, which the server declares destructive security
    • New tool “panda_set_exclusive_playback”, which the server declares destructive security
    • New tool “panda_set_new_uploads_encryption”, which the server declares destructive security
    • New tool “panda_update_library_qualities”, which the server declares destructive security
    • Tool “panda_action_reencode_folder_videos” rewrote its description, which is the text the model reads security
    • Tool “panda_action_set_allowed_domains” rewrote its description, which is the text the model reads security
    • Tool “panda_action_set_anti_download” rewrote its description, which is the text the model reads security
    • Tool “panda_reencode_video” rewrote its description, which is the text the model reads security
    • Tool “panda_set_block_none_refer” rewrote its description, which is the text the model reads security
    • Tool “panda_update_folder_refer” rewrote its description, which is the text the model reads security
    • Tool “panda_reencode_video” is now declared destructive security
    • New tool “panda_get_exclusive_playback” functional
    • New tool “panda_get_hls_encryption_batches” functional
    • New tool “panda_get_library_qualities” functional
    • New tool “panda_get_new_uploads_encryption” functional
    • New tool “panda_list_hls_encrypted_videos” functional
    • “panda_action_reencode_folder_videos” reworded the description of “compression_mode” cosmetic
    • “panda_action_set_allowed_domains” reworded the description of “block_none_refer” cosmetic
    • “panda_reencode_video” reworded the description of “compression_mode” cosmetic
    • “panda_set_block_none_refer” reworded the description of “block_none_refer” cosmetic
    • Tool “panda_set_block_none_refer” changed its title: Toggle Block-No-Referer Policy → Turn Domain Protection On/Off cosmetic
  • 28 Oct 26 0
    • New tool “panda_remove_tutor_video”, which the server declares destructive security
    • Tool “panda_action_add_folder_videos_to_tutor” rewrote its description, which is the text the model reads security
    • Tool “panda_add_tutor_videos” rewrote its description, which is the text the model reads security
    • Tool “panda_update_ai_assistant_video_bindings” rewrote its description, which is the text the model reads security
    • Tool “panda_update_ai_assistant_video_bindings” no longer declares itself destructive security
    • “panda_add_tutor_videos” added an optional parameter “lang” cosmetic
    • “panda_update_ai_assistant_video_bindings” reworded the description of “lang” cosmetic
    • “panda_update_ai_assistant_video_bindings” reworded the description of “video_ids” cosmetic
  • 27 Oct 26 0
    • New tool “panda_cancel_partial_deletion”, which the server declares destructive security
    • New tool “panda_request_partial_deletion”, which the server declares destructive security
    • New tool “panda_update_sign_language_display”, which the server declares destructive security
    • Tool “panda_action_apply_profile_to_folder” rewrote its description, which is the text the model reads security
    • Tool “panda_action_dub_folder_videos” rewrote its description, which is the text the model reads security
    • Tool “panda_action_request_folder_downloads” rewrote its description, which is the text the model reads security
    • Tool “panda_check_download_status” rewrote its description, which is the text the model reads security
    • Tool “panda_create_ai_dubbing” rewrote its description, which is the text the model reads security
    • Tool “panda_get_folder” rewrote its description, which is the text the model reads security
    • Tool “panda_request_download” rewrote its description, which is the text the model reads security
    • New tool “panda_get_videos_ai_resources” functional
    • New tool “panda_get_videos_status” functional
    • New tool “panda_list_partial_deletions” functional
    • “panda_get_folder” added an optional parameter “limit” cosmetic
    • “panda_get_folder” added an optional parameter “page” cosmetic
    • “panda_action_dub_folder_videos” reworded the description of “from_lang” cosmetic
    • “panda_action_dub_folder_videos” reworded the description of “mode” cosmetic
    • “panda_action_request_folder_downloads” reworded the description of “language” cosmetic
    • “panda_action_request_folder_downloads” reworded the description of “quality” cosmetic
    • “panda_check_download_status” reworded the description of “language” cosmetic
    • “panda_check_download_status” reworded the description of “quality” cosmetic
    • “panda_create_ai_dubbing” reworded the description of “from_lang” cosmetic
    • “panda_create_ai_dubbing” reworded the description of “is_lipsync” cosmetic
    • “panda_create_ai_dubbing” reworded the description of “replace_existing_subtitles” cosmetic
    • “panda_request_download” reworded the description of “language” cosmetic
    • “panda_request_download” reworded the description of “quality” cosmetic
    • “panda_create_ai_dubbing” made “from_lang” optional cosmetic
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://mcp.pandavideo.com/mcp

TLS valid

Negotiated TLS 1.2 with TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=*.pandavideo.com CN=Amazon RSA 2048 M01,O=Amazon,C=US 22 Oct 2026 7 May 2027 RSA 2048 SHA256-RSA a6b4f4ff4ff56832987356f0d55e10a
SANs: *.pandavideo.com
CN=Amazon RSA 2048 M01,O=Amazon,C=US (CA) CN=Amazon Root CA 1,O=Amazon,C=US 23 Aug 2022 23 Aug 2030 RSA 2048 SHA256-RSA 77312380b9d6688a33b1ed9bf9ccda68e0e0f
CN=Amazon Root CA 1,O=Amazon,C=US (CA) CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 25 May 2015 31 Dec 2037 RSA 2048 SHA256-RSA 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.pandavideo.com. — Not signed

Zone DS Keys Algorithms Outcome
. Trust anchor 20326, 38696 8, 8 Verified
com. DS published 19718 13 Verified
pandavideo.com. No DS Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://mcp.pandavideo.com/.well-known/oauth-protected-resource/mcp", scope="videos:read videos:write"

Bearer resource_metadata="https://mcp.pandavideo.com/.well-known/oauth-protected-resource/mcp", scope="videos:read videos:write"

Protected resource metadata

Document https://mcp.pandavideo.com/.well-known/oauth-protected-resource/mcp
Retrieved Yes
Resource https://mcp.pandavideo.com/mcp
Authorisation server https://mcp.pandavideo.com

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.pandavideo.com/mcp Verified 200
http (plaintext) http://mcp.pandavideo.com/mcp HTTPS enforced 301 https://mcp.pandavideo.com:443/mcp
MCP tools · 216 exposed · ~27,542 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
panda_list_ai_works ~238

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, SKIPPED). Only the latest attempt of each video × type × language. Filters: status, updated_since, video_id, folder_id (the API doesn't filter by type). Read-only. Returns {works: [{id, video_id, type, status, from_lang, to_lang, credits_charged, created_at, updated_at}], page, pages, total}.

NameTypeReqDescription
folder_idstring–Only this folder
limitinteger–Per page, 1–50 (default 25)
pageinteger–Page (default 1)
statusarray–Only these statuses
updated_sincestring–Only works updated since this ISO date/time, e.g. '2026-10-01T00:00:00Z'
video_idstring–Only this video

No output schema declared.

No examples provided.

panda_list_comparisons ~51

List all A/B test comparisons. Status: DRAFT → IN_PROGRESS → COMPLETED. Returns array of {id, name, description, status, videos: [], winner_video_id, created_at}.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

panda_list_folder_refer ~88

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.

NameTypeReqDescription
folder_idstringyesFolder UUID whose referrers to list
library_idstring–Library UUID. Resolved from GET /library when omitted.

No output schema declared.

No examples provided.

panda_list_folder_refer_inherited ~130

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.

NameTypeReqDescription
folder_idstringyesFolder UUID to resolve effective referrers for
library_idstring–Library UUID. Resolved from GET /library when omitted.

No output schema declared.

No examples provided.

panda_list_folders ~54

List all folders. Returns array of {id, name, parent_folder_id, status, created_at, videos_count}.

NameTypeReqDescription
all_statusnumber–1 to include deleted folders, 0 for active only

No output schema declared.

No examples provided.

panda_list_funnels ~46

List all funnels. Returns {data: [{id, name, videos_count, created_at}]}. A funnel with videos_count=0 has no videos. Funnels are NOT folders.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

panda_list_hls_encrypted_videos ~137

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, videos: [{id, title, status, folder_id, encrypted_at, available_resolutions, ...}]}. Default 25 videos per page, max 50; keep calling with page+1 while page < pages.

NameTypeReqDescription
limitinteger–Videos per page (default: 25, max: 50)
pageinteger–Page number (default: 1)

No output schema declared.

No examples provided.

panda_list_invoices ~40

List all invoices. Returns array of {id, status, amount_due, amount_paid, created, due_date, invoice_pdf, hosted_invoice_url}.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

panda_list_lives ~138

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 starting), offline (waiting for signal or scheduled), online, finishing, finished, finished_imported (recording became a video), expired (no signal in time; can be regenerated). stream_key is a secret credential: show it only when the user asks for it (e.g. to set up OBS).

NameTypeReqDescription
pagenumber–Page number (default 1, 100 per page)

No output schema declared.

No examples provided.

panda_list_notices ~143

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 other user gets an empty list (not an error). Status: 'sent' = unread, 'read' = dismissed, 'completed' = the user already acted on it (clicked its button). Returns up to 100 [{id, notice_type, title, text, primary_button, secondary_button, status, created_at, read_at, completed_at}].

NameTypeReqDescription
statusstring–Filter by status ('sent' = unread). Omit for all.

No output schema declared.

No examples provided.

panda_list_partial_deletions ~133

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 trash; 'all' (default) = both. Returns {retention_days, partial_deletions, pagination}.

NameTypeReqDescription
limitinteger–Results per page (default: 25, max: 100)
pageinteger–Page number (default: 1)
typestring–Default: all
video_idstring–Only this video

No output schema declared.

No examples provided.

panda_list_plans ~25

List available subscription plans and pricing

NameTypeReqDescription
currencystring–Currency

No output schema declared.

No examples provided.

panda_list_playlists ~33

List all playlists. Returns array of {id, name, videos_quantity, duration, access_type, updated_at}.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

panda_list_profiles ~104

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, colors, availableQualities}. The default profile ('Padrão') has is_default=true. Exclusive profiles (a single video's own customized player) are NOT listed. Use panda_get_profile for a profile's full settings. No pagination.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

panda_list_refer ~95

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.

NameTypeReqDescription
library_idstring–Library UUID. Resolved from GET /library when omitted.

No output schema declared.

No examples provided.

panda_list_refer_all ~161

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.

NameTypeReqDescription
library_idstring–Library UUID. Resolved from GET /library when omitted.

No output schema declared.

No examples provided.

panda_list_short_segments ~43

List all generated segments (clips) for a Shorts job. Each segment has viralScore, duration, transcription.

NameTypeReqDescription
job_idstringyesShorts job ID

No output schema declared.

No examples provided.

panda_list_shorts ~60

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}.

NameTypeReqDescription
pagenumber–Page number (default 1)

No output schema declared.

No examples provided.

panda_list_stream_keys ~115

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 online, provisioning, expired, waiting to start or scheduled within 24h; an expired live holds it until regenerated or deleted. stream_key is a secret credential: show it only when the user asks for it (e.g. to set up OBS).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

panda_list_subaccounts ~38

List all subaccounts and their usage limits. Returns array of {organization_id, name, status, credits_balance, storage_used, limits}.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

panda_list_users ~35

List all users in the organization. Returns array of {id, name, email, role_id, role_name, created_at}.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

panda_list_videos ~192

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_times_by_videos / panda_get_viewers_by_videos take. 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.

NameTypeReqDescription
folder_idstring–Filter by folder ID
limitinteger–Results per page (default: 25, max: 100)
pageinteger–Page number (default: 1)
statusstring–Filter by status (e.g. 'CONVERTED')
titlestring–Search by video title (partial match, case-insensitive)

No output schema declared.

No examples provided.

panda_list_watermark_groups ~71

List all watermark groups. Returns array of {id, name, active, video_ids: [], folder_ids: [], created_at}.

NameTypeReqDescription
limitinteger–Results per page (default: 25, max: 100)
pageinteger–Page number (default: 1)

No output schema declared.

No examples provided.

panda_manage_drm_group_items ~83

Add or remove videos and/or folders from a DRM watermark group. Returns the updated group with current video_ids and folder_ids.

NameTypeReqDescription
actionstringyesWhether to add or remove items
drm_group_idstringyesWatermark group ID
folder_idsarray–Folder IDs
video_idsarray–Video IDs

No output schema declared.

No examples provided.

panda_move_videos ~61

Move one or more videos to a folder

NameTypeReqDescription
folder_idstringyesTarget folder ID, or "root" to move to the root (no folder)
video_idsarrayyesList of video IDs to move (max 50)

No output schema declared.

No examples provided.

panda_reencode_video ~127

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 re-encoded ones and it stays in processing until done. Encryption (HLS) is kept. To encrypt videos use panda_encrypt_videos.

NameTypeReqDescription
compression_modestringyessize = 'Econômica' (smaller files), balanced = 'Equilibrada', quality = 'Maior qualidade' (dashboard names)
video_idstringyesVideo ID

No output schema declared.

No examples provided.

panda_regenerate_ai_resource ~304

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 video (minimum 1 min; a partial minute counts only past 1 s); free on an active Gold/Enterprise plan while the daily AI quota lasts (checked before sending). Without new settings it reuses the previous ones. Refused while the resource is still generating, for uploaded PDF eBooks, or when the balance doesn't cover it. Also the way to make a legacy (old package) resource editable. Returns {video_id, resource, lang, gross_cost_credits, cost_credits, free_by_daily_quota, response}; response is the queued request, and while it generates the resource is missing from the video.

NameTypeReqDescription
custom_instructionsstring–Extra instructions for the AI
ebook_configobject–eBook only: new style
image_generation_countinteger–eBook only: AI images (0 to 10)
langstringyesLanguage of the resource to regenerate, e.g. 'en'
mindmap_configobject–Mind map only: orientation, color
quiz_configobject–Quiz only: questions, options and quiz options
resourcestringyesebook, mindmap or quiz
video_idstringyesVideo ID

No output schema declared.

No examples provided.

panda_regenerate_live ~126

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 in OBS. Start broadcasting within 15 minutes or the live expires again. Returns {id, status: provisioning, stream_key, stream_key_id, rtmp, region, started_at}. stream_key is a secret credential: show it only when the user asks for it (e.g. to set up OBS).

NameTypeReqDescription
live_idstringyesLive ID

No output schema declared.

No examples provided.

panda_remove_tutor_video ~132

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 it is the tutor's last video (use panda_delete_ai_assistant to delete the tutor), and while the video is still being processed by the tutor (queued/processing — try again when it finishes). Returns {assistant_id, video_id}.

NameTypeReqDescription
assistant_idstringyesTutor assistant ID
video_idstringyesVideo ID to remove from the tutor (one per call)

No output schema declared.

No examples provided.

panda_remove_video_from_playlist ~46

Remove a video from a playlist. Does NOT delete the video.

NameTypeReqDescription
playlist_idstringyesPlaylist ID
video_idstringyesVideo ID to remove

No output schema declared.

No examples provided.

panda_remove_videos_from_funnel ~78

Remove one or more videos from a funnel. The videos leave the funnel and go to the library root — they are not deleted (the dashboard deletes them in a second call; this tool does not).

NameTypeReqDescription
idstringyesFunnel ID
video_idsarrayyesVideo IDs to remove (max 50)

No output schema declared.

No examples provided.

panda_request_download ~283

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 link); otherwise poll panda_check_download_status with the same format/quality/language. Lipsync dubbing is a separate video: to download it, pass the video_external_id of that language's entry in config.lipsync_info[] (panda_get_video) and language = that language.

NameTypeReqDescription
formatstringyesDownload format
languagestringyesAudio language: 'default' for the original audio, or the code of a dubbed audio of the video (e.g. 'en', 'es' — see audios[] in panda_get_video). 'original' is read as 'default'.
qualitystringyesQuality: one of 240p, 360p, 480p, 720p, 1080p, 1440p, 2160p, original ('1080' is read as '1080p'). 'original' is the uploaded file; the others must be in the video's available_resolutions.
video_external_idstringyesVideo external ID
video_titlestringyesVideo title (for the download file name)

No output schema declared.

No examples provided.

panda_request_partial_deletion ~185

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 (30); until then panda_cancel_partial_deletion restores them. Videos from an external source are refused. Refused when it would leave the video with no quality: the API would send the whole video to the trash instead — use panda_delete_videos to delete a video. Returns {retention_days, action, remaining_qualities, ignored, partial_deletion}.

NameTypeReqDescription
backupboolean–true = remove the original uploaded file (backup)
qualitiesarray–Qualities to remove, as in the video's available_resolutions (e.g. ['1080p', '720p'])
video_idstringyesVideo ID (one video per call)

No output schema declared.

No examples provided.

panda_restore_profile ~98

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 — this also drops the profile's theme, gear menu, caption size and offline settings unless the global has them. Changes every video linked to the profile. Returns the restored profile.

NameTypeReqDescription
profile_idstringyesProfile ID to restore

No output schema declared.

No examples provided.

panda_save_segment_to_library ~59

Save a Short segment to the video library as an independent video

NameTypeReqDescription
folder_idstring–Folder ID to save into
segment_idstringyesSegment ID
titlestring–Title for the saved video

No output schema declared.

No examples provided.

panda_set_ai_resource_download ~84

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.

NameTypeReqDescription
allow_downloadbooleanyestrue = viewers can download; false = blocked
resourcestringyesebook, mindmap or quiz
video_idstringyesVideo ID

No output schema declared.

No examples provided.

panda_set_block_none_refer ~270

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. true = the ACTIVE domains apply: requests without a referer are blocked (native TV/iOS players excepted), with ALLOW domains only matching referers play, with only BLOCK domains the matching referers are blocked; with no active domain nothing is blocked. WARNING: this also rewrites the status of ALL the library's domains (library and folders): true activates every domain, including ones turned off on purpose (to keep one off, deactivate it afterwards with panda_set_refer_status); false deactivates all of them. Refused (400) while any domain is still pending, deleting or turning inactive. The server recalculates the flag afterwards: it is true while at least one domain is active. On error the API returns { errCode, errMsg }. library_id is resolved automatically when omitted.

NameTypeReqDescription
block_none_referbooleanyestrue = protection on (active domains apply; all domains are activated); false = protection off (all domains are deactivated)
library_idstring–Library UUID. Resolved from GET /library when omitted.

No output schema declared.

No examples provided.

panda_set_default_profile ~165

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_videos_strategy: 'apply-new' = they follow the new default; 'keep-current' = they stay with the current profile. Without it only the default flag changes and no video is touched. Video changes run in the background (videoMigrationQueued). Returns {message, id, videoMigrationQueued}.

NameTypeReqDescription
profile_idstringyesProfile ID that becomes the default
unlinked_videos_strategystring–What happens to the videos of the current default: 'apply-new' (follow the new default) or 'keep-current' (stay as they are)

No output schema declared.

No examples provided.

panda_set_exclusive_playback ~256

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 Player embedded by iframe keeps working on any site allowed by domain protection (members areas that use the embed included), while custom players, scrapers or extensions that open the HLS (m3u8) link directly get a decoy video. It deters casual capture; it is not DRM. Covers on-demand videos, Libras and the main audio; does not cover live streams, dubbed audio tracks, subtitles or downloads (they keep working). Requires the Simple Anti-Download to be ON (checked before changing; turn it on with panda_action_set_anti_download); turning Simple Anti-Download off turns Exclusive Playback off too. Turning on is only for plans that include Simple Anti-Download (Gold/Enterprise and others; Silver/Bronze need the "Anti-Download Simples" add-on, contracted in the dashboard; not available on Clipador/Clipper and VSL Only plans).

NameTypeReqDescription
enabledbooleanyestrue = only the Panda Player plays the videos; false = stop

No output schema declared.

No examples provided.

panda_set_new_uploads_encryption ~123

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 changing; otherwise refused). Existing videos don't change: to encrypt them use panda_encrypt_videos (paid). Turning off only affects future uploads: videos already encrypted stay encrypted, and a paid add-on stays billed until it is removed in the dashboard.

NameTypeReqDescription
enabledbooleanyestrue = encrypt new uploads; false = stop

No output schema declared.

No examples provided.

panda_set_refer_status ~152

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.

NameTypeReqDescription
activebooleanyestrue to activate, false to deactivate
library_idstring–Library UUID. Resolved from GET /library when omitted.
refer_idstringyesReferrer UUID to toggle

No output schema declared.

No examples provided.

panda_set_video_offline ~100

Configure offline playback for a video (mobile app feature)

NameTypeReqDescription
enabledbooleanyesEnable or disable offline playback
expire_daysnumber|null–Days until offline access expires (null = never)
external_link_enabledboolean–Show external link button
external_link_textstring–External link button text
external_link_urlstring–External link URL
video_idstringyesVideo ID

No output schema declared.

No examples provided.

panda_start_comparison ~45

Start an A/B test (begin collecting data). Only from DRAFT status. Returns the updated comparison with status IN_PROGRESS.

NameTypeReqDescription
comparison_idstringyesComparison ID

No output schema declared.

No examples provided.

panda_transfer_credits ~44

Transfer credits to a subaccount

NameTypeReqDescription
amountnumberyesNumber of credits to transfer
target_organization_idstringyesTarget subaccount organization ID

No output schema declared.

No examples provided.

panda_update_ai_assistant ~60

Update AI assistant information (name, status, etc.)

NameTypeReqDescription
assistant_idstringyesAI assistant ID
namestring–New name
statusstring–New status (e.g. 'ready', 'disabled')

No output schema declared.

No examples provided.

panda_update_ai_assistant_chat_visibility ~50

Show or hide the AI chat widget on the video player

NameTypeReqDescription
assistant_idstringyesAI assistant ID
visiblebooleanyesTrue to show, false to hide

No output schema declared.

No examples provided.

panda_update_ai_assistant_video_bindings ~180

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 CONVERTED videos: if any ID doesn't exist or isn't CONVERTED, the whole request is refused. Billing: each NEW video without a subtitle in the tutor's language gets a transcription, charged at ceil(minutes/5) credits per video (Gold/Enterprise plans outside trial get free transcriptions up to a daily limit); without enough credits the API refuses before binding anything.

NameTypeReqDescription
assistant_idstringyesAI assistant ID
langstring–Language code; only used when the tutor has no language set
video_idsarrayyesVideo IDs to add (max 50)

No output schema declared.

No examples provided.

panda_update_ai_resource ~369

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 with panda_get_ai_resource_content) and/or `quiz_settings`. Mind map: `mindmap_edits` (replace an excerpt that exists in one topic only) and/or `mindmap_settings`. eBook: `ebook_edits` (replace an excerpt that exists once in the text), `cover` and/or `ebook_config` (style, logo); the eBook is then recomposed from its text (manual formatting done in the dashboard editor may be lost; images stay) and the new PDF is ready in about 1 minute. Legacy resources (old package) and uploaded PDF eBooks can't be edited. Returns {video_id, resource, lang, saved, changes}; read the result with panda_get_ai_resource_content.

NameTypeReqDescription
coverobject–eBook: cover texts that change
ebook_configobject–eBook: style that changes (layout, fonts, colors, format, logo)
ebook_editsarray–eBook: text replacements
langstringyesLanguage of the resource, e.g. 'en'
mindmap_editsarray–Mind map: text replacements in topics
mindmap_settingsobject–Mind map: orientation, color
questionsarray–Quiz: the whole new list of questions (replaces the current one)
quiz_settingsobject–Quiz: turn its options on/off
resourcestringyesebook, mindmap or quiz
video_idstringyesVideo ID

No output schema declared.

No examples provided.

panda_update_auto_recharge ~39

Update auto-recharge settings

NameTypeReqDescription
action_valuenumberyesNew recharge amount
trigger_valuenumberyesNew trigger threshold

No output schema declared.

No examples provided.

panda_update_cta ~319

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.

NameTypeReqDescription
append_website_query_paramsboolean–Append the page's URL query params to the button's URL
background_colorstring–Background color, hex (default: #3e50f7)
background_hover_colorstring–Background color on hover, hex
cta_idstringyesID of the CTA to update
custom_htmlstring–Raw HTML/CSS/JS to render instead of the styled button (advanced)
end_timenumber–Seconds into the video when the button disappears. Omit to show until the end of the video.
placementstringyesCTA placement
positionstring–Button position on the video overlay. Only applies to placement='inside'.
sizestring–Button size (default: small)
start_timenumber–Seconds into the video when the button appears. Omit (with end_time) for the whole video.
textstring–Button label text. Required unless custom_html is set.
text_colorstring–Text color, hex (default: #FFFFFF)
text_hover_colorstring–Text color on hover, hex
urlstring–URL opened when the button is clicked. Required unless custom_html is set.
video_idstringyesVideo ID

No output schema declared.

No examples provided.

Install

How do I install the Panda Video MCP server?

Panda Video is a hosted endpoint at https://mcp.pandavideo.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.pandavideo.com

# add to Claude Code
claude mcp add --transport http com-pandavideo-mcp 'https://mcp.pandavideo.com/mcp'
Common questions

What is the Panda Video MCP server?

Panda Video is an MCP server listed in the public MCP registry as com.pandavideo/mcp. Video hosting: upload, organize and configure videos, analytics, AI subtitles and Shorts. This page covers its hosted endpoint (https://mcp.pandavideo.com/mcp).

Is the Panda Video MCP server safe to use?

Panda Video scores 92 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Panda Video MCP server expose?

Panda Video exposes 216 tools: panda_list_videos, panda_get_video, panda_update_video, panda_delete_videos, panda_get_videos_status, and 211 more. Their descriptions and schemas cost roughly 27,542 tokens of context every time the server is loaded.

Does the Panda Video MCP server require authentication?

Yes. Panda Video asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Panda Video MCP server still maintained?

Panda Video is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What did VerifyMCP test on the Panda Video MCP server?

VerifyMCP ran 13 checks on Panda Video, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.