MCP · Agents IA

Motiongist dans ton assistant IA

Demande une vidéo à Claude, ChatGPT ou Cursor : l’assistant écrit le script, te montre le prix et lance la génération après ton accord.
Connecter un assistanthttps://motiongist.com/api/mcp

Introduction

Ce que fait le serveur MCP

Le serveur MCP (Model Context Protocol) de Motiongist permet à un assistant IA — Claude, ChatGPT, Cursor, Claude Code ou ton propre agent — de créer des vidéos motion design narrées pour toi : il rédige le script, te fait écouter la voix, t’annonce le prix exact, et ne lance la génération qu’après ton accord. Les vidéos apparaissent aussi dans ton studio.

Les vidéos sont narrées en anglais par défaut, ou en français : demande-le simplement à l’assistant, qui renseigne le paramètre language (en ou fr) du projet. Les outils et leurs descriptions sont en anglais ; l’assistant te répond dans ta langue.

Endpointhttps://motiongist.com/api/mcp
TransportStreamable HTTP, sans état (réponses JSON, pas de flux SSE)
AuthentificationOAuth (connexion dans le navigateur) ou clé MCP dans l’en-tête x-api-key
PlansStudio, Équipe. Sur les autres plans, seul motiongist_catalog répond.
Versions du protocole2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05

Accès

Authentification

OAuth (recommandé pour Claude.ai et ChatGPT). Ajoute simplement l’URL du serveur : le client découvre l’autorisation via /.well-known/oauth-protected-resource, ouvre une page de connexion Motiongist, tu choisis l’espace de travail et tu valides. Aucune clé à copier ; tu peux déconnecter l’assistant à tout moment dans API & agents IA.

Clé MCP (Claude Code, Cursor, agents maison). Crée une clé de type MCP (mg_mcp_…) dans API & agents IA et envoie-la dans l’en-tête x-api-key (ou Authorization: Bearer). Une clé REST (mg_live_…) fonctionne aussi. La clé donne accès à l’espace où elle a été créée : garde-la secrète.

Clients

Installer dans ton assistant

Claude (claude.ai, Claude Desktop)

  1. Ouvre Réglages → Connecteurs → Ajouter un connecteur personnalisé.
  2. Nom : Motiongist, URL : https://motiongist.com/api/mcp.
  3. Clique sur Connecter, connecte-toi à Motiongist et autorise l’accès. Active le connecteur dans la conversation.

ChatGPT

  1. Active le mode développeur dans Réglages → Applications et connecteurs → Paramètres avancés.
  2. Crée un connecteur avec l’URL https://motiongist.com/api/mcp et l’authentification OAuth, puis connecte-toi à Motiongist.

Claude Code

Terminal
claude mcp add --transport http motiongist https://motiongist.com/api/mcp \
  --header "x-api-key: mg_mcp_…"

Sans --header, lance /mcp dans Claude Code pour te connecter par OAuth.

Cursor

~/.cursor/mcp.json
{
  "mcpServers": {
    "motiongist": {
      "url": "https://motiongist.com/api/mcp",
      "headers": {
        "x-api-key": "mg_mcp_…"
      }
    }
  }
}

Autres clients (VS Code, Windsurf, agents maison)

Configuration générique
{
  "mcpServers": {
    "motiongist": {
      "type": "http",
      "url": "https://motiongist.com/api/mcp",
      "headers": {
        "x-api-key": "mg_mcp_…"
      }
    }
  }
}

Pour tester à la main, le protocole est du JSON-RPC 2.0 sur un simple POST :

curl
curl -X POST https://motiongist.com/api/mcp \
  -H "x-api-key: $MOTIONGIST_MCP_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"motiongist_catalog","arguments":{}}}'

Référence

Outils

Le déroulé type : motiongist_catalog → motiongist_project_create → motiongist_script_write (option) → motiongist_narration_generate (option) → motiongist_storyboard_write + motiongist_storyboard_get (option, relire les scènes) → motiongist_estimate → accord de l’utilisateur → motiongist_generate → motiongist_job_get → motiongist_video_get.

motiongist_catalog· Cataloguelecture seule

Voix, looks, durées, langues, coûts en crédits, plan et solde de l’espace. À appeler en premier.

motiongist_project_create· Créer un projetécriture

Crée un projet de vidéo motion design (brouillon). Donne au moins le sujet ; language vaut en (par défaut) ou fr. Si tu as déjà le texte à narrer, passe-le dans script.

title?script?subject?inputKind?sourceText?audience?length?language?voice?look?brand?notes?mascot?tier?dimension?

motiongist_project_get· Lire un projetlecture seule

Lit un projet : réglages, script, statut, dernière génération et dernière vidéo.

projectId

motiongist_project_list· Lister les projetslecture seule

Liste les projets de l’espace, du plus récent au plus ancien.

limit?cursor?status?

motiongist_project_update· Modifier un projetécriture

Modifie le titre, le script ou les réglages d’un projet. Toute modification invalide le devis précédent.

projectIdtitle?script?subject?inputKind?sourceText?audience?length?language?voice?look?brand?notes?mascot?tier?dimension?

motiongist_script_write· Écrire le scriptécriture

Écrit un script narré à partir d’un sujet (accroche, une idée par phrase, récap). Avec projectId, le script est enregistré dans le projet. Gratuit.

topicprojectId?audience?length?language?tone?

motiongist_ideas· Idées de vidéoslecture seule

Propose des idées de vidéos (titre + angle visuel) pour une niche.

nichelanguage?count?

motiongist_narration_generate· Écouter la narrationécriture

Synthétise le script du projet avec la voix choisie pour l’écouter avant de générer (gratuit). Renvoie une URL audio valable 15 minutes.

