Install
$ agentstack add skill-prizmad-agent-skills-mcp-server ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Prizmad MCP Server
Prizmad exposes a remote Model Context Protocol (MCP) server. Any MCP-compatible host (Claude Desktop, Claude.ai web, ChatGPT, Cursor, Continue, Zed, Claude Code CLI, n8n, custom SDKs) connects and drives the full UGC video studio programmatically.
- Endpoint:
https://prizmad.com/api/mcp - Transport:
streamable-http - Server card:
- Source code (stdio bridge for stdio-only clients):
Connect (primary path — OAuth Connect button)
Modern MCP clients click Add custom connector → enter the MCP URL and the OAuth flow runs automatically:
- Client probes
https://prizmad.com/api/mcp→ 401 withWWW-Authenticate: Bearer resource_metadata="…". - Client reads
/.well-known/oauth-protected-resourceand/.well-known/oauth-authorization-server. - Client
POST /oauth/register(RFC 7591 Dynamic Client Registration) — no manual app pre-registration needed. - Browser opens
https://prizmad.com/oauth/authorize→ user signs in (NextAuth) → consent screen → redirect back withcode. - Client exchanges
codefor an RS256 JWT (audiencehttps://prizmad.com/api/mcp). - Client calls
https://prizmad.com/api/mcpwithAuthorization: Bearer. Refresh tokens rotate; PKCE S256 mandatory.
Compatible clients: Claude Desktop, Claude.ai, ChatGPT, Cursor, Zed, Claude Code CLI. Same-origin design (authorize/token/register all live on prizmad.com) sidesteps the Claude.ai web bug that ignores cross-origin authorization endpoints.
Streamable HTTP config (when manual config is needed)
{
"mcpServers": {
"prizmad": {
"transport": "streamable-http",
"url": "https://prizmad.com/api/mcp"
}
}
}
The Connect flow handles the Bearer token automatically. To pre-fill an existing API key instead, add "headers": { "Authorization": "Bearer przmad_sk_live_..." }.
stdio-only clients (via the published bridge)
{
"mcpServers": {
"prizmad": {
"command": "npx",
"args": ["-y", "@prizmad/mcp-server"],
"env": { "PRIZMAD_API_KEY": "przmad_sk_live_..." }
}
}
}
Or via the generic bridge: ["mcp-remote", "https://prizmad.com/api/mcp"].
Authentication options at a glance
| Path | When | Token shape | |---|---|---| | OAuth 2.1 Authorization Code + PKCE + DCR | Interactive clients (Claude Desktop, etc.) | RS256 JWT (1 h), refresh rotated (30 d) | | OAuth 2.0 client_credentials | Headless / server-to-server | HS256 JWT (1 h) | | API key (Bearer) | Quickest for dev, scripts, internal tools | przmad_sk_live_... |
All three resolve to the same per-user identity. Discovery: /.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource, /.well-known/jwks.json.
Available tools
| Tool | Auth | Purpose | |------|:----:|---------| | list_templates | No | Full template catalog with features and token costs | | list_avatars | No | Built-in avatar presets with recommended voices | | recommend_template | No | Pick top-3 templates from intent + constraints (voice / avatar / duration / budget). Use this before create_video instead of guessing from the catalog. | | list_my_videos | Yes | Recent projects with projectUrl / shareUrl / downloadUrl | | upload_image | Yes | Upload an image (URL or base64) → returns prizmad.com-hosted URL for use as productImages / avatar | | create_video | Yes | Start a render. Returns videoId. | | get_video_status | Yes | Snapshot status by default; with wait: true it blocks server-side and streams notifications/progress until terminal (up to 10 min) — preferred over polling. | | get_download_url | Yes | Authenticated download URL on prizmad.com for a completed video | | create_video_batch | Yes | Launch up to 20 renders in parallel; pre-checks total token cost |
list_templates and list_avatars are deliberately public so an agent can browse before authenticating.
Customization knobs on create_video (and per-item in create_video_batch)
All optional; omit any field for a randomised pick at render time.
captionStyle — on-video subtitles
| Value | Look | |-------|------| | classic | TikTok yellow highlight, white sans-serif (default fallback) | | bold-impact | MrBeast / Hormozi — uppercase Anton with heavy black stroke and green highlight | | karaoke | Active word colour-sweeps left-to-right as it's spoken | | pop | Active word springs up in scale, inactive words dim | | bounce | Active word hops up with a low-damping spring (Fredoka) | | neon | Pink/cyan glowing halo (Audiowide) | | typewriter | Characters reveal one-by-one with a blinking caret (JetBrains Mono) | | glow | Soft white halo, gentle scale on the active word (Montserrat) |
musicStyle — background music
energetic, friendly, professional, luxury, funny, cinematic, lo-fi, hip-hop, acoustic.
ctaStyle — end-card
| Value | Look | |-------|------| | classic | Solid dark backdrop, centered title + price, green "LINK BELOW" pill | | blurred-photo | First creative blurred behind minimal cream title + price + circled down-arrow | | dark-solid | Same minimal layout on a solid warm-dark backdrop |
imageStyle — lighting/palette preset for AI creatives (10 options)
warm-golden, bright-neutral, cool-diffused, window-light, earthy-ambient, studio-clean, moody-dramatic, pastel-soft, nordic-minimal, sunset-warm.
Free-text prompt hints
imagePromptHint, videoPromptHint, musicPromptHint — each ≤ 400 chars, layered on top of style presets.
Output URLs (what to give the user)
get_video_status returns three URLs once rendering is complete — they map cleanly:
| Field | Goes to | |---|---| | projectUrl | https://prizmad.com/projects/ — owner-only dashboard with player, remix, edit, asset library. Primary link when handing the result back to the signed-in user. | | shareUrl | https://prizmad.com/share/ — public share page, useful only when forwarding the video to someone outside the account. | | downloadUrl | https://prizmad.com/api/v1/videos//download — authenticated mp4 stream proxied via prizmad.com. |
The raw Vercel Blob URL is never surfaced to the agent.
Typical flow
recommend_template ─► create_video ─► get_video_status (wait: true) ─► projectUrl + downloadUrl
- (No auth)
recommend_template({ intent, hasVoiceover, hasAvatar, targetDurationSec, maxTokens })— pick a template. - (Optional)
upload_imageif the agent wants to attach product photos that aren't yet on the web. create_videowithtemplateId+productUrl(scraped) or explicitproductTitle/productDescription/productImages+ any customisation. ReturnsvideoId.get_video_status({ videoId, wait: true })— blocks server-side, streams progress, returns the final payload when ready (3–8 minutes typical, capped at 10 min).- Hand
projectUrlto the user.
For bulk campaigns use create_video_batch (1–20 per request).
Plan + token rules
- API video generation requires a Pro subscription (
/api/v1/videosreturns 403 with a clear upgrade message otherwise). - Tokens come from the user's monthly plan first, then any top-up balance.
- Insufficient balance returns a 402 with a top-up URL.
- The MCP layer renders both errors as plain English so the assistant can repeat them verbatim.
Rate limits
- Per-key / per-OAuth-client rate limit on the MCP endpoint.
- Each successful
create_videodebits the caller's Prizmad token balance.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: prizmad
- Source: prizmad/agent-skills
- License: MIT
- Homepage: https://prizmad.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.