Picmovi Photo to Video MCP
Crie vídeos a partir de fotos. Consulte créditos e, em seguida, gere um clipe curto a partir de uma imagem estática (quadro final opcional) com os modelos PicMovi.
Documentação
PicMovi Photo to Video MCP
Ferramentas de agente de código aberto para PicMovi, uma plataforma de foto para vídeo: transforme fotos estáticas em clipes curtos, ou crie vídeos a partir de fotos com um último quadro estático opcional.
Este repositório inclui um cliente REST tipado, uma CLI e um adaptador MCP stdio local. Identidade ao vivo, créditos, cotações, fotos proprietárias, concorrência do plano e trabalhos de vídeo são fornecidos pelo PicMovi Agent REST (/api/agent/v1/*). O MCP HTTP Streamable hospedado (/api/mcp + OAuth) é o caminho remoto-MCP posterior.
O que os agentes podem fazer
Agentes conectados podem:
- Descobrir modelos de foto para vídeo (
models_list) - Verificar créditos disponíveis (
credits_get) - Cotar um trabalho de foto para vídeo (
generation_quote) — sem cobrança - Após aprovação explícita de crédito, iniciar um trabalho (
generation_create) - Consultar o clipe (
generation_get)
Os créditos são gastos somente quando um vídeo é realmente enviado, pelos mesmos preços de tabela do picmovi.com. Listar modelos, cotar e consultar não deduzem créditos.
MCP hospedado (OAuth, posteriormente)
Quando o host suportar MCP remoto, o endpoint Streamable HTTP será:
{
"mcpServers": {
"picmovi": {
"url": "https://picmovi.com/api/mcp"
}
}
}
Até que isso seja lançado, use o adaptador stdio local abaixo. Ele chama o Agent REST em PICMOVI_BASE_URL (produção https://api.picmovi.com). Chaves e IDs de fotos vêm de picmovi.com/mcp.
MCP stdio local
{
"mcpServers": {
"picmovi": {
"command": "npx",
"args": ["-y", "picmovi-mcp"],
"env": {
"PICMOVI_API_KEY": "${PICMOVI_API_KEY}",
"PICMOVI_BASE_URL": "https://api.picmovi.com"
}
}
}
}
A partir deste repositório durante o desenvolvimento, args deve ser um caminho absoluto para packages/mcp/dist/index.js (um caminho relativo é resolvido a partir do diretório inicial e falha):
{
"mcpServers": {
"picmovi": {
"command": "node",
"args": ["/ABSOLUTE/PATH/picmovi_mcp/packages/mcp/dist/index.js"],
"cwd": "/ABSOLUTE/PATH/picmovi_mcp",
"env": {
"PICMOVI_MOCK": "1"
}
}
}
}
PICMOVI_MOCK=1 executa uma simulação local para que você possa configurar o Cursor sem uma chave ativa. Ele ainda aplica cotações de foto para vídeo, idempotência e um limite de paralelismo por conta. Ele não lê seus créditos do picmovi.com.
Crie uma chave em picmovi.com/mcp. Veja docs/agent-api.md para o contrato REST que o adaptador chama.
Modelo de prompt
Mesmo texto de picmovi.com/mcp. Cole no agente após clicar em uma foto nessa página. "Use photo-to-video.…" seleciona o modelo (sem seletor no chat). O prompt de movimento é o mesmo texto i2v que você digita no estúdio — o que acontece no clipe. "subtle motion" é a intensidade do movimento, não a história. Exclua a linha do prompt de movimento se quiser apenas uma animação genérica.
Animate my photo assetId: PASTE_ASSET_ID_HERE
for 5 seconds with subtle motion.
Use photo-to-video.seedance25 at 480p.
Motion prompt: She blinks slowly, a light breeze moves her hair, camera stays locked.
Quote credits first, then generate after I confirm.
CLI
npm run build
export PICMOVI_MOCK=1
node packages/cli/dist/index.js models list
node packages/cli/dist/index.js quote \
--capability photo-to-video.seedance25 \
--photo asset_start \
--duration 5s \
--resolution 480p
generate cotas primeiro e exige --yes --confirm-credits=<exact quote> além de um --request-id estável ao tentar novamente.
Fluxo de trabalho de foto para vídeo
- Descubra. Chame
models_list. Escolha umidretornado, comophoto-to-video.seedance25. Não invente um modelo. - Prepare a foto. Envie por uma superfície confiável do PicMovi. Passe
assetIds.images[0]como a foto inicial. Se o recurso definirendImageSupported,images[1]é o último quadro opcional. - Cote. Chame
generation_quotecomcapabilityId, movimentoprompt,values(duração, resolução, câmera) eassetIds. TratequotedCreditscomo autoritativo. - Confirme. Mostre ao humano o valor exato de crédito para criar vídeo a partir desta foto. Um "gerar" vago não é confirmação.
- Crie uma vez. Envie o mesmo payload,
confirmedCreditse um novoclientRequestIdestável. Reutilize esse id apenas para a solicitação idêntica. - Consulte. Chame
generation_get. Não crie novamente após um tempo limite ousubmission_unknown.
Concorrência
A mesma conta PicMovi não pode acumular trabalhos ilimitados de foto para vídeo em paralelo. O servidor retorna:
| Código | Significado |
|---|---|
parallel_limit_reached | Trabalhos em andamento já atingiram o limite do plano. Consulte até um terminar. |
queue_full | A fila de espera está cheia. Tente mais tarde. |
idempotency_conflict | clientRequestId foi reutilizado com entrada diferente. |
insufficient_credits | Créditos insuficientes para esta cotação de foto para vídeo. |
quote_changed | Confirme o novo quotedCredits antes de criar. |
Ferramentas somente leitura não ocupam slots de concorrência.
Desenvolvimento
npm install
npm test
npm run build
Pacotes:
@picmovi/agent-core— catálogo de foto para vídeo, cotações, backend simulado@picmovi/client— cliente Agent REST v1picmovi-cli— adaptador de linha de comandopicmovi-mcp— adaptador MCP stdio localserver.json— metadados do MCP Registry hospedado
Publicando esta listagem
Envie o repositório público do GitHub em https://mcpservers.org/submit. Detalhes: docs/publishing.md. Contrato: docs/tool-contract.md. Modelo de prompt: docs/prompt-template.md. Habilidade do agente: skills/picmovi-photo-to-video/SKILL.md.
Segurança e licença
Não faça commit de chaves de API. O MCP hospedado usa OAuth; adaptadores locais leem PICMOVI_API_KEY do ambiente. MIT-0, veja LICENSE.