projectId

motiongist_storyboard_write· Écrire le storyboardécriture

Optionnel et gratuit : le moteur planifie la vidéo scène par scène (phrase de narration + ce qu’on voit) en une minute environ, pour la relire avant de payer un rendu. Interroge motiongist_storyboard_get jusqu’au statut "ready".

projectId

motiongist_storyboard_get· Lire le storyboardlecture seule

Statut (none, planning, ready, failed) et scènes du storyboard du projet. Après un rendu, c’est le storyboard de la dernière vidéo ; "dirty" liste les scènes que le prochain rendu reconstruit.

projectId

motiongist_storyboard_update· Modifier le storyboardécriture

Remplace la liste des scènes (garde les ids des scènes existantes). Les scènes modifiées sont reconstruites au prochain rendu, les autres gardent leurs visuels. rebuild=[ids] reconstruit des scènes sans changer leur texte.

projectIdtitle?scenes?rebuild?

motiongist_estimate· Estimer le prixlecture seule

Calcule le prix exact en crédits et la durée de génération. Renvoie un devis signé (valable 1 h) à repasser tel quel à motiongist_generate après l’accord de l’utilisateur.

projectIdvoiceMode?

motiongist_generate· Lancer la générationécrituredébite des crédits

Lance la génération de la vidéo. Exige approved=true (l’utilisateur a accepté le prix) et le devis renvoyé par motiongist_estimate, inchangé. Une génération prend plusieurs minutes : interroge motiongist_job_get avec parcimonie.

projectIdquoteapproved

motiongist_job_get· Suivre une générationlecture seule

Statut d’une génération : file, étape (script, voix, storyboard, vérification, rendu), progression, erreur, et videoId une fois terminée.

jobId

motiongist_job_cancel· Annuler une générationécrituredestructif

Annule une génération tant que le rendu n’a pas commencé. Les crédits sont remboursés.

jobId

motiongist_video_list· Lister les vidéoslecture seule

Liste les vidéos terminées de l’espace.

limit?cursor?

motiongist_video_get· Récupérer une vidéolecture seule

Métadonnées de la vidéo et liens signés (15 min) : MP4, sous-titres SRT, planche-contact, storyboard.

videoId

motiongist_post_copy· Post copyécriture

Title, description and hashtags of a video for YouTube, TikTok, Instagram and LinkedIn, in the video language, within each platform limit (generated on first call). regenerate=true rewrites it (optionally in another language); platforms={youtube:{title,description,hashtags}} saves edits. Free.

videoIdregenerate?language?platforms?

motiongist_share· Share pageécriture

Public share page of a video (unlisted link, 9:16 player, optional button, view count). Without enabled it returns the current settings. enabled=true creates the link, enabled=false revokes it for good. cta={label,url} adds a button (http/https), allowDownload lets viewers download the MP4. The free plan always shows "Made with Motiongist".

videoIdenabled?cta?allowDownload?

motiongist_publish· Publish to social mediaécriture

Publishes a finished video to a connected YouTube, TikTok, Instagram or LinkedIn account, now or at scheduledAt (ISO 8601 with offset, up to 1 year ahead). Free (no credits). Without accountId or provider, it only lists the connected accounts and the posts of this video. The post uses the video post copy for the platform unless copy is given. Accounts are connected by a workspace member in the web app (/app/publishing). cancelPostId cancels a scheduled post instead. Poll again to see the status (scheduled, publishing, published with externalUrl, failed with error).

videoIdaccountId?provider?scheduledAt?copy?cancelPostId?

Paramètres en noir : obligatoires. Les schémas complets sont renvoyés par tools/list.

Ressources : chaque vidéo expose son storyboard (motiongist://videos/{videoId}/storyboard) et ses sous-titres (motiongist://videos/{videoId}/captions) via resources/read.

Sécurité

Validation du prix

  • motiongist_estimate calcule le prix exact en crédits et renvoie un devis signé (quote) valable 1 heure. Il ne débite rien.
  • L’assistant doit te montrer ce prix. motiongist_generate exige approved: true et le quote inchangé ; sans les deux, rien n’est lancé.
  • La génération ne coûte jamais plus que le devis. Si le projet change après l’estimation (script, voix, durée…), le devis est refusé et l’assistant doit ré-estimer.
  • Les échecs et annulations (motiongist_job_cancel, possible jusqu’au début du rendu) sont remboursés.

Aide

Dépannage

SymptômeCause et solution
401 avec un en-tête WWW-AuthenticatePas de jeton ou de clé, ou jeton expiré. Reconnecte le connecteur (OAuth) ou vérifie l’en-tête x-api-key.
« MCP access is included from the Studio plan »Ton espace n’est pas sur un plan Studio, Équipe. Change de plan dans Crédits & abonnement.
« Missing scope: jobs:write »La clé ou l’autorisation OAuth est en lecture seule. Crée une clé avec les portées d’écriture.
QUOTE_INVALIDLe devis a plus d’une heure ou le projet a été modifié depuis. Relance motiongist_estimate et valide le nouveau prix.
INSUFFICIENT_CREDITSSolde insuffisant : recharge ou passe au plan supérieur.
« Too many requests »Limite de 60 appels d’outils par minute et par clé. Espace les appels à motiongist_job_get (toutes les 10 à 20 s).
GET renvoie 405Normal : le serveur est sans état et ne propose pas de flux SSE. Les clients compatibles Streamable HTTP utilisent POST.
L’assistant ne voit pas les outilsVérifie que le connecteur est activé dans la conversation, puis demande-lui de lister les outils Motiongist.

Tu préfères du code classique ? La même logique est disponible en API REST.