trvrse
Dê à sua IA uma câmera — um servidor MCP hospedado que transforma qualquer agente de IA em um estúdio de mídia generativa: texto para imagem, imagem para vídeo, narração e um pipeline de cinema de ponta a ponta, com limites de gastos por chave. 45 ferramentas via HTTP transmissível.
Documentação
trvrse cinema — guia MCP para agentes
Você está (ou está configurando) um agente LLM conectado ao servidor MCP trvrse cinema. Ele expõe um pipeline de filme em cinco estágios — Roteiro → Referências → Storyboards → Vídeos → Montagem — como 31 ferramentas: 18 ferramentas estágio por estágio que você mesmo conduz, mais 3 ferramentas Autopilot (make_film, get_run, cancel_run) que entregam todo o pipeline ao servidor para produção de filme em uma única chamada, mais make_long_film (filmes de vários minutos com personagens consistentes, §3) e get_gate_review_link (gerar um link de revisão humana sem login para um estágio bloqueado), mais 5 ferramentas de elenco (save_character_to_cast, list_cast, delete_cast_member, set_cast_voice, refresh_cast_portrait) para reutilização episódica de personagens aprovados, mais refresh_character_portrait para reemitir o retrato confiável expirado de um personagem fora do elenco, mais set_shot_face_trust_override para controle de moderação facial por cena. Separadamente, 13 ferramentas de ativos (estimate_generation_cost, generate_image, edit_image, generate_storyboard, promote_storyboard_panel, upload_image, list_images, generate_video, get_video_job, get_tool_call, list_videos, cancel_video_job, get_credit_balance) geram imagens de referência e vídeos Seedance 2.5 sem um projeto de cinema (§4). Uma terceira superfície, 6 ferramentas de plano de vídeo (estimate_video_plan_cost, create_video_plan, get_video_plan, list_video_plans, approve_video_plan, reject_video_plan, §5), constrói um manifesto completo Seedance 2.x — brief, referências, prompt, custo — que um humano OU o próprio agente aprova antes do envio. Este guia é o manual completo: conexão, o loop de trabalho, Autopilot, ativos independentes, planos de vídeo, contratos de custo e erro, e uma transcrição completa de ponta a ponta.
Endpoint: https://www.trvrse.com/api/mcp/mcp · Chaves: emitidas por um humano em Configurações → Acesso do agente · Versão markdown bruta desta página: https://www.trvrse.com/docs/agents.md
1. Início rápido
Emitir uma chave
- Entre no aplicativo e vá para Configurações → Acesso do agente (https://www.trvrse.com/settings/agent).
- Clique em Nova chave, dê um nome (e, opcionalmente, um limite de gastos em créditos — deixe em branco para sem limite).
- A chave em texto puro é mostrada exatamente uma vez em um modal que você deve dispensar explicitamente com Concluído. Copie agora — ela nunca mais é mostrada (apenas um
trv_+ prefixo de 8 caracteres é mantido para exibição). Se você a perder, revogue a chave e emita uma nova.
A chave parece trv_ seguido por 43 caracteres base64url, por exemplo, trv_9F2k7q....
Endpoint
https://www.trvrse.com/api/mcp/mcp
(O mcp-handler do basePath é /api/mcp; ele anexa o segmento de transporte mcp por conta própria. Apenas Streamable HTTP — SSE está desabilitado.)
Claude Code
claude mcp add --transport http --scope user trvrse https://www.trvrse.com/api/mcp/mcp \
-H "Authorization: Bearer trv_YOUR_KEY_HERE"
Cada receita por cliente (Claude Code, Claude.ai, ChatGPT, Cursor, JSON mcpServers) com a chave pré-preenchida está em Configurações → Acesso do agente → Conectar e em https://www.trvrse.com/docs/agents/connect.
Cliente MCP genérico (config JSON)
A maioria dos clientes MCP (Claude Desktop, outros runtimes de agente) aceita um bloco de configuração como:
{
"mcpServers": {
"trvrse": {
"url": "https://www.trvrse.com/api/mcp/mcp",
"transport": "http",
"headers": {
"Authorization": "Bearer trv_YOUR_KEY_HERE"
}
}
}
}
O nome/formato exato da chave (url vs command, headers vs env) varia por cliente — qualquer coisa que suporte um transporte MCP streamable-HTTP com um cabeçalho personalizado funciona. O mesmo endpoint canônico também suporta o fluxo OAuth usado pelo Diretório de Plugins da OpenAI; chaves trv_ existentes permanecem válidas.
claude.ai e conectores personalizados legados do ChatGPT
claude.ai e conectores personalizados do ChatGPT suportam apenas OAuth ou "sem autenticação" — nunca um cabeçalho Authorization personalizado, então os dois métodos de conexão acima não funcionam lá. Use o endpoint de URL com chave (mostrado junto com a chave em texto puro quando uma nova é emitida, em Configurações → Acesso do agente):
https://www.trvrse.com/api/mcp/k/trv_YOUR_KEY_HERE/mcp
claude.ai — Configurações → Personalizar → Conectores → Adicionar conector personalizado → cole a URL acima, deixe autenticação como Nenhuma.
Para um conector personalizado legado do ChatGPT em modo desenvolvedor, a mesma URL com chave continua funcionando com autenticação Nenhuma. O Diretório de Plugins usa a URL /api/mcp/mcp canônica e OAuth; nunca envie uma URL com chave.
A chave viaja no caminho da URL; o endpoint a injeta como token de portador internamente e encaminha para o mesmo manipulador autenticado acima — sem segundo servidor, sem catálogo de ferramentas diferente. A URL é equivalente a um portador: trate-a como uma senha (não a cole em algum lugar público), prefira uma chave com limite de gastos por conector e revogue-a a qualquer momento em Configurações → Acesso do agente se vazar.
Verificação de sanidade da conexão
Uma chave malformada, desconhecida ou revogada é recusada em initialize, então claude mcp list mostra ✗ imediatamente. Para ver POR QUE, e o que resta na chave:
curl -sS https://www.trvrse.com/api/mcp/health -H "Authorization: Bearer trv_YOUR_KEY_HERE"
# 200 {"ok":true,"keyName":"…","spendCap":500,"spent":0,"remaining":500,"lastSeen":null,"lastSeenClient":null}
# 401 {"ok":false,"reason":"malformed"|"unknown"|"revoked"} 429 rate-limited
Então peça ao agente para chamar list_projects. Uma conexão funcional retorna JSON real; uma chave revogada no meio da sessão retorna um resultado isError nomeando BRIDGE_AUTH_FAILED (veja o contrato de erro abaixo).
Instalar este guia como habilidade (opcional)
Claude Code e outros agentes com suporte a habilidades podem carregar este manual no contexto em vez de relê-lo a cada sessão:
SKILLS_DIR=~/.claude
mkdir -p "$SKILLS_DIR/skills/trvrse-cinema" && \
curl -fsSL https://www.trvrse.com/docs/agents/skill.md \
-o "$SKILLS_DIR/skills/trvrse-cinema/SKILL.md"
2. O loop de trabalho
Todo filme segue o mesmo loop por estágio:
- Verificar estado —
get_project_status: leia os cinco status de estágio enextActions(ele nomeia exatamente as chamadas de ferramenta que o pipeline admite em seguida; confie nele em vez de adivinhar). - Cotar —
get_cost_estimatepara o estágio que você está prestes a gerar. - Gerar — chame a ferramenta
generate_*do estágio comconfirmedCostdefinido como ototalexato da cotação. - Polling —
get_project_statusa cada 15–30 segundos até que as entidades do estágio saiam deGENERATING(normalmente 1–3 minutos). - Revisar e aprovar — inspecione os resultados (status, motivos de falha), regenere o que falhou, então chame a ferramenta
approve_*do estágio para desbloquear o próximo estágio.
O roteiro é a exceção: generate_script e rewrite_scenes executam o LLM na própria requisição e retornam o roteiro completo de forma síncrona (~30–60 segundos), e o trabalho de roteiro é gratuito — sem necessidade de cotação.
3. Filmes em uma chamada (Autopilot)
Em vez de conduzir o loop de cinco estágios acima você mesmo, make_film entrega todo o pipeline ao servidor: envie um brief e um orçamento, então faça polling de get_run até o filme estar pronto.
make_film
briefText(obrigatório) — o brief de produção a partir do qual todo o filme é gerado.profile(obrigatório) —"cinematic"(16:9 padrão) ou"short"(veja abaixo).budgetCredits(obrigatório) — um teto rígido para o gasto total da execução (veja "Orçamento é um teto rígido" abaixo).gates(opcional, padrão[]= totalmente sem supervisão) — quais de"script","references","storyboards","videos","assembly"pausam a execução para revisão humana (veja "Bloqueios" abaixo).webhookUrl(opcional, apenashttps://) — recebe eventos de execução (veja "Webhooks" abaixo).title,aspectRatio,videoModel(opcionais) — mesmos formatos quecreate_project;profilefornece padrões que você pode substituir.
Retorna {runId, projectId, webhookSecret?}. webhookSecret está presente apenas quando webhookUrl foi definido, e é mostrado exatamente uma vez, aqui — salve imediatamente, nunca mais é retornado e você precisa dele para verificar entregas de webhook.
make_long_film — filmes de vários minutos com personagens consistentes
Use isto em vez de make_film quando o usuário quiser uma peça de formato longo cujos personagens devem permanecer reconhecivelmente a mesma pessoa durante todo o filme.
Ele executa o mesmo pipeline, mas muda como o vídeo é gerado. make_film renderiza um clipe independente por página de storyboard e os concatena, então um filme de 3 minutos são 20–40 gerações separadas — cada uma um lançamento independente de dados na identidade do personagem. make_long_film renderiza cada página como UMA geração contínua de múltiplas tomadas Seedance 2.5 e continua a página anterior através de extensão de vídeo nativa, então o mesmo filme tem cerca de 6 gerações. Cada segmento reenvia os mesmos retratos de personagem aprovados: a extensão carrega continuidade, os retratos carregam identidade.
- Fixado em
seedance-2.5-reference.videoModelnão é selecionável. - O tempo total de execução é limitado a 180 segundos. Um storyboard que planeja mais é recusado com o excesso exato — corte cenas e regenere.
gatestem como padrão todos os quatro pontos de revisão ("script","references","storyboards","videos"), porque o objetivo desta ferramenta é que um humano aprove o elenco e o enredo antes da etapa cara de vídeo. Passe[]apenas se o usuário pedir explicitamente uma execução sem supervisão.- Outros argumentos correspondem a
make_film:briefText,budgetCredits,title,castIds,webhookUrl,aspectRatio.