Een agent verbinden met MCP
MCP is een andere ingang tot dezelfde Pro API: dezelfde rechten, dezelfde limieten, dezelfde credits, hetzelfde activiteitenlogboek. Een agent verbindt zich met één adres en ziet tools die hij in gewone taal kan gebruiken. Er is niets te installeren en niets te schrijven.
Claude Desktop, claude.ai, ChatGPT, Claude Code, Cursor, VS Code en Windsurf spreken het allemaal.
Het adres is een geheim
https://api.tendre.ai/mcp/<key>De sleutel is een Pro API-sleutel, aangemaakt in de app via Instellingen > API.
Lees dat adres nog eens: de sleutel zit erin. Iedereen die de link heeft, rendert met jouw credits, tot aan jouw limieten. Behandel het precies als een wachtwoord. Plak het niet in een gedeeld document, een ticket of een screenshot, en als het uitlekt, trek de sleutel dan in via de app: de agent stopt onmiddellijk.
Agents die je een header laten instellen, kunnen https://api.tendre.ai/mcp gebruiken met Authorization: Bearer <key>, waardoor de sleutel buiten de URL blijft.
Verbind je agent
Alles hieronder is gecontroleerd op 22 september 2026. Dit zijn menu's van andere bedrijven, en die veranderen: Claude en OpenAI hebben hun menu's allebei gewijzigd op de dag dat deze pagina werd geschreven, en OpenAI beperkt aangepaste MCP-servers ook tot bepaalde abonnementen. Als een pad niet meer overeenkomt met wat je ziet, zoek dan naar "connectors" of "MCP" in de instellingen van dat product. Het enige dat niet verandert, is het adres dat je plakt.
- Claude Desktop, claude.ai en de mobiele app: Customize > Connectors > Add custom connector, plak het adres, geen extra authenticatie. Directe link:
https://claude.ai/new#customize/connectors. Het werkt onmiddellijk, op elk apparaat op het account, zonder iets te herstarten. (Connectors stonden vroeger onder Settings; die pagina verwijst nu hierheen.) - ChatGPT: schakel eerst de ontwikkelaarsmodus in bij de instellingen, dan Plugins > New plugin > Custom tool. Geef het de naam Tendre.AI, zet het adres in Server URL, stel Authentication in op None, vink de waarschuwing aan om te bevestigen dat je het begrijpt, en klik op Create.
- Claude Code:
claude mcp add --transport http tendre https://api.tendre.ai/mcp/<key> - Cursor, in
~/.cursor/mcp.json:
{ "mcpServers": { "tendre": { "url": "https://api.tendre.ai/mcp/<key>" } } }- VS Code, in
mcp.json:
{ "servers": { "tendre": { "type": "http", "url": "https://api.tendre.ai/mcp/<key>" } } }- Windsurf, in
~/.codeium/windsurf/mcp_config.json:
{ "mcpServers": { "tendre": { "serverUrl": "https://api.tendre.ai/mcp/<key>" } } }De snelste manier is via het tabblad Instellingen > Connectors in de app: het maakt de sleutel aan en schrijft deze instellingen voor je, met één klik, voor de agents die op je computer zijn geïnstalleerd. Voor de webagents (claude.ai, ChatGPT) kopieert het het adres zodat je het in hun connectorinstellingen kunt plakken.
De eenendertig tools
| Tool | Wat hij doet |
|---|---|
tendre_generate_image | Een of meerdere afbeeldingen (count 1 tot 8), met of zonder LoRA, of het retoucheren van een bronafbeelding (mode edit, img2img, of inpaint met mask_url). seed rendert een vorige afbeelding opnieuw, of een variatie ervan. Hij wacht standaard op de render, tot 55 s, en plaatst de afbeeldingen direct in het gesprek. wait=false geeft in plaats daarvan identifiers terug. |
tendre_generate_video | Dient een clip in (formaat, geluid, lengte, framerate fps, LoRA) vanuit een prompt, door een afbeelding te animeren (plus een eindafbeelding voor een overgang), in Ultra-modus (quality max, maximaal 1080p; per seconde geeft seconds de lengte, 4 tot 30 s), met keyframes (keyframes, Kwaliteit-modus), met versterkte consistentie (consistency enhanced, tot 721 frames per shot, dat is 30 s bij 24 fps, extensies inbegrepen), of door de vorige clip te verlengen (extend_job_id, met sequence_id voor een lange video). Een Ultra-shot wordt vooruit of achteruit verlengd (extend_direction); na meer dan 24 uur vanuit het originele bestand (extend_video_url, of extend_upload_id via tendre_upload_link, ongewijzigd verstuurd). seed rendert een vorige clip opnieuw, of een variatie ervan. Een clip duurt enkele minuten: standaard wacht de tool op het einde (maximaal 55 s) en geeft de MP4-link terug, of de identifier als de render niet klaar is; wait=false geeft de identifier onmiddellijk terug. Terwijl hij wacht, annuleert de stopknop van de gebruiker de render, en wordt er niets in rekening gebracht. |
tendre_character_create | Maakt een personage (zeven weergaven) van een foto: een uploadlink, een bestand bijgevoegd in ChatGPT, een afbeelding gerenderd in het gesprek, of een openbaar adres. Wacht tot het klaar is (maximaal 55 s) en plaatst de weergaven in het gesprek (voorbeelden van 1024 px; de links in de tekst geven de weergaven op ware grootte). 6 credits, outfit inbegrepen. Zie Personages. |
tendre_character_get | De toestand van een personage en zijn weergaven (wait wacht op het einde van het maken; sheet_id kiest een sheet). |
tendre_character_list | De personages op het account, ook die in de app zijn gemaakt, met de datum waarop elk wordt verwijderd. |
tendre_character_redo_view | Doet een mislukte weergave opnieuw, of een die de verkeerde kant op kijkt (1 credit), met een optionele instruction in de gebiedende wijs voor een personage of een sheet die via de API is aangemaakt; sheet_id richt zich op één sheet. |
tendre_character_set_view | Vervangt een weergave van een personage dat via de API is aangemaakt, of van een sheet die met tendre_character_add_sheet is toegevoegd (sheet_id), door een afbeelding van de gebruiker, zonder iets te genereren (gratis). |
tendre_character_add_sheet | Voegt een outfit (een sheet) toe aan een bestaand personage, uit de API of de app: kant-en-klare weergaven gratis opgeslagen (views, rol per rol), ontbrekende rollen gegenereerd (1 credit per stuk), of, zonder weergaven, de outfit op zijn volledige weergave gezet en zes weergaven gegenereerd (7 credits). Geeft de sheet_id terug, om door te geven aan tendre_character_get, tendre_character_redo_view, tendre_character_set_view en tendre_multiref_video. Zie Een outfit toevoegen. |
tendre_character_delete | Verwijdert een personage en zijn weergaven. |
tendre_subject_create | Slaat een locatie, een object, een dier, een stijl of een outfit op van 1 tot 6 afbeeldingen van de gebruiker, om het opnieuw te gebruiken in Multi-Ref. Gratis. Zie Locaties, objecten, dieren, stijlen en outfits. |
tendre_subject_list, tendre_subject_get, tendre_subject_delete | De locaties, objecten, dieren, stijlen en outfits op het account (ook die van de Bibliotheek van de app), hun details en afbeeldingen, en hun verwijdering. De door Tendre.AI aangeboden elementen komen bij de eerste keer lezen in de lijst. |
tendre_subject_generate | Genereert een locatie, een object, een dier, een stijl of een outfit zonder afbeelding van de gebruiker: een startafbeelding op basis van een Engelse beschrijving (of geïmporteerd, gratis), dan weergaven (zie Een onderwerp zonder afbeeldingen genereren). 1 credit per gerenderde afbeelding, maximaal 6 afbeeldingen; wacht 55 s en geeft dan de stand en de afbeeldingen terug. |
tendre_subject_add_views, tendre_subject_redo_view | Voegt weergaven toe aan een gegenereerd onderwerp, of maakt er een opnieuw (instructions vervangt de opdracht; start maakt de startafbeelding opnieuw zolang er geen weergave van uitgaat). |
tendre_multiref_video | Een Multi-Ref-clip met 1 tot 4 personages, objecten en dieren aangeroepen via @Naam in de prompt (subjects; in Ultra tot 30 afbeeldingen in totaal, waarvan maximaal 12 personages, 8 aanbevolen), een opgeslagen locatie (location_id) of een optionele eenmalige locatieafbeelding, Kwaliteit of Ultra (per seconde: seconds, 4 tot 30 s), formaat, lengte, framerate fps, geluid, seed, en met geluid een stem voor de eerste twee personages (voice_url, het openbare adres van een audiobestand van maximaal 4 MB; zet de personages in de volgorde van de dialoog). Wacht op het einde zoals tendre_generate_video, en de stopknop annuleert de render. In Ultra ook styles, outfits (met worn_by) en motion (een bewegingsvideo: video_upload_id, video_job_id of video_url; mode camera of choreography). Zie Multi-Ref Video. Met geluid spreken de eerste twee personages standaard met de stem uit hun profiel (voice generated voor een stem die het model maakt). |
tendre_multiref_image | Maakt een afbeelding met personages (via hun weergave of hun LoRA), objecten, dieren en een locatie, aangeroepen via @Naam in de Engelse prompt (zie Afbeelding maken). Geeft meteen de jobId terug: de afbeelding duurt 1 tot 3 minuten, volg hem met tendre_job_status (kind images). quote_only geeft de prijs zonder iets te starten. |
tendre_face_swap | Face swap (het hele personage, of alleen het hoofd met part head): de persoon voor de camera in een van je video's (uploadlink, bestand bijgevoegd in ChatGPT, openbaar adres, maximaal 95 MB) of in een video die in het gesprek is gerenderd, wordt een van je personages, gezicht, haar, lichaam en outfit, met behoud van de gebaren, de lippen, het geluid en de omgeving, over een passage van maximaal 20 s (start, duration), met scene, name, zone, likeness en, met geluid, de stem van het personage (voice_url, het openbare adres van een audiobestand van maximaal 2 MB). Standaard krijgt het geluid de stem uit het profiel van het personage als het er een heeft (voice original behoudt de gefilmde stem). Overgangen transition_in en transition_out: cut (de standaard), morphing (een overvloeier) of glitch (een digitaal effect op het silhouet); met een overgang komt de hele video terug (maximaal 60 s). Het antwoord geeft de grenzen van de passage (passage). 6 credits per seconde passage. Wacht op het einde zoals tendre_generate_video, en de stopknop annuleert de render. Zie Face swap. |
tendre_sequence_create | Opent een sequence, om een lange video shot voor shot op te bouwen. |
tendre_sequence_export | Voegt de shots van een sequence samen tot één enkele video en geeft de MP4-link terug. |
tendre_project_export | Exporteert de projectmap van een render (job_id) of van een reeks (sequence_id) van minder dan 24 uur oud: het manifest in het antwoord, de ZIP via een link. manifest_only geeft alleen het manifest terug. Bij een reeks voegt include_film de samengevoegde film toe. include_media, include_references en exclude_references kiezen wat erin gaat, zoals het exportvenster van de app. Gratis. Zie De projectmap exporteren. |
tendre_upload_link | Maakt een uploadlink aan voor een van je afbeeldingen of video's (een foto of video bijgevoegd aan het gesprek, een bestand op je computer of telefoon). Je opent hem en sleept het bestand erin, of een agent met toegang tot je bestanden stuurt het zelf. Een video (MP4, MOV, WebM of MKV, maximaal 95 MB) gaat naar tendre_face_swap. Gratis. |
tendre_job_status | Hoe ver een render gevorderd is. Voor een video wacht hij standaard op het einde (maximaal 55 s, wait=false voor een snelle blik), en de stopknop annuleert de render terwijl hij wacht. Zodra hij klaar is, komt een afbeelding terug in het gesprek en een video als link. |
tendre_cancel_job | Annuleert een render. Er wordt niets in rekening gebracht. |
tendre_list_loras | De personages op het account, met de naam om door te geven als lora en het triggerwoord om in de prompt te zetten. |
tendre_buy_credits | De creditpakketten met de huidige prijzen, en de aankooplink van je licentie. Boven het grootste pakket biedt het ook een vrij te kiezen aantal aan (parameter credits). Deze tool betaalt niet: jij opent de link en betaalt, per kaart of crypto. |
tendre_purchase_credits | Koopt een pakket (of een vrij aantal) met je opgeslagen kaart, als je je agent in het automatisch opwaarderen op je accountpagina hebt toegestaan te kopen, binnen je maandelijkse limiet. De agent moet het pakket en de prijs noemen en daarna je ja in het gesprek afwachten (confirmed). Wordt de aankoop geweigerd, dan geeft hij je de gewone aankooplink. Elke aankoop wordt per e-mail bevestigd. |
tendre_credits | Saldo, de limieten van de sleutel, renders in uitvoering. |
tendre_pricing | Het huidige prijsoverzicht. |
tendre_quote | Wat een render kost, voor je hem start: het aanmaken van een personage (kind characters) en een Multi-Ref-clip (multiref true) inbegrepen. Neemt consistency voor een clip in versterkte consistentie, en fps: het antwoord geeft de lengte in seconden bij die framerate. Voor een Ultra per seconde legt seconds de lengte vast. Voor een Ultra-verlenging extend_job_id en extend_direction. |
Valt de verbinding weg voordat tendre_generate_image, tendre_generate_video, tendre_multiref_video of tendre_face_swap antwoordt (time-out van een proxy, fout 524, programma gestopt), dan wordt de render niet gestart, of meteen geannuleerd, en er wordt niets in rekening gebracht: roep de tool gewoon opnieuw aan. Het aanmaken van een personage (tendre_character_create) loopt wel door: opnieuw aanroepen met dezelfde foto en instellingen geeft hetzelfde personage terug, zonder iets twee keer in rekening te brengen.
Bij verbinding geeft de server de agent de huisregels mee: prompts in het Engels, het triggerwoord is verplicht bij een LoRA, kondig de kosten aan voor een dure render, controleer de weergaven van een nieuw personage voor zijn eerste clip en doe een mislukte opnieuw, en een personage, locatie, object of dier dat een jaar niet wordt gebruikt, wordt verwijderd.
Beginnen met een afbeelding
Je kunt meer vragen dan een afbeelding van nul af: "maak een afbeelding en animeer hem dan", een overgang tussen twee afbeeldingen, een retouch.
De agent verwijst naar de afbeelding op een van twee manieren. Ofwel via zijn identifier, als hij in het gesprek was gerenderd (image_job_id; het bestand wordt aan onze kant opnieuw gelezen zolang de engine het nog heeft, een paar tientallen minuten). Ofwel via het openbare adres van een PNG of JPEG van maximaal 12 MB (image_url; privéadressen worden geweigerd). Voor een overgang wordt de eindafbeelding op dezelfde manier opgegeven (end_image_job_id, end_image_url). Als je geen formaat instelt, neemt de clip het formaat van de afbeelding over. Een overgang wordt gerenderd op het gevraagde formaat, van 480p tot 1080p, en wordt gefactureerd als een clip van dat formaat. Voor keyframes (Kwaliteit-modus) neemt keyframes 1 tot 4 objecten { at, image_job_id | image_url | image_upload_id, strength } en vraagt een vaste lengte (length).
Je eigen foto
- ChatGPT: voeg de afbeelding toe aan het gesprek en vraag het. Niets anders.
- Elke andere agent (Claude, Cursor...): de agent geeft je een uploadlink (
tendre_upload_link). Open hem, sleep de afbeelding erin of plak hem, en vertel de agent dat het klaar is. Een agent met toegang tot je bestanden (Claude Code, Cursor, VS Code) stuurt het zelf.
Je foto wordt nooit naar schijf geschreven. Hij blijft 30 minuten in het geheugen, lang genoeg voor de render, en wordt daarna vergeten. De uploadlink werkt alleen voor de sleutel die hem heeft aangemaakt. De uitzonderingen zijn een foto die wordt gebruikt om een personage aan te maken, die een van de weergaven van het personage wordt, en de afbeeldingen van een opgeslagen locatie, object of dier: beide worden versleuteld opgeslagen, onder jouw beheer, totdat je ze verwijdert of totdat ze een jaar niet zijn gebruikt (zie hieronder).
Personages in dezelfde clip
Vraag "maak een personage van deze foto": de agent maakt het aan (6 credits), toont je de zeven weergaven, en doet een mislukte opnieuw. Vraag dan naar de scène, "een clip waarbij Lea een kopje overhandigt aan Tom in een zonnige keuken": hij cast ze met Multi-Ref Video, elk aangeroepen via @Naam, tot vier per clip (twaalf in Ultra, acht aanbevolen). De personages die je in de app hebt gemaakt, zijn er ook bij. Een weergave die steeds verkeerd uitkomt (een prothese aan de verkeerde kant, bijvoorbeeld) wordt opnieuw gedaan met een instructie, of vervangen door je eigen afbeelding.
Geef de agent een paar foto's van een plek, een object of een dier en zeg wat het is: hij slaat het op (gratis), en daarna kun je vragen om "@Lea wacht op @Tram in @Plein". Tot vier personages, objecten en dieren in totaal, plus één opgeslagen locatie als decor; in Ultra tot 30 afbeeldingen in totaal, waarvan maximaal twaalf personages (acht aanbevolen). De details staan op de pagina Personages en in Multi-Ref Video.
Een personage in je eigen video (Face swap)
Stuur de agent een video en noem een van je personages: met tendre_face_swap wordt de persoon voor de camera
dat personage, gezicht, haar, lichaam en outfit, met behoud van de gebaren, de lippen, het geluid en de
omgeving, over een passage van maximaal 20 s. De video komt:
- van een uploadlink (
tendre_upload_linkaccepteert ook een video: MP4, MOV, WebM of MKV, maximaal 95 MB); - als een bijgevoegd bestand in ChatGPT;
- van een openbaar adres (privéadressen worden geweigerd);
- of van een video die in het gesprek is gerenderd.
Wil je alleen het hoofd (gezicht en haar) vervangen en het gefilmde lichaam, de kleding en de omgeving houden, vraag het dan aan de agent: die stuurt part head.
Standaard krijgt het geluid van de video de stem uit het profiel van het personage als het er een heeft; wil je de gefilmde stem houden, vraag het dan: de agent stuurt voice original. Een stem die je via voice_url geeft, heeft voorrang, en de eerste 20 seconden ervan worden gebruikt.
Een personage dat in de app is gemaakt, heeft bij ons geen naam: de agent geeft het er een (name) om het
via @Naam in de scène aan te roepen. Voor de stem van het personage geef je het openbare adres van een
audiobestand van maximaal 2 MB op (voice_url): het geluid van de video wordt omgezet naar die stem. Je video
gaat via onze servers terwijl hij wordt voorbereid, daarna gaat hij naar de grafische kaart die hem rendert.
Het resultaat komt terug als een videolink, zoals elke clip, op het werkformaat (ongeveer één megapixel):
volledige resolutie en meerdere personages achter elkaar zijn specifiek voor de desktop-app. De prijs is per
seconde passage, zie Face swap.
Overgangen, zoals de hoeken van de kaarten in de app: transition_in gaat aan het begin van de passage van de gefilmde persoon naar het personage, transition_out aan het eind van het personage terug naar de persoon. Elk is cut (de standaard, geen overgang), morphing (een overvloeier, ongeveer 0,5 s) of glitch (een digitaal effect beperkt tot het silhouet, ongeveer 0,4 s). Geen overgang in als de passage de video begint, en geen overgang uit als ze de video afsluit.
Met een overgang krijg je de hele video terug, maximaal 60 s (een langere wordt geweigerd): de gefilmde persoon, de overgang, het personage op zijn passage, de overgang en dan weer de persoon. Ze komt in het werkformaat (ongeveer een megapixel) en op 24 of 30 fps; de desktop-app plakt het personage daarentegen terug in volle resolutie en op de oorspronkelijke framerate. De gerenderde (en gefactureerde) passage wordt aan elke kant met een overgang ongeveer 0,3 s langer. Het plaatsen van de overgangen is gratis en duurt na de render enkele seconden tot een minuut; intussen antwoordt tendre_job_status met pending (fase assembling the transitions). De video_job_id van zo'n render verwijst naar de hele video: geef hem opnieuw aan tendre_face_swap om een tweede personage in dezelfde video te zetten. Onze server verwerkt twee face swaps met overgangen tegelijk; daarboven vraagt de tool je het over een paar minuten opnieuw te proberen.
Het antwoord geeft de exacte grenzen van de passage, in seconden (passage: start, end). Zonder overgang telt een passage 8n+1 frames, naar beneden afgerond: 2,9 s gevraagd geeft 2,7 s. Om er direct een volgende passage achter te plakken, laat je die bij end beginnen. Met een overgang is de passage exact tot op het frame.
Om twee personages aan elkaar te zetten, laat je het tweede beginnen bij passage.end van het eerste: het sluit precies op het frame aan, en zijn overgang in speelt volledig vlak voor de naad (ongeveer 0,4 s glitch of 0,5 s overvloeier extra gerenderd aan zijn kant), zonder terug te gaan naar de gefilmde persoon. Laat transition_out van het eerste op cut: anders waarschuwt de tool dat de twee overgangen elkaar zouden overlappen. Het antwoord bevat dan passage.joined_to_previous.
Gebruik alleen video's van mensen die hun toestemming hebben gegeven: dat is een regel van de gebruiksvoorwaarden.
Afbeeldingen komen terug, video's zijn een link die verloopt
Een afbeelding komt in het gesprek terecht: het protocol heeft een plek voor afbeeldingsinhoud.
Een video niet, en weegt ook te veel daarvoor. Hij komt terug als een link die het bestand doorstuurt vanuit de engine-uitvoer en een paar tientallen minuten geldig blijft. Daarna wordt er niets bij ons bewaard.
Een agent die naar je schijf kan schrijven (Claude Code, Cursor, VS Code) krijgt dus de opdracht het bestand voor je op te slaan. Een agent die dat niet kan, zoals een webchat, kan je alleen de link geven. Download hem terwijl hij beschikbaar is: zodra hij verloopt is de clip weg, en hem opnieuw renderen kost opnieuw credits.
Er zijn drie uitzonderingen. Een lange video: de shots blijven op onze server alleen zolang hij wordt samengevoegd, en worden 30 minuten na het toevoegen van de laatste verwijderd; de samengevoegde video wordt 24 uur bewaard, zodat je hem kunt terugvinden als je later terugkomt, en wordt daarna ook verwijderd. En een personage: zijn weergaven, de foto die je hebt gestuurd inbegrepen, worden versleuteld opgeslagen onder je licentie totdat je het verwijdert (tendre_character_delete) of het een jaar niet is gebruikt. Tot slot een Face swap met overgang: de hele video blijft in het geheugen van onze server tot het personage en zijn overgangen zijn geplaatst, de eindvideo nog 30 minuten, en je video staat alleen op de schijf zolang hij wordt voorbereid. Verder blijft er niets bij ons.
Maximale kwaliteit
Voor de mooiste render vraag je er gewoon om ("in maximale kwaliteit"): de agent schakelt over naar Ultra-modus, vertelt je eerst de prijs, en waarschuwt je dat de render langer duurt. Video gaat tot 1080p: er is geen 4K.
Lange video
Een clip duurt maximaal 20 seconden bij 24 fps (16 s bij 30, de standaard), 30 s in versterkte consistentie bij 24 fps. Voor langer vraag je gewoon om de hele video ("een video van een minuut van..."): er is niets anders te weten. De agent rendert hem shot voor shot, waarbij elk shot de beweging van het vorige zonder onderbreking voortzet, en voegt ze dan samen tot één enkel MP4-bestand waarvan je de link krijgt.
De shots worden één voor één gerenderd, en elk duurt enkele minuten. Elk kost de prijs van een clip, die tendre_quote vóór de start geeft. In versterkte consistentie (consistency enhanced) past een minuut in twee shots van 30 s bij 24 fps, elk tegen de dubbele prijs van zijn formaat. Het geluid gaat door van het ene shot naar het andere, behalve in versterkte consistentie en in Ultra, waar het met elk shot opnieuw begint. De regels en de aanroepen die hierachter zitten, staan op de Video's-pagina.
Meerdere shots met harde overgangen, tot 20 seconden, hebben geen sequence nodig: vraag om de shots en de agent schrijft ze in één clip (hoe je ze beschrijft).
Onder de motorkap
Het transport is MCP Streamable HTTP, protocolversie 2025-06-18, stateless: één JSON-RPC-bericht per POST, een JSON-antwoord, geen serverstream (een GET geeft 405 terug). De methoden zijn initialize, ping, tools/list en tools/call, en elke tool roept dezelfde API aan die in deze pagina's wordt beschreven, met de sleutel van de agent.