Panda Video
REMOTE · MCP.PANDAVIDEO.COM
Video hosting: upload, organize and configure videos, analytics, AI subtitles and Shorts.
Available components
Last scanned (14 hours ago)
Scores higher than 99% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Design and Media
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
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
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 →
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
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 |
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 →
panda_get_account_analytics Get Account Analytics ~64
Get general analytics metrics for the whole account. Returns {views, unique_viewers, watch_time_seconds, avg_watch_percentage, plays}.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | – | – | End date (YYYY-MM-DD) |
| start_date | string | – | Start date (YYYY-MM-DD) |
No output schema declared.
No examples provided.
panda_get_ai_assistant Get AI Assistant ~55
Get an AI assistant's details. Returns {id, name, status, videos: [{id, title}], files: [{id, file_name}], answers_count}.
| Name | Type | Req | Description |
|---|---|---|---|
| assistant_id | string | yes | AI assistant ID |
No output schema declared.
No examples provided.
panda_get_ai_assistant_purchase_overview Get AI Assistant Purchase Overview ~46
Get credit cost overview before creating an AI assistant. Returns {credit_cost, current_balance, sufficient_credits}.
| Name | Type | Req | Description |
|---|---|---|---|
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_get_ai_ebook_images Get AI eBook Images ~113
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 eBook × language, then 1 credit each). Generating images is done in the dashboard editor. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| lang | string | yes | Language of the eBook, e.g. 'pt-BR' |
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_get_ai_ebook_upload_url Get AI eBook Upload URL ~223
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 (up to 5 MB). The URL is a credential: don't show or share it. Send the file with an HTTP PUT to upload_url with the Content-Type header exactly as returned. Then: PDF → panda_confirm_ai_ebook_pdf; logo → pass logo_key in ebook_config of panda_update_ai_resource (existing eBook) or panda_generate_ai_resource. Your client must be able to send files over HTTP; otherwise use the dashboard (Video Settings → Panda AI → eBook).
| Name | Type | Req | Description |
|---|---|---|---|
| content_type | string | – | logo: file type |
| kind | string | yes | pdf or logo |
| lang | string | – | pdf: language of the eBook. Default: the video's language |
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_get_ai_resource_content Get AI Resource Content ~191
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 chapters (with `chapter`, that chapter's text; the whole text when short). Also says whether the resource can be edited (legacy = generated by the old package, not editable; uploaded PDF eBook = no content). Read-only. Use before panda_update_ai_resource. To list which resources a video has use panda_get_videos_ai_resources.
| Name | Type | Req | Description |
|---|---|---|---|
| chapter | integer | – | eBook only: chapter number whose text to return |
| lang | string | – | Language of the resource, e.g. 'en'. Default: the only one, else the video's language |
| resource | string | yes | ebook, mindmap or quiz |
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_get_ai_workflows Get AI Workflows ~90
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 folder, page by page, use panda_list_ai_works.
| Name | Type | Req | Description |
|---|---|---|---|
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_get_auto_recharge_settings Get Auto Recharge Settings ~30
Get auto-recharge configuration for credits. Returns {enabled, trigger_value, action_value}.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
panda_get_bandwidth_analytics Get Bandwidth Analytics ~109
Get bandwidth/traffic usage by folder, by video, or DRM by video. Returns array of {name, bandwidth_bytes, video_id?} entries.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | – | – | End date (YYYY-MM-DD) |
| start_date | string | – | Start date (YYYY-MM-DD) |
| type | string | – | Traffic type — 'all' (regular, required by the API) or 'drm' |
| video_id | string | – | Video ID (omit for folder-level) |
No output schema declared.
No examples provided.
panda_get_best_times Get Best Times (Account) ~205
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 — the same grid as the dashboard heatmap (Analytics → Best times), with the hours exactly as Panda analytics stores them. Returns {start_date, end_date, metric, best_slots: [{weekday, hours, total}] (top 10), by_weekday, by_hours}. For specific videos or a folder use panda_get_best_times_by_videos.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | – | – | End date (YYYY-MM-DD). Default: today. |
| metric | string | – | 'plays' = unique plays (dashboard default) or 'impressions' = unique player views |
| start_date | string | – | Start date (YYYY-MM-DD). Default: 30 days ago — always sent, since the API returns partial data without it. |
No output schema declared.
No examples provided.
panda_get_best_times_by_videos Get Best Times by Videos ~286
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 dashboard heatmap (Analytics → Best times), with the hours exactly as Panda analytics stores them. An end_date of today counts only up to yesterday (the API clamps it). Returns {scope, start_date, end_date, metric, videos_count, best_slots: [{weekday, hours, total}] (top 10), by_weekday, by_hours, warnings}.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | – | – | End date (YYYY-MM-DD). Default: today. |
| folder_id | string | – | Folder ID: uses every video in the folder (up to 5000). Use this OR video_external_ids. |
| metric | string | – | 'plays' = unique plays (dashboard default) or 'impressions' = unique player views |
| start_date | string | – | Start date (YYYY-MM-DD). Default: 30 days ago — always sent, since the API returns partial data without it. |
| video_external_ids | array | – | video_external_id of each video (field `video_external_id` from panda_list_videos / panda_get_video — NOT the `id`). Max 2000. Use this OR folder_id. |
No output schema declared.
No examples provided.
panda_get_business_rules Get Business Rules ~188
Returns the platform business rules: the real consequences of actions that modify, delete or move resources (e.g., deleting a folder or a funnel sends the videos inside to the trash for 30 days). Useful before planning such actions, so the advice given to the user matches how the platform actually behaves. Domains: funnels, videos_and_folders, video_upload, embed_and_share, player_settings, cta_interactions, playlists, drm_watermark, comparisons_ab_tests, lives, shorts, anti_download_and_domains, credits, thumbnails_and_subtitles, trash_and_recovery, analytics, tutor_ai_assistant, webhooks, review_timeline, subaccounts, billing_and_plans, member_get_member, organization_and_accounts.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | – | Filter by domain (e.g. 'funnels', 'playlists', 'drm_watermark'). Omit to get ALL rules. |
No output schema declared.
No examples provided.
panda_get_credits_balance Get Credits Balance ~28
Get the current credits balance for the account. 1 credit = R$1.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
panda_get_credits_history Get Credits History ~68
Get credits transaction history for a date range. Returns {balance, history: [{id, type, amount, status, description, created_at}]}.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | – | – | End date (YYYY-MM-DD) |
| start_date | string | – | Start date (YYYY-MM-DD) |
No output schema declared.
No examples provided.
panda_get_custom_fields Get Custom Fields ~41
Get all custom fields for a video. Returns array of {id, key, value} metadata pairs.
| Name | Type | Req | Description |
|---|---|---|---|
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_get_exclusive_playback Get Exclusive Playback ~32
Whether Exclusive Playback is on (on-demand videos only play in the Panda Player). Returns {status}.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
panda_get_folder Get Folder ~154
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 directly in this folder; subfolders are not included (use panda_list_folders). To list every video of a large folder, keep calling with page+1 while pagination.has_next is true. Default 20 videos per page, max 20.
| Name | Type | Req | Description |
|---|---|---|---|
| folder_id | string | yes | Folder ID |
| limit | integer | – | Videos per page (default: 20, max: 20) |
| page | integer | – | Page of videos (default: 1) |
No output schema declared.
No examples provided.
panda_get_funnel Get Funnel ~57
Get a funnel's details and its videos. Returns {data: {id, name, videos: [{id, title, status, is_first}]}}. Funnels are NOT folders.
| Name | Type | Req | Description |
|---|---|---|---|
| funnel_id | string | yes | Funnel ID |
No output schema declared.
No examples provided.
panda_get_hls_encryption_batches Get HLS Encryption Batches ~116
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, state, updated_at}; state is pending, in_progress, processed, failed or cancelled. estimated_completion_minutes estimates the whole encryption queue (all accounts), not only your batch, and may be 0 when unknown.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | – | Batch ID returned by panda_encrypt_videos |
No output schema declared.
No examples provided.
panda_get_library_qualities Get Library Qualities ~135
The account's quality settings (dashboard: Settings > Qualities). Returns {encoding, playback, compression_mode, compression_label, keep_original_files}: encoding = "Conversão de Novos Uploads" (qualities new uploads are converted to); playback = "Reprodução de Todos Vídeos" (qualities the player offers, on every video, when converted in that quality); compression_mode = "Compressão de Novos Uploads", shown as compression_label (size = Econômica, balanced = Equilibrada, quality = Maior qualidade); keep_original_files = "Backup do Arquivo Original de Novos Uploads".
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
panda_get_live Get Live ~118
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 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).
| Name | Type | Req | Description |
|---|---|---|---|
| live_id | string | yes | Live ID |
No output schema declared.
No examples provided.
panda_get_live_viewers Get Live Viewers ~37
Get viewer history for a live stream. Returns time-series array of viewer counts.
| Name | Type | Req | Description |
|---|---|---|---|
| live_id | string | yes | Live ID |
No output schema declared.
No examples provided.
panda_get_new_uploads_encryption Get New Uploads Encryption ~39
Whether new uploads are encrypted automatically (Encrypted Anti-Download / HLS encryption for future videos). Returns {library_id, status}.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
panda_get_plan_usage Get Plan Usage ~125
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, live_count}. live = live minutes used this cycle (whole account, all regions); live_plan = free live minutes informed in the plan; live_count = lives in the cycle. Live minutes above live_plan are billed per minute by region and quality: see panda_get_subscription → addons.live. Trial accounts (is_trial) cannot create lives.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
panda_get_player_config Get Player Config ~25
Get global player configuration (applies to all videos without a custom profile)
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
panda_get_playlist Get Playlist ~48
Get details of a specific playlist. Returns {id, name, description, videos_quantity, access_type, creator_name, duration, updated_at}.
| Name | Type | Req | Description |
|---|---|---|---|
| playlist_id | string | yes | Playlist ID |
No output schema declared.
No examples provided.
panda_get_playlist_videos Get Playlist Videos ~49
List all videos in a playlist. Returns array of {id, video_id, order, video: {id, title, duration}}.
| Name | Type | Req | Description |
|---|---|---|---|
| playlist_id | string | yes | Playlist ID |
No output schema declared.
No examples provided.
panda_get_profile Get Profile ~76
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 size), availableQualities, is_default and feature_tags.
| Name | Type | Req | Description |
|---|---|---|---|
| profile_id | string | yes | Profile ID |
No output schema declared.
No examples provided.
panda_get_ranking_analytics Get Ranking Analytics ~74
Get ranking analytics for the account. Returns {most_watched: [{video_id, title, watch_time}], most_played: [{video_id, title, plays}]}.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | – | – | End date (YYYY-MM-DD) |
| start_date | string | – | Start date (YYYY-MM-DD) |
No output schema declared.
No examples provided.
panda_get_realtime_analytics Get Realtime Analytics ~79
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 clusters) comes empty in this account-wide snapshot; no per-viewer data (IP, browser) is returned.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
panda_get_referrals_summary Get Referrals Summary ~21
Get referral program summary (balance, estimated value)
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
panda_get_retention_analytics Get Retention Analytics ~95
Get audience retention analytics (account-wide or per video). Returns array of {percentage, viewers} showing drop-off at each point.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | – | – | End date (YYYY-MM-DD) |
| start_date | string | – | Start date (YYYY-MM-DD) |
| video_id | string | – | Video ID — the `id` field from panda_list_videos, NOT video_external_id (omit for account-wide) |
No output schema declared.
No examples provided.
panda_get_subscription Get Subscription ~74
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 region and quality (quantity in minutes, unit_amount in cents); the plan's max live quality is subscriptions.metadata.live_max_quality.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
panda_get_subtitle_by_language Get Subtitle by Language ~52
Get a subtitle file for a specific language
| Name | Type | Req | Description |
|---|---|---|---|
| srclang | string | yes | Language code (e.g. pt-BR, en, es) |
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_get_subtitles Get Subtitles ~28
Get all subtitle information for a video
| Name | Type | Req | Description |
|---|---|---|---|
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_get_thumbnails Get Thumbnails ~103
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 the video. Pause and end thumbnails are NOT listed here — they are CTAs in the video's player config (panda_get_video_player_config → ctas with type 'pause' / 'end').
| Name | Type | Req | Description |
|---|---|---|---|
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_get_unwatched_videos Get Unwatched Videos ~196
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, end_date, data: [{id, video_external_id, title, created_at}], pagination: {limit, offset, total_unwatched, has_more}, coverage: {partial_coverage, missing_days}} — when partial_coverage is true, a listed video may have had access on the missing days.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | – | – | End date (YYYY-MM-DD). Default: today. |
| limit | integer | – | Videos per page (default 50, max 500) |
| offset | integer | – | Pagination offset (default 0) |
| start_date | string | – | Start date (YYYY-MM-DD). Default: 30 days ago — always sent, since the API returns partial data without it. |
No output schema declared.
No examples provided.
panda_get_video Get Video ~59
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.
| Name | Type | Req | Description |
|---|---|---|---|
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_get_video_analytics Get Video Analytics ~89
Get analytics metrics for a specific video. Returns {views, unique_viewers, watch_time_seconds, avg_watch_percentage, plays}.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | – | – | End date (YYYY-MM-DD) |
| start_date | string | – | Start date (YYYY-MM-DD) |
| video_id | string | yes | Video ID — the `id` field from panda_list_videos, NOT video_external_id |
No output schema declared.
No examples provided.
panda_get_video_player_config Get Video Player Config ~49
Get per-video player configuration (chapters, CTAs, pixels, redirect, AI features, retention markers, subtitle default, offline config)
| Name | Type | Req | Description |
|---|---|---|---|
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_get_videos_ai_resources Get Videos AI Resources (batch) ~167
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_resources: [{type, srclang}]} (type: abstract = eBook, mindmap, questions = quiz). A video that only has resources from the old AI package (legacy) comes back with an empty list here; panda_get_ai_resource_content shows them. No titles (use panda_get_video or panda_list_videos). IDs that don't exist or aren't yours come back in not_found. Returns {videos, not_found}.
| Name | Type | Req | Description |
|---|---|---|---|
| video_ids | array | yes | Video IDs (1–100, no repeats) |
No output schema declared.
No examples provided.
panda_get_videos_count Get Videos Count ~31
Get total video count by status (CONVERTED, CONVERTING, DRAFT, etc.)
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
panda_get_videos_status Get Videos Status (batch) ~103
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 titles (use panda_get_video or panda_list_videos). IDs that don't exist or aren't yours come back in not_found. Returns {videos, not_found}.
| Name | Type | Req | Description |
|---|---|---|---|
| video_ids | array | yes | Video IDs (1–100, no repeats) |
No output schema declared.
No examples provided.
panda_get_viewers_by_videos Get Viewers by Videos ~288
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 selection only chooses WHICH viewers appear: each viewer's metrics (play, view, watch_time) cover the whole account, not only these videos. Returns {scope, start_date, end_date, total_viewers, viewers: [{viewer_ip, play, view, unique_play, unique_view, watch_time_seconds, videos_watched}] (most plays first), warnings}.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | – | – | End date (YYYY-MM-DD). Default: today. |
| folder_id | string | – | Folder ID: uses every video in the folder (up to 5000). Use this OR video_external_ids. |
| limit | integer | – | How many viewers to list (default 50, max 500); total_viewers counts all |
| start_date | string | – | Start date (YYYY-MM-DD). Default: 30 days ago — always sent, since the API returns partial data without it. |
| video_external_ids | array | – | video_external_id of each video (field `video_external_id` from panda_list_videos / panda_get_video — NOT the `id`). Max 2000. Use this OR folder_id. |
No output schema declared.
No examples provided.
panda_get_watermark_group Get Watermark Group ~47
Get a watermark group's details. Returns {id, name, video_ids: [], folder_ids: [], created_at}.
| Name | Type | Req | Description |
|---|---|---|---|
| drm_group_id | string | yes | Watermark group ID |
No output schema declared.
No examples provided.
panda_get_watermark_status Get Watermark Status ~30
Check whether watermark/DRM is currently active on the account. Returns {active: boolean}.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
panda_help_get_article Get Help Article ~70
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.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Article slug (e.g. 'como-publicar-seu-video-na-panda-video') |
No output schema declared.
No examples provided.
panda_help_search Search Help Articles ~150
Search Panda Video help center articles to answer user questions. Searches through ALL 146 pre-indexed articles from the official help center (https://help.pandavideo.com/pt-br/). Use this tool whenever the user has a QUESTION about how Panda Video works, pricing, features, integrations, configuration, etc. DO NOT use this for API execution commands — only for knowledge/support questions. IMPORTANT: Base your answer EXCLUSIVELY on the article content returned. Do NOT infer, assume, or use external knowledge.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max articles to return (default 5, max 20) |
| query | string | yes | The user's question or search keywords about Panda Video |
No output schema declared.
No examples provided.
panda_import_video_for_shorts Import Video for Shorts ~252
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.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect_ratio | string | – | Output format (default: vertical) |
| contexts | array | – | AI context hints: 'engajamento','educacional','humor','motivacional','personalizado' |
| duration_preset | string | – | Clip duration range in seconds (default: 30-60) |
| end_time | number | – | End time in seconds to clip to (default: full video) |
| source_type | string | yes | Source: 'library' for Panda video, 'youtube' for YouTube URL |
| source_url | string | – | YouTube URL (required when source_type=youtube) |
| start_time | number | – | Start time in seconds to clip from (default: 0) |
| video_id | string | – | Video ID from Panda library (required when source_type=library) |
| video_title | string | – | Title for the project (defaults to 'Shorts Project') |
No output schema declared.
No examples provided.
panda_list_ai_assistants List AI Assistants ~72
List all AI video assistants. Returns array of {id, name, status, videos: [{id, title}], created_at}.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Results per page (default: 25, max: 100) |
| page | integer | – | Page number (default: 1) |
No output schema declared.
No examples provided.
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
claude mcp add --transport http com-pandavideo-mcp 'https://mcp.pandavideo.com/mcp'
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.