Skip to main content
Glama
inhabitants

sapiens-mcp

by inhabitants

sapiens_video

Create AI videos from prompts or images, animate stills, transfer motion, recreate shots, and monitor rendering until the video URL is ready.

Instructions

Sapiens Video — gera vídeo (qualquer membro logado; vídeo é caro, cobra as Sinapses da sua conta). Sub-action 'create' (recomendada): escolhe modelo + config e gera num call (cria a row + renderiza). Modelos: 'sapiens-video-seedance' (Seedance 2.0, cena+áudio nativo, 4-15s, 480/720/1080p, t2v/i2v), 'sapiens-video-kling' (Kling 3.0 Pro, anima imagem, 3-15s, sound opcional, i2v/t2v), 'sapiens-video-wan' (WAN 2.5, imagem que fala/canta com áudio+lip-sync, 5/10s, i2v), 'sapiens-video-kling-motion' (Motion transfer: passa o movimento de um vídeo pra uma imagem, PRECISA de pessoa com tronco visível na imagem E no vídeo), 'sapiens-video-shot-mimic' (Shot Mimic: recria o plano/câmera/cortes de um vídeo de referência como cena nova), 'sapiens-video-omni' (Gemini Omni: texto vira vídeo 10s 720p com áudio nativo; NÃO aceita mídia do user, ignora references/durationSec/resolution; editOfImageId aponta um vídeo Omni seu e o prompt edita a MESMA cena, preservando câmera e ambiente), 'sapiens-video-lite/fast/quality' (Veo 3.1). Args create: model, prompt, durationSec, resolution ('480p'/'720p'/'1080p'), audio, aspectRatio. FRAME INICIAL/FINAL POR REFERÊNCIA (recomendado): startImageId/endImageId (id da sua galeria) ou startImageUrl/endImageUrl (url de galeria/Acervo/personagem) — resolvidos server-side igual à imagem, descubra via sapiens_reference. FRAME POR ARQUIVO LOCAL (só no MCP instalado/stdio, não no remoto): startImagePath/endImagePath = caminho absoluto de uma imagem no seu PC (PNG/JPEG/WebP até 8MB); o processo lê o arquivo e sobe como frame inicial/final, igual a subir no gerador do site — 1 imagem inicial + 1 final por vídeo, então pra vários vídeos rode create uma vez por imagem. No remoto use id/url. Alternativa base64: references (role 'start'=imagem i2v, 'end'=frame final, 'driving'=vídeo de movimento do Motion). Suporte a frame final varia por modelo. Custo server-side por config. Sub-action 'generate' (legado): renderiza um imageId de vídeo já criado no site. Retorna {success, url, imageId, cost}. VITRINE (sem custo): sub-action 'demos' lista os SEUS demo films (kind=demo do Estúdio de Vídeo) com slug + estado de vitrine; sub-action 'showcase' põe/tira um demo (por slug) do mini-cinema da /conectar-claude, com showcaseTag (chip de capacidade) e showcaseOrder (ordem asc). Fluxo: 'demos' pra achar o slug, depois 'showcase' com showcase=true. Só entra na vitrine pública se for a conta da casa. VÍDEOS PROGRAMÁTICOS (ADMIN, sem custo): a mesa do Estúdio de Vídeo (/experimentos/films, tabela videoSpecs, 5 kinds: demo | aula-tour | essay | tipografia-musical | dataviz) opera por aqui sem browser — 'film-list' (todos os kinds; filtros filmKind/filmStatus), 'film-get' (spec inteiro por slug), 'film-upsert' (cria/atualiza por slug, idempotente; spec = objeto JSON no shape do 'Copiar spec' da tela, validação no servidor), 'film-status' (produção por slug: filmStatus + videoUrl + durationSecMeasured; o fecho do render é os três num call), 'film-publish' (Acervo aba Fitas + portfólio; exige pronto+URL), 'film-delete' (limpar rascunho). O RENDER do filme segue no agente local (skill /film, repo da casa): o MCP registra e fecha o ciclo, não renderiza. create é ASSÍNCRONA: cria o row, debita e volta NA HORA com {imageId, status:'rendering', cost} (não espera o render, que leva de segundos a minutos). Acompanhe com a sub-action 'status' (imageId) até status='completed' (traz a url) ou 'error'/'blocked'. NÃO chame create de novo enquanto renderiza (cria outro vídeo e cobra de novo); falha de provider refunda sozinha. SOM: 'sonorize' (imageId de vídeo SEU completed + prompt do som da cena) gera uma VARIANTE nova com trilha sincronizada (20 Sinapses/s, o original fica intacto; sonorize sempre o original, nunca uma variante). ADMIN: 'shadows' (videoUrl + title) extrai a sombra/depth-map de um vídeo pro Acervo como driving reutilizável; 'shadows-list' lista as sombras prontas. Sub-action 'models' (sem custo, sem login): lista os modelos de vídeo ativos + preço-piso + config (durações/resoluções) + disponibilidade (Omni depende de env).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
slugNoaction=showcase: slug do demo film a curar (descubra via action=demos). film-get/film-status/film-publish/film-delete: slug do spec (descubra via film-list). film-upsert: slug fixo do filme no repo films/ (idempotente: existe = atualiza, não existe = cria com esse slug); omita pra criar com slug gerado.
specNofilm-upsert: o spec inteiro como objeto JSON (validação fica no servidor, fonte única). Shape: { kind, musicMode ('default'|'file'|'track'), musicRef?, aulaSlug? (só aula-tour), e o payload do kind: demo | aulaTour | essay | tipoMusical | dataviz }. Mesmo shape do 'Copiar spec' da tela /experimentos/films; descubra um exemplo real com film-get.
audioNoaction=create: liga áudio. Seedance = on por default; Kling 'sound' = +50%. WAN é áudio nativo sempre.
modelNoaction=create: modelo de vídeo. 'sapiens-video-seedance' (cinematográfico+áudio, t2v/i2v), 'sapiens-video-kling' (anima imagem, i2v/t2v), 'sapiens-video-wan' (imagem que fala, i2v), 'sapiens-video-kling-motion' (motion transfer, precisa pessoa na imagem E no vídeo de movimento; vídeo de referência MÁX 10s, cobra pela duração do clipe), 'sapiens-video-shot-mimic' (recria o plano do vídeo de referência com seu personagem: mesma câmera, mesmos cortes; 'driving' = previs/clipe do plano MÁX 15s, 'start' = personagem), 'sapiens-video-lite/fast/quality' (Veo 3.1), 'sapiens-video-omni' (Gemini Omni: texto -> vídeo 10s 720p com áudio nativo; t2v + EDIÇÃO conversacional via editOfImageId; não aceita imagem/vídeo do user, ignora duração/resolução).
titleNoaction=shadows: nome do deepshadow (vira o slug no Acervo; re-extrair o mesmo título sobrescreve). Mín. 3 chars.
actionYes
promptNoPrompt da cena. Pra i2v descreve o movimento. Default vago se omitido.
searchNoaction=shadows-list: filtro de busca opcional (título/tags). Sem ele, lista o banco inteiro (até 300). Cada item traz url (sombra pura, driving) e skeletonUrl (soma com esqueleto, preview humano) quando existe.
imageIdNoaction=generate ou action=status: generatedImages:_id do vídeo. O create devolve o imageId; ou um vídeo já criado no site (o row define modelo + custo). Use sapiens_gallery action=list pra descobrir. action=sonorize: o imageId do clipe SEU (status completed) que vai ganhar som.
filmKindNofilm-list: filtra por kind (demo | aula-tour | essay | tipografia-musical | dataviz).
showcaseNoaction=showcase: true põe na vitrine /conectar-claude, false tira.
videoUrlNoaction=shadows: URL pública (http/https) do vídeo-fonte. O servidor extrai a SOMBRA (depth) e guarda no Acervo (Corpo). ADMIN, 200 Sinapses/segundo (refund na falha). film-status: a URL https do render no CDN (Bunny), o que acende o player do card.
publishedNofilm-publish: true publica no Acervo (aba Fitas) + portfólio (exige pronto + videoUrl), false despublica.
endImageIdNoFrame FINAL: generatedImages:_id da SUA galeria. Vira reference role 'end' (suporte varia por modelo).
filmStatusNofilm-status: novo status de produção (rascunho | na_fila | renderizando | pronto). film-list: filtra por status. O fecho do render é film-status com filmStatus='pronto' + videoUrl + durationSec.
referencesNoReferences em base64 (escape hatch / Motion / Shot Mimic). i2v: role 'start' (imagem). Motion: 'start' (pessoa) + 'driving' (vídeo de movimento, <=5MB, MÁX 10s — o Kling Motion recusa referência acima de 10s e cobra pela duração do clipe; corte o trecho antes). Shot Mimic: 'start' (personagem) + 'driving' (previs ou clipe do plano a imitar, <=5MB, MÁX 15s — acima o provider corta em 15s). Pra frame inicial/final a partir do seu acervo, prefira start/endImage* abaixo (sem precisar de base64).
resolutionNoaction=create: resolução (Seedance/WAN/Shot Mimic). Default 720p. Kling não usa (1080p nativo).
aspectRatioNo'16:9' (horizontal), '9:16' (vertical), '1:1'. Vale pro t2v; i2v herda da imagem.
durationSecNoaction=create (modelos WaveSpeed): duração em segundos. Seedance/Shot Mimic 4-15, Kling 3-15, WAN 5/10. Sem isso usa a config mais barata. O preço escala com a duração. action=shadows: duração do vídeo-fonte, se souber (cobra 200/s; sem ela, flat ~2000).
endImageUrlNoFrame FINAL: url pública de galeria/Acervo/personagem. Vira reference role 'end' (suporte varia por modelo).
showcaseTagNoaction=showcase: chip de capacidade do card (ex: 'Repertório', 'Galeria', 'Fórum'). Curto, até 24 chars.
endImagePathNoFrame FINAL a partir de um ARQUIVO LOCAL do seu PC — só no MCP instalado (stdio). Caminho absoluto; PNG/JPEG/WebP até 8MB. Vira reference role 'end' (suporte varia por modelo). 1 imagem por vídeo. Mutuamente exclusivo com endImageId/endImageUrl.
startImageIdNoFrame inicial (i2v): generatedImages:_id da SUA galeria. Vira reference role 'start'.
editOfImageIdNoaction=create model=sapiens-video-omni: EDIÇÃO conversacional ('Nano Banana de vídeo'). Passe o imageId de um vídeo Omni SEU já gerado e o prompt vira instrução de edição sobre a MESMA cena (ex: 'troca o urso polar por um Papai Noel com um presente'), preservando câmera, ambiente e timing. Cada edição debita como uma geração Omni nova e devolve um vídeo novo (que também pode ser editado). Só funciona em vídeo gerado pelo Omni (não edita vídeo seu/upload).
showcaseOrderNoaction=showcase: ordem na trilha do mini-cinema (asc, 0..999; menor aparece primeiro).
startImageUrlNoFrame inicial (i2v): url pública (Bunny/Convex/Wikimedia) de galeria/Acervo/personagem. Vira reference role 'start'.
startImagePathNoFrame INICIAL (i2v) a partir de um ARQUIVO LOCAL do seu PC — só no MCP instalado (stdio), não na conexão remota. Passe o caminho absoluto (ex: 'C:\\Users\\voce\\HERO\\1.png'); o processo lê o arquivo e sobe como frame inicial, igual a subir a imagem no gerador do site. PNG/JPEG/WebP, até 8MB. É 1 imagem inicial por vídeo (o modelo do site): pra vários vídeos, rode create uma vez por imagem. Mutuamente exclusivo com startImageId/startImageUrl.
durationSecMeasuredNofilm-status: duração MEDIDA do render em segundos (ffprobe), vira a duração do card.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv1.38.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It discloses cost/debiting ('cobra as Sinapses da sua conta'), async behavior ('create é ASSÍNCRONA... volta NA HORA'), idempotency, provider-failure refunds, and variant semantics for sonorize. These behavioral details go far beyond the minimal annotations (readOnlyHint: false, openWorldHint: true).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one dense, unstructured block of text with heavy parentheticals, all-caps emphasis, and no sectioning or grouping. The volume is partly justified by 28 parameters and 15 sub-actions, but the lack of organization makes it significantly harder to scan and parse than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and minimal annotations, the description carries the full burden — and it largely delivers. It covers return shapes like {success, url, imageId, cost}, the rendering status lifecycle, per-model support, admin film workflows, and pricing/refund behavior, making it functionally complete for all sub-actions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is already 96%, the description adds substantial meaning: local file limits for startImagePath/endImagePath, mutex rules, references roles with size and duration caps, editOfImageId's 'Nano Banana de vídeo' behavior, and per-model parameter applicability. This is much more than a restatement of the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line 'Sapiens Video — gera vídeo' states a concrete verb and resource, and the long sub-action list defines the tool's scope well. However, it never explicitly contrasts with sibling video-adjacent tools like sapiens_shorts or sapiens_stock_video, so it is clear but not a strong differentiator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit routing guidance throughout: 'Sub-action create (recomendada)' vs 'generate (legado)', 'só no MCP instalado/stdio, não no remoto' with 'No remoto use id/url', and the showcase flow 'demos pra achar o slug, depois showcase'. It also tells the agent not to call create again while a video is rendering, which is a clear when-not instruction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/inhabitants/sapiens-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server