Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Description from the maker (original English)
Video hosting: upload, organize and configure videos, analytics, AI subtitles and Shorts.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
AuthorizationValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Run this in your terminal
claude mcp add --transport http pandavideo https://mcp.pandavideo.com/mcp --header 'Authorization: your-value'Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"pandavideo": {
"url": "https://mcp.pandavideo.com/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"pandavideo": {
"type": "http",
"url": "https://mcp.pandavideo.com/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Your choice stays on this device in a cookie; no account needed.
Authorization secret HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 8, 2026. The maker wrote them, not us; we show them as plain text.
panda_list_videosList 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 f
panda_get_videoGet 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.
panda_update_videoUpdate 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_videosDelete one or more videos by ID. Sends to trash for 30 days.
panda_get_videos_statusProcessing 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
panda_get_videos_ai_resourcesWhich 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 vid
panda_move_videosMove one or more videos to a folder
panda_duplicate_videoCreate a copy of a video. Only works for CONVERTED, non-external, non-funnel videos.
panda_reencode_videoRe-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.
panda_upload_video_from_urlImport a video from an external URL (YouTube, Vimeo, S3, generic HTTPS)
panda_list_foldersList all folders. Returns array of {id, name, parent_folder_id, status, created_at, videos_count}.
panda_create_folderCreate a new folder. Returns the created {id, name, parent_folder_id}.
panda_get_folderGet 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 l
panda_update_folderUpdate folder properties (name, parent). Also used to recover deleted folders with status=true.
panda_delete_folderDelete a folder by ID. WARNING: All videos and subfolders inside are also deleted (cascade). Goes to trash for 30 days.
panda_list_playlistsList all playlists. Returns array of {id, name, videos_quantity, duration, access_type, updated_at}.
panda_create_playlistCreate a new playlist. Videos are REFERENCES — removing from playlist does NOT delete the video. Returns the created {id, name, description, access_type}.
panda_get_playlistGet details of a specific playlist. Returns {id, name, description, videos_quantity, access_type, creator_name, duration, updated_at}.
panda_update_playlistUpdate a playlist's properties
panda_delete_playlistDelete a playlist. Videos are NOT deleted — only the collection is removed.
panda_get_playlist_videosList all videos in a playlist. Returns array of {id, video_id, order, video: {id, title, duration}}.
panda_add_videos_to_playlistAdd videos to a playlist with order. Returns the updated playlist video entries [{video_id, playlist_id, order}].
panda_remove_video_from_playlistRemove a video from a playlist. Does NOT delete the video.
panda_list_profilesList 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=tru
panda_create_profileCreate a player profile (POST /profile) already configured — colors, controls, caption appearance (colors.captionsColor / captionsBackgroundColor + captionsSize), VSL, save progress, general (speed, theme, gear menu, offline) and availableQualities, all in one call. Send only wha
panda_get_profileGet 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.
panda_update_profileUpdate a player profile's settings. Changes EVERY video linked to the profile. Covers: player colors (colors.primaryColor / controlsColor), enabled controls list, smart autoplay (vsl.smartAutoplay), VSL mode (vsl.disablePause / disableForward / alternativeProgress), playback spee
panda_delete_profileDelete a player profile. The default profile ('Padrão') cannot be deleted. A profile with no videos is deleted directly. A profile WITH videos needs `strategy` — ask the user which one: 'keep' = each video keeps its current look (gets its own copy of the profile's settings); 'mig
panda_apply_profile_to_videosLink a player profile to videos — pass video_ids OR folder_id (every video in that folder, any status; subfolders are not included). A video that had its own customized player (exclusive profile) loses that customization. Up to 5 video_ids are applied immediately; more videos, or
panda_duplicate_profileCopy a player profile's settings into a new profile named ' (2)', '(3)'… The copy has no videos and is never the default. Exclusive profiles (a single video's own player) cannot be duplicated. Returns {id, name}.
panda_restore_profileReset 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
panda_set_default_profileMake 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 s
panda_list_livesList 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,
panda_create_liveCreate a new live stream event. Trial accounts cannot create lives. A quality_package above the plan's maximum is silently lowered to the plan's maximum. Without stream_key_id the account's default stream key is used; a key held by another live (online, provisioning, expired, wai
panda_get_liveGet 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),
panda_regenerate_liveRegenerate 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
panda_finish_liveEnd a live broadcast
panda_delete_livesDelete one or more live streams
panda_list_stream_keysList 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 exp
panda_create_stream_keyCreate a new stream key for OBS or other streaming software. The account's first key becomes the default.
panda_get_live_viewersGet viewer history for a live stream. Returns time-series array of viewer counts.
panda_get_account_analyticsGet general analytics metrics for the whole account. Returns {views, unique_viewers, watch_time_seconds, avg_watch_percentage, plays}.
panda_get_video_analyticsGet analytics metrics for a specific video. Returns {views, unique_viewers, watch_time_seconds, avg_watch_percentage, plays}.
panda_get_retention_analyticsGet audience retention analytics (account-wide or per video). Returns array of {percentage, viewers} showing drop-off at each point.
panda_get_ranking_analyticsGet ranking analytics for the account. Returns {most_watched: [{video_id, title, watch_time}], most_played: [{video_id, title, plays}]}.
panda_get_realtime_analyticsGet 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)
panda_get_bandwidth_analyticsGet bandwidth/traffic usage by folder, by video, or DRM by video. Returns array of {name, bandwidth_bytes, video_id?} entries.
panda_get_unwatched_videosList 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,
panda_get_best_timesWhich 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
panda_get_best_times_by_videosWhich 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 analytic
panda_get_viewers_by_videosWho 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,
panda_list_funnelsList 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_funnelCreate a new video funnel
panda_get_funnelGet a funnel's details and its videos. Returns {data: {id, name, videos: [{id, title, status, is_first}]}}. Funnels are NOT folders.
panda_update_funnelUpdate a funnel's properties (rename)
panda_delete_funnelDelete a funnel by ID. WARNING: this is destructive. The funnel is removed and the videos inside it go to the trash for 30 days (restoring the funnel's folder brings them back; the funnel does not come back).
panda_add_videos_to_funnelAdd one or more videos to a funnel with optional coordinates. Every call must mark exactly one video with is_first: true — it becomes the entry video. To add a video without changing the entry, also send the current entry video (from panda_get_funnel) with is_first: true.
panda_remove_videos_from_funnelRemove 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).
panda_get_watermark_statusCheck whether watermark/DRM is currently active on the account. Returns {active: boolean}.
panda_enable_watermarkEnable watermark protection for the account
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 9, 2026
The registry name was verified against the domain pandavideo.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 344 ms (HTTP 200)
No sign-in needed
Read 60 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: Authorization
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (2.1.0) reached the registry 34 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Let any LLM watch a video locally — and search everything it has ever watched.
Figma’s official server gives AI your design data so it can turn designs into code or describe them accurately. Connects to Figma’s cloud.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Connect Panda Video to Claude, ChatGPT, Cursor and any other MCP client. Upload, organize and configure your videos, read their analytics, generate subtitles and Shorts — from the conversation.
The server is hosted by us: there is nothing to install and no code in this repository. Point your client at the URL below and sign in with your Panda Video account.
https://mcp.pandavideo.com/mcp
| Area | Examples |
|---|---|
| Videos | List and search videos, read one video, rename it, import a video from a URL |
| Folders and playlists | Create folders, move videos, build playlists |
| Analytics | Views, retention curve, top videos, account totals |
| Subtitles and thumbnails | Read subtitles, generate them with AI, add thumbnails |
| Player | Read and change the player and per-video configuration |
| Shorts | Import a video and list the Shorts cut from it |
Video listings already carry the public embed URL (video_player) and the HLS URL (video_hls), so the assistant can hand you a link that plays.
Tools that change or remove something are marked destructiveHint: true, so your assistant asks before running them. Read-only tools are marked readOnlyHint: true.
| Endpoint | Tools | For |
|---|---|---|
https://mcp.pandavideo.com/mcp | Full catalogue (177 tools) | Power users, Claude Code, Cursor, scripts |
https://mcp.pandavideo.com/mcp/directory | 29 core tools: videos, folders, playlists, analytics, subtitles, thumbnails, player, Shorts | Chat assistants (ChatGPT, Claude) |
The directory endpoint leaves out credits, billing, users and sub-accounts.
Settings → Connectors → Add custom connector, and paste:
https://mcp.pandavideo.com/mcp/directory
Claude opens the Panda Video sign-in page, you approve the access, and the tools appear in the conversation. No API key to copy.
Settings → Apps & Connectors → Create (Developer Mode), same URL and OAuth as the authentication. Same sign-in flow.
claude mcp add --transport http panda-video https://mcp.pandavideo.com/mcp \
--header "Authorization: panda-YOUR_API_KEY"
~/.cursor/mcp.json:
{
"mcpServers": { "panda-video": { "url": "https://mcp.pandavideo.com/mcp", "headers": { "Authorization": "panda-YOUR_API_KEY" } } } }
The server speaks Streamable HTTP (stateless) at /mcp and /mcp/directory. Two ways to authenticate:
OAuth 2.1 — recommended, and what the chat clients above use. Discovery follows the specs, so a compliant client needs nothing but the URL:
| Document | URL |
|---|---|
| Protected resource metadata (RFC 9728) | https://mcp.pandavideo.com/.well-known/oauth-protected-resource |
| Authorization server metadata (RFC 8414) | https://mcp.pandavideo.com/.well-known/oauth-authorization-server |
Dynamic client registration (RFC 7591) and PKCE with S256 are supported, with public clients (token_endpoint_auth_method: none). Scopes are videos:read (read-only tools) and videos:write.
API key — for scripts and local clients. Copy it in the Panda Video dashboard under Settings → Advanced → API Key and send it as is in the Authorization header. Treat it like a password:
curl -X POST https://mcp.pandavideo.com/mcp \
-H "Authorization: panda-YOUR_API_KEY" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"panda_list_videos","arguments":{"limit":5}}}'
initialize and tools/list answer without credentials, so a directory can read the catalogue before anyone signs in. Every call that touches your account requires authentication; without it the server answers 401 with a WWW-Authenticate header pointing to the OAuth metadata.
Requests are limited to 60 per minute per account.
You need a Panda Video account. See pandavideo.com for the plans.
Directories ask for a repository URL, and this is it. The server runs on our infrastructure, so listing it does not require shipping the implementation — what a client needs is the URL above and the discovery documents, both public. This repository holds the registry descriptor (server.json), the logos and these instructions.
Panda Video is a product of PANDA VIDEOS LTDA.