@piratepress/mcp
v0.73.0
Published
MCP server for the PiratePress public API — generate viral short videos from AI agents (Claude Code, Kimi Code, Claude Desktop, …)
Maintainers
Readme
@piratepress/mcp
MCP server for the PiratePress public API — generate viral short-form videos straight from your AI agent (Claude Code, Kimi Code, Claude Desktop, Cursor, …).
The server talks to https://api.piratepress.fun/public/v1 and exposes nine tools:
| Tool | What it does |
|---|---|
| generate_video | Recommended default. Create a job with explicit params (theme/theme_url/reference_url, lang, duration, placement, hook, cta, bg_ai, music, director_mode, count, … — the full POST /videos surface). Predictable config and cost. Returns {id, cost, eta_seconds}. |
| quick_video | One free-form prompt — a server-side LLM maps it to parameters. Only for vague one-liners: the mapping can drift off-topic, cost is known only after creation, and the mapper is throttled to a few calls/hour. Prefer generate_video. |
| get_video_status | Poll a job: queued → running → done/error/refunded (also awaiting_review in director mode; refunded = failed, doubloons auto-refunded). On done: result_url (signed mp4, TTL 7 days) + metadata (posting texts). On awaiting_review: story_text (the script under review). |
| wait_video | Block until done/error/refunded/awaiting_review (polls every 20 s, MCP progress notifications, default timeout 30 min). |
| review_video | Answer a script review in director mode: approve / edit / regen (read story_text from the status first). |
| upload_asset | Upload local files to the media library (theme sources, own background, own track, banner, reference video, voice sample — paid). Returns the asset id for the *_asset_id fields of generate_video. Limits: 20 files, 20 MB/file, 2 GB library. |
| list_assets | User's media library (voice clones, theme packs etc.) — ids for the *_asset_id fields. |
| list_bg_presets | Stock background presets — valid ids for bg_preset. |
| get_balance | Wallet: {dublones, subscription, fair_use_left}. 1⛁ = 1₽. |
Generation takes minutes (usually 2–15). Money (dublones) is charged when the job is created.
Getting an API key
In Telegram: @piratepress_bot → /apikey. The key looks like pp_… and is shown once.
Balance top-ups also happen in the bot.
Install & configure
Requires Node.js 20+ (only for the MCP server; the agent skill works without it).
One-liner (recommended)
curl -fsSL https://piratepress.fun/install.sh | PIRATEPRESS_API_KEY=pp_your_key_here bashThe installer puts the MCP server into ~/.piratepress/mcp/, the agent skill into
~/.agents/skills/piratepress-video/ (and ~/.claude/skills/ when present), and registers
the server with the claude CLI when available. Nothing outside $HOME is touched.
Claude Desktop
claude_desktop_config.json:
{
"mcpServers": {
"piratepress": {
"command": "node",
"args": ["/home/you/.piratepress/mcp/index.js"],
"env": {
"PIRATEPRESS_API_KEY": "pp_your_key_here"
}
}
}
}Claude Code
claude mcp add piratepress --scope user \
-e PIRATEPRESS_API_KEY=pp_your_key_here \
-- node ~/.piratepress/mcp/index.jsKimi Code
Add to your MCP config (~/.kimi-code/mcp.json or via the CLI):
{
"mcpServers": {
"piratepress": {
"command": "node",
"args": ["/home/you/.piratepress/mcp/index.js"],
"env": {
"PIRATEPRESS_API_KEY": "pp_your_key_here"
}
}
}
}From source (this repo)
{
"mcpServers": {
"piratepress": {
"command": "node",
"args": ["/path/to/content-farm/mcp/index.js"],
"env": { "PIRATEPRESS_API_KEY": "pp_your_key_here" }
}
}
}Environment variables
| Variable | Required | Default |
|---|---|---|
| PIRATEPRESS_API_KEY | yes | — |
| PIRATEPRESS_API_URL | no | https://api.piratepress.fun |
Example dialogues
One video:
You: Make a 45-second English video about why houseplants die in winter. Agent:
quick_video(prompt="45s EN video about why houseplants die in winter")→{id: "…", cost: 100, eta_seconds: 420}→wait_video(id)→result_url. Downloads the mp4.
Batch with budget check:
You: Generate videos for these 5 topics and tell me the total cost. Agent:
get_balance()→ confirms 5 × ~100⛁ fits → 5 ×generate_video(...)→ polls each withwait_video→ 5 mp4s + posting metadata.
Errors
402 insufficient_funds— not enough dublones; top up in @piratepress_bot (1⛁ = 1₽).429 rate_limited— limits are 10 active jobs and 30 POST/min; the server surfacesRetry-After.401— key missing/revoked; issue a new one via/apikeyin the bot.
Full API reference: https://docs.piratepress.fun · OpenAPI: https://api.piratepress.fun/docs
Кратко по-русски
MCP-сервер для публичного API PiratePress: агент (Claude Code, Kimi Code, Claude Desktop)
генерирует вирусные ролики инструментами generate_video, quick_video, get_video_status,
wait_video, get_balance.
- Ключ — в боте @piratepress_bot, команда
/apikey. Туда же — пополнение баланса (1⛁ = 1₽). - Установка одной строкой:
curl -fsSL https://piratepress.fun/install.sh | PIRATEPRESS_API_KEY=pp_… bash(MCP-сервер в~/.piratepress/mcp/, скилл в~/.agents/skills/, авто-регистрация в Claude Code). Ручной конфиг — JSON выше (node ~/.piratepress/mcp/index.js+ envPIRATEPRESS_API_KEY). - Генерация идёт минуты: создали задачу → ждём
wait_video→ качаемresult_url(ссылка живёт 7 дней). - Лимиты: 10 активных задач, 30 POST/мин; при
429сервер возвращаетRetry-After. - Документация: https://docs.piratepress.fun
