panda-video-mcp
v1.0.8
Published
MCP Server for Panda Video API — 131 tools covering videos, folders, playlists, lives, analytics, AI features, and more
Readme
Panda Video MCP Server
MCP (Model Context Protocol) server for the Panda Video API.
131 tools covering the full Panda Video API — videos, folders, playlists, profiles, lives, analytics, funnels, watermark, AI features, and more.
Quick Start
Install via npx (recommended)
PANDA_API_KEY=your-key npx @panda-video/mcpInstall globally
npm install -g @panda-video/mcp
PANDA_API_KEY=your-key panda-video-mcpInstall via Smithery
npx -y @smithery/cli install @panda-video/mcp --client claudeRequirements
- Node.js 18+
- Panda Video API Key (Settings → Integrations → API Key)
Connecting to MCP Clients
Claude Desktop (stdio — one-line config)
Edit claude_desktop_config.json:
{
"mcpServers": {
"panda-video": {
"command": "npx",
"args": ["-y", "@panda-video/mcp"],
"env": { "PANDA_API_KEY": "your-key" }
}
}
}Claude Code
claude mcp add panda-video -- npx -y @panda-video/mcpThen set the env var PANDA_API_KEY in your shell or .claude/settings.json.
Cursor / Windsurf (HTTP mode)
Run the HTTP server:
PANDA_API_KEY=your-key npx @panda-video/mcp --http
# or
npm run start:httpThen add http://localhost:3000/mcp in your MCP settings.
Claude Desktop / Gemini CLI (HTTP)
{
"mcpServers": {
"panda-video": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}Development
From source
git clone https://github.com/pandavideo/panda-video-mcp.git
cd panda-video-mcp
npm install
npm run buildexport PANDA_API_KEY=your-panda-video-api-key-here
npm start # stdio mode
npm run start:http # HTTP mode (port 3000)
npm run dev # stdio dev (tsx)
npm run dev:http # HTTP dev (tsx)Architecture
src/
├── index.ts # Stdio entry point
├── server.ts # HTTP/Express entry point
├── client.ts # pandaFetch() + auth + rate limiter
├── utils/
│ ├── errors.ts # PandaApiError + withErrorHandling wrapper
│ ├── schemas.ts # Shared Zod schemas (pagination, date, hex color)
│ ├── rate-limiter.ts # Token bucket rate limiter (60 req/min)
│ └── api-key-validator.ts # Startup key validation
├── resources/
│ └── api-info.ts # MCP resources (limits, tool overview)
└── tools/ # 20 domain-specific tool files
├── videos.ts # 7 tools
├── folders.ts # 10 tools
├── playlists.ts # 8 tools
├── profiles.ts # 6 tools
├── live.ts # 13 tools
├── analytics.ts # 14 tools
├── funnels.ts # 7 tools
├── review.ts # 11 tools
├── watermark.ts # 14 tools
├── thumbnails.ts # 2 tools
├── subtitles.ts # 4 tools
├── custom-fields.ts # 4 tools
├── webhooks.ts # 3 tools
├── organization.ts # 2 tools
├── users.ts # 5 tools
├── downloads.ts # 3 tools
├── shorts.ts # 6 tools
├── ai-assistants.ts # 8 tools
├── ai-dubbing.ts # 1 tool
├── referrals.ts # 3 tools
└── misc.ts # Barrel (re-exports all above)Tools (131 total)
| Domain | Count | Tools | |---|---|---| | Videos | 7 | list, get, update, recover, delete, upload URL, upload m3u8 | | Folders | 10 | CRUD, library info, qualities, referer domains | | Playlists | 8 | CRUD, video management, password-protected access | | Profiles | 6 | CRUD, apply to videos (colors, autoplay, smart autoplay) | | Live | 13 | CRUD, finish, metrics, stream keys, chat CRUD | | Analytics | 14 | account, video, retention, ranking, geo, browser, referrer, realtime, live, viewers, bandwidth, billing, users, credits | | Funnels | 7 | CRUD, add/remove videos with coordinates | | Review | 11 | Review links, timestamped comments (owner + public APIs) | | Watermark/DRM | 14 | Status, groups CRUD, JWT, private tokens CRUD | | Thumbnails | 2 | get, delete | | Subtitles | 4 | get, get by language, delete, AI generate | | Custom Fields | 4 | CRUD | | Webhooks | 3 | get, set, delete | | Organization | 2 | get, update | | Users | 5 | CRUD | | Downloads | 3 | request async, check status, direct download | | Shorts | 6 | list jobs, list segments, delete, save to library, download | | AI Assistants | 8 | CRUD, video bindings, chat visibility, purchase overview | | AI Dubbing | 1 | create dubbing job | | Referrals | 3 | summary, transactions, send invites |
MCP Resources
panda://api/limits— Rate limits, batch limits, plan constraintspanda://api/overview— Tool listing by domain
Limits & Security
- Rate limiting: 60 requests/minute per API key (token bucket)
- Batch limits: Max 50 items per batch operation
- API key validation: Validated at startup (stdio) or on first tool call (HTTP)
- Error handling: All API errors mapped to LLM-friendly messages
- Pagination: All list endpoints support
pageandper_page(max 100)
Development
npm run lint # ESLint
npm run format:check # Prettier check
npm run format # Prettier fix
npm test # Vitest
npm test:watch # Vitest watch mode
npm run build # TypeScript compileCI/CD
Bitbucket Pipelines runs on every push: lint → format check → build → test.
Releases are managed with semantic-release on the main branch.
License
MIT
