Ligar um agente com MCP
O MCP é outra porta para a mesma API Pro: mesmas permissões, os mesmos limites, os mesmos créditos, o mesmo registo de atividade. Um agente liga-se a um único endereço e vê ferramentas que pode usar em linguagem natural. Não há nada para instalar nem nada para escrever.
O Claude Desktop, o claude.ai, o ChatGPT, o Claude Code, o Cursor, o VS Code e o Windsurf falam todos esta linguagem.
O endereço é um segredo
https://api.tendre.ai/mcp/<key>A chave é uma chave de API Pro, criada na app em Configurações > API.
Lê esse endereço com atenção: a chave está dentro dele. Qualquer pessoa que tenha o link renderiza com os teus créditos, até aos teus limites. Trata-o exatamente como uma palavra-passe. Não o coles num documento partilhado, num ticket nem numa captura de ecrã, e se ficar exposto, revoga a chave na app: o agente para imediatamente.
Os agentes que permitem definir um cabeçalho podem usar https://api.tendre.ai/mcp com Authorization: Bearer <key> em alternativa, o que mantém a chave fora do URL.
Liga o teu agente
Tudo o que está abaixo foi verificado a 22 de setembro de 2026. Estes são os menus de outras empresas e mudam: o Claude e o OpenAI alteraram os seus no mesmo dia em que esta página foi escrita, e o OpenAI também limita os servidores MCP personalizados a alguns planos. Se um caminho já não corresponder ao que vês, procura "connectors" ou "MCP" nas configurações desse produto. O único elemento que não muda é o endereço que colas.
- Claude Desktop, claude.ai e a app móvel: Customize > Connectors > Add custom connector, cola o endereço, sem autenticação extra. Link direto:
https://claude.ai/new#customize/connectors. Funciona imediatamente, em todos os dispositivos da conta, sem nada para reiniciar. (Os Connectors costumavam estar em Settings; essa página aponta agora para aqui.) - ChatGPT: ativa o modo de programador nas configurações primeiro, depois Plugins > New plugin > Custom tool. Dá-lhe o nome Tendre.AI, coloca o endereço em Server URL, define Authentication como None, marca o aviso para confirmar que entendes, e cria.
- Claude Code:
claude mcp add --transport http tendre https://api.tendre.ai/mcp/<key> - Cursor, em
~/.cursor/mcp.json:
{ "mcpServers": { "tendre": { "url": "https://api.tendre.ai/mcp/<key>" } } }- VS Code, em
mcp.json:
{ "servers": { "tendre": { "type": "http", "url": "https://api.tendre.ai/mcp/<key>" } } }- Windsurf, em
~/.codeium/windsurf/mcp_config.json:
{ "mcpServers": { "tendre": { "serverUrl": "https://api.tendre.ai/mcp/<key>" } } }A forma mais rápida de começar é o separador Configurações > Connectors da app: cria a chave e escreve estas configurações por ti, num clique, para os agentes instalados no teu computador. Para os agentes web (claude.ai, ChatGPT), copia o endereço para colares nas configurações do conector.
As trinta e uma ferramentas
| Ferramenta | O que faz |
|---|---|
tendre_generate_image | Uma ou várias imagens (count de 1 a 8), com ou sem LoRA, ou o retoque de uma imagem de origem (mode edit, img2img, ou inpaint com mask_url). seed renderiza novamente uma imagem anterior, ou uma variação dela. Aguarda o resultado por defeito, até 55 s, e coloca as imagens diretamente na conversa. wait=false devolve identificadores em vez disso. |
tendre_generate_video | Submete um clip (formato, som, duração, taxa de quadros fps, LoRA) a partir de um prompt, animando uma imagem (mais uma imagem final para uma transição), em modo Ultra (quality max, 1080p no máximo; ao segundo, seconds dá a duração, de 4 a 30 s), com imagens-chave (keyframes, modo Qualidade), com coerência reforçada (consistency enhanced, até 721 fotogramas por plano, ou seja 30 s a 24 fps, extensões incluídas), ou prolongando o clip anterior (extend_job_id, com sequence_id para um vídeo longo). Um plano Ultra prolonga-se para a frente ou para trás (extend_direction); passadas 24 horas, a partir do seu ficheiro original (extend_video_url, ou extend_upload_id através de tendre_upload_link, enviado tal como está). seed renderiza novamente um clip anterior, ou uma variação dele. Um clip demora vários minutos: por defeito a ferramenta aguarda o final (no máximo 55 s) e devolve o link MP4, ou o identificador se o render não estiver terminado; wait=false devolve o identificador imediatamente. Enquanto aguarda, o botão de paragem do utilizador cancela o render e nada é cobrado. |
tendre_character_create | Cria uma personagem (sete vistas) a partir de uma foto: um link de upload, um ficheiro anexado no ChatGPT, uma imagem renderizada na conversa, ou um endereço público. Aguarda a criação (no máximo 55 s) e coloca as vistas na conversa (pré-visualizações de 1024 px; os links do texto dão as vistas em tamanho completo). 6 créditos, outfit incluído. Ver Personagens. |
tendre_character_get | O estado de uma personagem e as suas vistas (wait aguarda o final da criação; sheet_id escolhe uma character sheet). |
tendre_character_list | As personagens da conta, incluindo as criadas na app, com a data em que cada uma será apagada. |
tendre_character_redo_view | Refaz uma vista falhada, ou uma que olhe para o lado errado (1 crédito), com uma instruction opcional no imperativo para uma personagem ou uma character sheet criadas através da API; sheet_id aponta para uma character sheet concreta. |
tendre_character_set_view | Substitui uma vista de uma personagem criada através da API, ou de uma character sheet adicionada com tendre_character_add_sheet (sheet_id), por uma imagem do utilizador, sem nada gerado (grátis). |
tendre_character_add_sheet | Adiciona uma roupa (uma character sheet) a uma personagem existente, da API ou da app: vistas prontas guardadas grátis (views, papel a papel), papéis em falta gerados (1 crédito cada), ou, sem vistas, a roupa posta na sua vista de corpo inteiro e seis vistas geradas (7 créditos). Devolve o sheet_id, a passar a tendre_character_get, tendre_character_redo_view, tendre_character_set_view e tendre_multiref_video. Ver Adicionar uma roupa. |
tendre_character_delete | Apaga uma personagem e as suas vistas. |
tendre_subject_create | Guarda um cenário, um objeto, um animal, um estilo ou uma roupa a partir de 1 a 6 imagens do utilizador, para o reutilizar no Multi-Ref. Grátis. Ver Lugares, objetos, animais, estilos e roupas. |
tendre_subject_list, tendre_subject_get, tendre_subject_delete | Os cenários, objetos, animais, estilos e roupas da conta (incluindo os da Biblioteca da app), os seus detalhes e imagens, e a sua eliminação. Os elementos oferecidos pela Tendre.AI juntam-se à lista na primeira leitura. |
tendre_subject_generate | Gera um lugar, um objeto, um animal, um estilo ou uma roupa sem imagem do utilizador: uma imagem de partida tirada de uma descrição em inglês (ou importada, gratuita), e depois vistas (ver Gerar um sujeito sem imagens). 1 crédito por imagem renderizada, 6 imagens no máximo; espera 55 s e depois devolve o estado e as imagens. |
tendre_subject_add_views, tendre_subject_redo_view | Adiciona vistas a um sujeito gerado, ou refaz uma (instructions substitui a sua instrução; start refaz a imagem de partida enquanto nenhuma vista partir dela). |
tendre_multiref_video | Um clip Multi-Ref com 1 a 4 personagens, objetos e animais chamados por @Name no prompt (subjects; em Ultra, até 30 imagens no total, com 12 personagens no máximo, 8 recomendadas), um cenário guardado (location_id) ou uma imagem de cenário opcional pontual, Qualidade ou Ultra (ao segundo: seconds, de 4 a 30 s), formato, duração, taxa de quadros fps, som, seed, e com som uma voz para as duas primeiras personagens (voice_url, o endereço público de um ficheiro áudio, no máximo 4 MB; ordena as personagens como o diálogo). Aguarda o final como tendre_generate_video, e o botão de paragem cancela o render. Em Ultra, também styles, outfits (com worn_by) e motion (um vídeo de movimento: video_upload_id, video_job_id ou video_url; mode camera ou choreography). Ver Multi-Ref Vídeo. Com som, as duas primeiras personagens falam por predefinição com a voz do seu perfil (voice generated para uma voz feita pelo modelo). |
tendre_multiref_image | Cria uma imagem com personagens (pela sua vista ou pelo seu LoRA), objetos, animais e um cenário, chamados por @Name no prompt em inglês (ver Criar uma imagem). Devolve o jobId de imediato: a imagem demora 1 a 3 minutos, acompanha-a com tendre_job_status (kind images). quote_only dá o preço sem iniciar nada. |
tendre_face_swap | Face swap (a personagem inteira, ou só a cabeça com part head): a pessoa em câmara num dos teus vídeos (link de upload, ficheiro anexado no ChatGPT, endereço público, no máximo 95 MB) ou num vídeo renderizado na conversa torna-se uma das tuas personagens, rosto, cabelo, corpo e outfit, mantendo os gestos, os lábios, o som e o cenário, numa passagem de no máximo 20 s (start, duration), com scene, name, zone, likeness e, com som, a voz da personagem (voice_url, o endereço público de um ficheiro áudio, no máximo 2 MB). Por predefinição, o som fica com a voz do perfil da personagem se ela tiver uma (voice original mantém a voz filmada). Transições transition_in e transition_out: cut (predefinido), morphing (um fundido) ou glitch (um efeito digital sobre a silhueta); com uma transição, volta o vídeo inteiro (no máximo 60 s). A resposta dá os limites da passagem (passage). 6 créditos por segundo de passagem. Aguarda o final como tendre_generate_video, e o botão de paragem cancela o render. Ver Face swap. |
tendre_sequence_create | Abre uma sequência, para construir um vídeo longo plano a plano. |
tendre_sequence_export | Junta os planos de uma sequência num único vídeo e devolve o link MP4. |
tendre_project_export | Exporta a pasta de projeto de um render (job_id) ou de uma sequência (sequence_id) com menos de 24 horas: o manifesto na resposta, o ZIP por um link. manifest_only devolve só o manifesto. Para uma sequência, include_film junta o filme montado. include_media, include_references e exclude_references escolhem o que entra, como a janela de exportação da app. Gratuito. Vê Exportar a pasta do projeto. |
tendre_upload_link | Cria um link de upload para uma das tuas imagens ou vídeos (uma foto ou vídeo anexado à conversa, um ficheiro no teu computador ou telemóvel). Abres-o e largas o ficheiro, ou um agente com acesso aos teus ficheiros envia-o ele próprio. Um vídeo (MP4, MOV, WebM ou MKV, no máximo 95 MB) vai para tendre_face_swap. Grátis. |
tendre_job_status | Em que ponto está um render. Para um vídeo aguarda o final por defeito (no máximo 55 s, wait=false para uma verificação rápida), e o botão de paragem cancela o render enquanto aguarda. Uma vez terminado, uma imagem volta na conversa e um vídeo como link. |
tendre_cancel_job | Cancela um render. Nada é cobrado. |
tendre_list_loras | As personagens da conta, com o nome a passar como lora e a palavra de ativação a colocar no prompt. |
tendre_buy_credits | Os packs de créditos com os preços atuais, e o link de compra da tua licença. Além do maior pack, também propõe uma quantidade livre (parâmetro credits). Esta ferramenta não paga: abres o link e pagas, por cartão ou cripto. |
tendre_purchase_credits | Compra um pack (ou uma quantidade livre) com o teu cartão guardado, se autorizaste o teu agente a comprar no carregamento automático da tua página de conta, dentro do teu limite mensal. O agente tem de anunciar o pack e o seu preço e depois esperar pelo teu sim na conversa (confirmed). Se a compra for recusada, dá-te o link de compra normal. Um e-mail confirma cada compra. |
tendre_credits | Saldo, os limites da chave, renders em curso. |
tendre_pricing | A grelha de preços atual. |
tendre_quote | O custo de um render antes de o iniciar: inclui a criação de uma personagem (kind characters) e um clip Multi-Ref (multiref true). Aceita consistency para um clip em coerência reforçada, e fps: a resposta indica a duração em segundos a essa taxa. Para um Ultra faturado ao segundo, seconds fixa a duração. Para uma extensão Ultra, extend_job_id e extend_direction. |
Se a ligação cair antes da resposta de tendre_generate_image, tendre_generate_video, tendre_multiref_video ou tendre_face_swap (tempo limite de um proxy excedido, erro 524, programa parado), o render não é iniciado, ou é cancelado de imediato, e nada é cobrado: basta voltar a chamar a ferramenta. A criação de uma personagem (tendre_character_create), essa, continua: voltar a chamá-la com a mesma foto e as mesmas definições devolve a mesma personagem, sem cobrar nada duas vezes.
Ao ligar-se, o servidor entrega ao agente as regras da casa: prompts em inglês, a palavra de ativação é obrigatória com um LoRA, anunciar o custo antes de um render dispendioso, verificar as vistas de uma nova personagem antes do seu primeiro clip e refazer uma vista falhada, e uma personagem, cenário, objeto ou animal sem utilização durante um ano é apagado.
Começar a partir de uma imagem
Podes pedir mais do que uma imagem do zero: "faz uma imagem, depois anima-a", uma transição entre duas imagens, um retoque.
O agente aponta para a imagem de uma de duas formas. Pelo seu identificador, quando foi renderizada na conversa (image_job_id; o ficheiro é relido do nosso lado enquanto o motor ainda o retém, durante algumas dezenas de minutos). Ou pelo endereço público de um PNG ou JPEG de no máximo 12 MB (image_url; endereços privados são recusados). Para uma transição, a imagem final é indicada da mesma forma (end_image_job_id, end_image_url). Se não definires nenhum formato, o clip usa o da imagem. Uma transição é gerada ao tamanho pedido, de 480p a 1080p, e é cobrada como um clip desse formato. Para imagens-chave (modo Qualidade), keyframes aceita 1 a 4 objetos { at, image_job_id | image_url | image_upload_id, strength } e exige uma duração fixa (length).
A tua própria foto
- ChatGPT: anexa a imagem à conversa e pede. Mais nada.
- Todos os outros agentes (Claude, Cursor...): o agente dá-te um link de upload (
tendre_upload_link). Abre-o, larga a imagem ou cola-a, e depois diz ao agente que está feito. Um agente com acesso aos teus ficheiros (Claude Code, Cursor, VS Code) envia-a ele próprio.
A tua foto nunca é escrita em disco. Fica em memória durante 30 minutos, tempo suficiente para o render, e depois é esquecida. O link de upload só funciona para a chave que o criou. As exceções são uma foto usada para criar uma personagem, que se torna uma das vistas da personagem, e as imagens de um cenário, objeto ou animal guardado: ambos são armazenados encriptados, sob o teu controlo, até os eliminares ou até um ano sem utilização (ver abaixo).
Personagens no mesmo clip
Pede "cria uma personagem a partir desta foto": o agente cria-a (6 créditos), mostra-te as sete vistas, e refaz uma vista falhada. Depois pede a cena, "um clip em que a Lea passa uma chávena ao Tom numa cozinha ensolarada": distribui-os com Multi-Ref Vídeo, cada um chamado por @Name, até quatro por clip (doze em Ultra, oito recomendadas). As personagens que criaste na app também estão disponíveis. Uma vista que continua a sair errada (uma prótese no lado errado, por exemplo) é refeita com uma instrução, ou substituída pela tua própria imagem.
Dá ao agente algumas fotos de um lugar, um objeto ou um animal e diz o que é: ele guarda-o (grátis), e depois podes pedir "@Lea espera pelo @Elétrico na @Praça". Até quatro personagens, objetos e animais no total, mais um cenário guardado como cenário de fundo; em Ultra, até 30 imagens no total, com doze personagens no máximo (oito recomendadas). Os detalhes estão na página Personagens e em Multi-Ref Vídeo.
Uma personagem no teu próprio vídeo (Face swap)
Envia ao agente um vídeo e nomeia uma das tuas personagens: com tendre_face_swap, a pessoa em câmara
torna-se essa personagem, rosto, cabelo, corpo e outfit, mantendo os gestos, os lábios, o som e o
cenário, numa passagem de no máximo 20 s. O vídeo vem:
- de um link de upload (
tendre_upload_linktambém aceita vídeos: MP4, MOV, WebM ou MKV, no máximo 95 MB); - como ficheiro anexado no ChatGPT;
- de um endereço público (endereços privados são recusados);
- ou de um vídeo renderizado na conversa.
Para mudar só a cabeça (rosto e cabelo) e manter o corpo filmado, a roupa e o cenário, pede-o ao agente: ele envia part head.
Por predefinição, o som do vídeo fica com a voz do perfil da personagem se ela tiver uma; para manter a voz filmada, pede-o: o agente envia voice original. Uma voz dada por voice_url tem prioridade, e são usados os seus primeiros 20 segundos.
Uma personagem criada na app não tem nome do nosso lado: o agente atribui-lhe um (name) para a chamar
por @Name na cena. Para a voz da personagem, indica o endereço público de um ficheiro áudio de no máximo
2 MB (voice_url): o som do vídeo é convertido nessa voz. O teu vídeo passa pelos nossos
servidores enquanto é preparado, depois vai para a placa gráfica que o renderiza. O resultado volta como
um link de vídeo, como qualquer clip, no formato de trabalho (cerca de um megapixel): resolução completa e várias
personagens seguidas são específicas da app de secretária. O preço é por segundo de passagem, ver
Face swap.
Transições, como os cantos dos cartões da app: transition_in passa da pessoa filmada para a personagem no início da passagem, transition_out volta da personagem para a pessoa no fim. Cada uma é cut (predefinido, sem transição), morphing (um fundido, cerca de 0,5 s) ou glitch (um efeito digital limitado à silhueta, cerca de 0,4 s). Não há transição de entrada se a passagem começa o vídeo, nem de saída se o termina.
Com uma transição, recebes o vídeo inteiro, no máximo 60 s (um mais longo é recusado): a pessoa filmada, a transição, a personagem na sua passagem, a transição e de novo a pessoa. Chega no formato de trabalho (cerca de um megapíxel) e a 24 ou 30 fps; a app para computador, essa, volta a colar a personagem em resolução total e à cadência original. A passagem renderizada (e faturada) alonga-se cerca de 0,3 s de cada lado que tem transição. Colocar as transições é gratuito e demora de alguns segundos a um minuto depois do render, enquanto tendre_job_status responde pending (fase assembling the transitions). O video_job_id de um render assim designa o seu vídeo inteiro: volta a dá-lo a tendre_face_swap para pôr uma segunda personagem no mesmo vídeo. O nosso servidor trata dois face swaps com transições ao mesmo tempo; acima disso, a ferramenta pede-te que tentes de novo dentro de alguns minutos.
A resposta dá os limites exatos da passagem, em segundos (passage: start, end). Sem transição, uma passagem conta 8n+1 imagens, arredondado para baixo: 2,9 s pedidos dão 2,7 s. Para colar outra passagem logo a seguir, começa-a em end. Com transição, a passagem é exata à imagem.
Para colar duas personagens, começa a segunda no passage.end da primeira: encaixa à imagem, e a sua transição de entrada faz-se inteira mesmo antes da junção (cerca de 0,4 s de glitch ou 0,5 s de fundido renderizados a mais do seu lado), sem voltar a passar pela pessoa filmada. Deixa o transition_out da primeira em cut: caso contrário, a ferramenta avisa que as duas transições se sobreporiam. A resposta traz então passage.joined_to_previous.
Usa apenas vídeos de pessoas que deram o seu consentimento: é uma regra dos termos de utilização.
As imagens voltam na conversa, os vídeos são um link com prazo de validade
Uma imagem chega na conversa: o protocolo tem um lugar para conteúdo de imagem.
Um vídeo não tem, e pesa demasiado para isso. Volta como um link que retransmite o ficheiro a partir da saída do motor e fica válido durante algumas dezenas de minutos. Nada é guardado do nosso lado depois disso.
Por isso, um agente que possa escrever no teu disco (Claude Code, Cursor, VS Code) recebe instruções para guardar o ficheiro por ti. Um que não possa, como um chat web, só pode entregar-te o link. Descarrega-o enquanto está válido: uma vez expirado, o clip desaparece, e renderizá-lo novamente custa créditos outra vez.
Há três exceções. Um vídeo longo: os seus planos ficam no nosso servidor apenas enquanto está a ser montado, e são apagados 30 minutos após o último ter sido adicionado; o vídeo montado é guardado durante 24 horas, para poderes encontrá-lo se regressares mais tarde, e depois também é apagado. E uma personagem: as suas vistas, incluindo a foto que enviaste, são armazenadas encriptadas sob a tua licença até a eliminares (tendre_character_delete) ou até passar um ano sem utilização. Por fim, um Face swap com transição: o vídeo inteiro fica na memória do nosso servidor até serem colocadas a personagem e as suas transições, o vídeo final mais 30 minutos, e o teu vídeo só passa pelo disco enquanto é preparado. Nada mais fica connosco.
Qualidade máxima
Para o render mais fino, basta pedi-lo ("em qualidade máxima"): o agente muda para o modo Ultra, informa-te do preço primeiro, e avisa-te que o render demora mais. O vídeo vai até 1080p: não há 4K.
Vídeo longo
Um clip dura no máximo 20 segundos a 24 fps (16 s a 30, o valor por defeito), 30 s em coerência reforçada a 24 fps. Para vídeos mais longos, basta pedir o vídeo completo ("um vídeo de um minuto sobre..."): não há mais nada a saber. O agente renderiza-o plano a plano, cada plano continuando o movimento do anterior sem paragem na junção, e depois junta-os num único MP4 e dá-te o link.
Os planos renderizam um após outro, e cada um demora vários minutos. Cada um custa o preço de um clip, que tendre_quote indica antes de tudo começar. Em coerência reforçada (consistency enhanced), um minuto cabe em dois planos de 30 s a 24 fps, cada um ao dobro do preço do seu formato. O som continua de um plano para o seguinte, exceto em coerência reforçada e em Ultra, onde começa de novo em cada plano. As regras e as chamadas por trás disto estão na página de Vídeos.
Vários planos com cortes duros, até 20 segundos, não precisam de sequência: pede os planos, e o agente escreve-os num único clip (como descrevê-los).
Nos bastidores
O transporte é MCP Streamable HTTP, versão de protocolo 2025-06-18, sem estado: uma mensagem JSON-RPC por POST, uma resposta JSON, sem stream do servidor (um GET responde 405). Os métodos são initialize, ping, tools/list e tools/call, e cada ferramenta chama a mesma API descrita nestas páginas, com a chave do agente.