Skip to main content
Glama
README.md
<p align="center">
  <img src="assets/panda-video-256.png" width="96" alt="Panda Video">
</p>

# Panda Video MCP server

Connect [Panda Video](https://www.pandavideo.com) 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
```

## What you can do with it

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

### Two endpoints

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

## Connecting

### Claude

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.

### ChatGPT

Settings → Apps & Connectors → **Create** (Developer Mode), same URL and **OAuth**
as the authentication. Same sign-in flow.

### Claude Code

```bash
claude mcp add --transport http panda-video https://mcp.pandavideo.com/mcp \
  --header "Authorization: panda-YOUR_API_KEY"
```

### Cursor

`~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "panda-video": {
      "url": "https://mcp.pandavideo.com/mcp",
      "headers": { "Authorization": "panda-YOUR_API_KEY" }
    }
  }
}
```

### Anything else

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:

```bash
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.

## Accounts

You need a Panda Video account. See [pandavideo.com](https://www.pandavideo.com) for
the plans.

## Policies and support

- Privacy: <https://www.pandavideo.com/our-terms/privacy>
- Terms: <https://www.pandavideo.com/our-terms/terms>
- Help center: <https://help.pandavideo.com>
- API reference: <https://docs.pandavideo.com/reference/mcp>
- Something wrong with this server: open an issue here

## Why this repository has no code

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.