sync. labs
officielServeur MCP officiel de sync. labs : synchronisez les lèvres des vidéos avec un nouvel audio ou un script, doublez des vidéos dans d’autres langues avec une synchronisation labiale correspondante, faites parler des photos et clonez des voix. Connexion OAuth, sans clé API.
Que pouvez-vous faire avec Sync Labs MCP ?
- Vidéos avec synchronisation labiale — Demandez à l’agent de synchroniser les lèvres d’une vidéo enregistrée avec un fichier audio ou des URL de médias publics, puis attendez le résultat.
- Traduction et doublage — Faites traduire et doubler une vidéo YouTube, TikTok, Instagram ou Facebook dans une autre langue, avec le coût indiqué avant le lancement.
- Discours scénarisé — Faites prononcer une réplique à une vidéo avec la voix de votre choix, en utilisant
voices_listpour choisir la voix et un script entre guillemets. - Clonage vocal — Clonez une voix à partir de votre compte sync. pour vos futurs travaux de synthèse vocale et de synchronisation labiale.
- Gérer les ressources et les projets — Créez, répertoriez, mettez à jour, téléchargez ou supprimez des ressources, et créez, renommez ou répertoriez des projets et leurs générations.
- Consulter l’utilisation et les coûts — Demandez combien de crédits il vous reste ou combien a coûté une génération précédente.
Serveur MCP hébergé
npx add-mcp 'https://mcp.sync.so/mcp'S’installe dans Claude Code, Codex, Cursor et plus
Documentation
Serveur MCP sync.
Connectez votre agent IA à sync. pour synchroniser les lèvres des vidéos, les traduire et les doubler dans d’autres langues, cloner des voix et gérer des ressources et des projets depuis une conversation ou une session de programmation.
sync. héberge ce serveur à l’adresse https://mcp.sync.so/mcp. Vous vous connectez avec votre compte sync. : rien à installer ni aucune clé API à copier. Chaque fusion dans main de ce dépôt y est déployée.
Connecter votre agent
ChatGPT
Ouvrez sync. dans ChatGPT et connectez votre compte. Dans ChatGPT, sync. Studio s’ouvre également dans la conversation.
Claude (claude.ai et Claude Desktop)
- Ouvrez Settings → Connectors et choisissez Add custom connector.
- Nommez-le
sync.et définissez l’URL surhttps://mcp.sync.so/mcp. - Cliquez sur Connect et connectez-vous à sync.
Claude Code
claude mcp add --transport http sync https://mcp.sync.so/mcp
Exécutez ensuite /mcp dans Claude Code, sélectionnez sync et connectez-vous. Ajoutez --scope user pour l’utiliser dans tous les projets.
Codex
codex mcp add sync --url https://mcp.sync.so/mcp
codex mcp login sync
Cursor
Ajoutez-le à .cursor/mcp.json dans un projet, ou à ~/.cursor/mcp.json pour tous les projets :
{
"mcpServers": {
"sync": { "url": "https://mcp.sync.so/mcp" }
}
}
Cursor vous demande de vous connecter à sync. lors de la première connexion.
VS Code
Ajoutez-le à .vscode/mcp.json :
{
"servers": {
"sync": { "type": "http", "url": "https://mcp.sync.so/mcp" }
}
}
Autres clients
Tout client prenant en charge les serveurs MCP distants via Streamable HTTP avec OAuth peut utiliser https://mcp.sync.so/mcp. Le client s’enregistre lui-même, puis vous vous connectez à sync. dans le navigateur.
Le serveur figure dans le registre MCP officiel
sous le nom io.github.synchronicity-labs/mcp-server ; les clients et répertoires qui consultent le registre peuvent donc le trouver et l’ajouter. server.json correspond à cette entrée.
Serveur local avec une clé API
Pour les clients qui ne prennent pas en charge MCP distant, ainsi que pour les scripts et l’intégration continue, exécutez le serveur localement via stdio avec une clé API sync. :
claude mcp add sync -e SYNC_API_KEY=your-api-key -- npx -y @sync.so/mcp-server@latest
Ou dans la configuration JSON d’un client :
{
"mcpServers": {
"sync": {
"command": "npx",
"args": ["-y", "@sync.so/mcp-server@latest"],
"env": { "SYNC_API_KEY": "your-api-key" }
}
}
}
Sans SYNC_API_KEY, le serveur lance une connexion par appareil lors de la première exécution : accédez à l’URL affichée et saisissez le code. Le jeton est mis en cache dans
~/.config/sync/mcp-credentials.json.
Les versions npm sont publiées séparément du déploiement hébergé et peuvent être en retard ; privilégiez donc le serveur hébergé si votre client le prend en charge. @latest fait en sorte que npx récupère la version la plus récente lorsque le client redémarre le serveur ; sans cette option, npx peut continuer à exécuter une ancienne copie mise en cache.
Avis de mise à jour
Au démarrage, un serveur local interroge le registre npm pour connaître la dernière version, au maximum une fois par jour (la réponse est mise en cache dans ~/.config/sync/mcp-update-check.json). La vérification s’exécute en arrière-plan avec une limite de deux secondes et ne retarde jamais le démarrage ni un appel d’outil ; en cas d’échec, aucun message ne s’affiche. Lorsqu’une version plus récente est disponible, les instructions du serveur et le premier résultat d’outil de la session indiquent à l’agent de vous demander de redémarrer avec npx -y @sync.so/mcp-server@latest ou de passer au serveur hébergé.
Pour désactiver cette vérification, définissez SYNC_MCP_UPDATE_CHECK=off ou transmettez --no-update-check. Elle est également ignorée lorsque CI est défini, et le serveur hébergé ne vérifie jamais les mises à jour.
Que demander
Collez des invites comme celles-ci dans votre agent. Les ID de ressources proviennent de votre bibliothèque sync. Les liens peuvent être des URL publiques de médias ou des vidéos YouTube, TikTok, Instagram et Facebook.
| Demande | Action de l’agent |
|---|---|
« Synchronise les lèvres de la vidéo <video-asset-id> avec l’audio <audio-asset-id>. » | lipsync_create avec les ressources enregistrées, puis attend le résultat |
| « Synchronise les lèvres de https://example.com/talk.mp4 vers https://example.com/voiceover.wav. » | lipsync_create avec des URL publiques |
| « Traduis https://www.youtube.com/watch?v=… en espagnol. » | Importe le lien avec assets_create, indique le coût et, après votre confirmation, lance dubbing_create |
« Fais dire “merci d’avoir regardé” à la vidéo <video-asset-id> avec une voix de narrateur calme. » | Choisit une voix avec voices_list, indique le texte, puis lipsync_create avec script |
| « Combien de crédits me reste-t-il ? » | account_get-usage |
| « Combien a coûté ma dernière génération ? » | La retrouve dans l’historique et indique generations_get-costs |
Les traductions, doublages, aperçus vocaux et clonages de voix font l’objet d’un devis que vous devez confirmer avant leur lancement.
Compétences d’agent
Les procédures détaillées pour ces outils (synchronisation labiale, photos parlantes, doublage, Edit Dialogue, campagnes, traitements par lots, dépannage et API) sont des compétences d’agent disponibles dans
synchronicity-labs/skills. Installez-les dans n’importe quel agent avec npx skills add synchronicity-labs/skills. Le plug-in ChatGPT et Codex les fournit depuis un commit épinglé de ce dépôt ; consultez
docs/chatgpt-plugin.md.
Outils
Le serveur hébergé expose à chaque client une sélection d’outils :
| Domaine | Outils |
|---|---|
| Synchronisation labiale | lipsync_create, lipsync_create-timeline¹, generations_estimate-cost, generations_get, generations_list, generations_get-continuation, generations_get-costs, models_list |
| Traduction et doublage | dubbing_create, dubbing_get-options, translation-previews_estimate, translation-previews_create, translation-previews_get |
| Parole et voix | speech-previews_create, speech-previews_get-options, speech-previews_get, voices_list, voices_clone |
| Edit Dialogue | dialogue_get-options, dialogue_upload-source, dialogue-transcriptions_create, dialogue-transcriptions_get, dialogue-previews_create, dialogue-previews_get, dialogue-videos_estimate, dialogue-videos_create |
| Ressources | assets_create, assets_create-upload-url, assets_get, assets_list, assets_count, assets_get-download-url, assets_update, assets_delete, assets_get-playback-metadata, audio-trims_get, audio-trims_create |
| Projets | projects_create, projects_get, projects_list, projects_list-generations, projects_rename |
| Tâches multiples | jobs_create-many², jobs_get-many² |
| Traitements par lots | batches_create², batches_get², batches_list² |
| Compte | account_get-context, account_get-usage, organizations_list, organizations_select |
¹ Non proposé dans l’application ChatGPT, dont Studio intégré ne comporte pas de chronologie.
² Pas encore dans la liste de l’application ChatGPT. jobs_create-many lance jusqu’à 50 tâches indépendantes simultanément, par exemple le doublage d’une vidéo dans plusieurs langues, en exécutant un outil de création (lipsync_create, dubbing_create, dialogue-videos_create et autres) une fois par élément, avec la même API, les mêmes limites et la même facturation que les appels individuels, quel que soit le forfait ; jobs_get-many suit l’ensemble. Consultez Tâches. Un traitement par lots est un pipeline distinct de l’API, mis en file d’attente pour les exécutions volumineuses (20 à 500 générations) avec les forfaits Scale et supérieurs, qui peut attendre plusieurs heures. Si le forfait du compte ne comprend pas les traitements par lots, l’API répond avec le code 402 et requiredPlan et billingUrl, que les outils transmettent.
Les organisations disposant de la fonctionnalité correspondante ont également accès à scenes_detect (découpes caméra dans une vidéo) et stems_separate (voix et audio d’arrière-plan), en dehors de l’application ChatGPT. Ces outils se trouvent dans les ensembles lipsync et assets en local.
Les clients prenant en charge les applications ont également accès aux outils de l’application Studio intégrée : vues et brouillons Studio, widget de téléversement et assistants de l’application. Il s’agit des clients dont le nom de négociation MCP sélectionne le profil d’application ChatGPT ou Codex (openai-mcp,
openai-mcp (Codex) ; consultez src/client-profile.ts). Les autres clients ne voient pas ces outils et leurs appels sont refusés.
Ensembles d’outils locaux
Le serveur local stdio peut également proposer un outil pour chacune des autres opérations publiques de l’API dans la spécification OpenAPI, soit plus de 65 au total. Par défaut, il répertorie les outils hébergés ci-dessus, sans ses outils d’administration (assets_delete et voices_clone), ainsi que jobs_get, jobs_wait et les outils transcriptions_*, dont les pistes de suivi des visages des intervenants alimentent les clips lipsync_create-timeline.
Pour en répertorier davantage, définissez SYNC_MCP_TOOLSETS ou transmettez --toolsets avec une liste séparée par des virgules :
| Ensemble d’outils | Ajouts |
|---|---|
default | Les outils par défaut ci-dessus ; default,admin y ajoute donc les outils d’administration |
lipsync | Outils de synchronisation labiale, de chronologie, Edit Dialogue, de découpe audio et de traitement par lots, ainsi que generate_*, generations_* et dialogue-edits_* bruts |
dubbing | Outils de traduction et de doublage, ainsi que les outils de traitement par lots |
assets | assets_* (sauf les suppressions) et les outils de téléversement |
projects | projects_* (sauf les suppressions) et projects_rename |
transcription | transcriptions_* |
voices | voices_* (sauf le clonage et les suppressions), les aperçus vocaux et tts_* |
admin | Toutes les suppressions (assets_delete, projects_delete, generations_delete, voices_delete) et voices_clone |
all | Tous les outils, comme avant l’existence de cette option |
Les lectures des tâches, du compte et des générations (jobs_get, jobs_wait, jobs_get-many,
generations_get, account_get-context, organizations_list, organizations_select et autres outils similaires) sont incluses dans chaque sélection, tout comme jobs_create-many dès lors qu’un outil de création qu’il exécute est répertorié. Nommer des ensembles d’outils remplace la sélection par défaut au lieu de s’y ajouter. Pour rétablir tous les outils :
claude mcp add sync -e SYNC_API_KEY=your-api-key -e SYNC_MCP_TOOLSETS=all -- npx -y @sync.so/mcp-server@latest
À moins que tous les outils soient répertoriés, les instructions du serveur indiquent à l’agent quels ensembles sont disponibles et comment obtenir les autres, afin qu’il puisse vous demander de redémarrer le serveur avec une sélection plus large. Le serveur hébergé ignore ce paramètre.
Flux de travail des outils décrit le fonctionnement des outils payants et à plusieurs étapes.
Les noms des outils suivent une convention <noun>_<verb> (lipsync_create, generations_get). Les anciens noms (create-lipsync, generate_get-generation) restent utilisables pendant une période de dépréciation : les appels effectués avec ces noms exécutent le même outil et ajoutent un avis d’une ligne indiquant le nouveau nom. Noms des outils contient le tableau complet des anciens et nouveaux noms.
Options CLI
Usage: sync-mcp [options]
Options:
--api-key <key> API key (or set SYNC_API_KEY env var)
--base-url <url> API base URL (default: https://api.sync.so)
--transport <type> stdio (default) or http
--port <port> HTTP port (default: 3002, only with --transport http)
--no-spend-confirmation
Unattended automation: drop the cost-quote and confirm-before-paying
instructions (or set SYNC_MCP_SPEND_CONFIRMATION=off)
--no-update-check Skip the daily npm check for a newer version (or set
SYNC_MCP_UPDATE_CHECK=off; skipped when CI is set)
--toolsets <list> stdio only: comma-separated tools to list (or set SYNC_MCP_TOOLSETS):
default, lipsync, dubbing, assets, projects, transcription,
voices, admin or all (default: the hosted set without admin)
-h, --help Show this help message
Automatisation sans supervision
Par défaut, les outils demandent à l’agent de chiffrer une action payante et d’attendre l’approbation de l’utilisateur. Lorsque le serveur exécute un pipeline ou un agent planifié dont l’opérateur a déjà approuvé les dépenses, démarrez-le avec --no-spend-confirmation (ou
SYNC_MCP_SPEND_CONFIRMATION=off). L’agent crée alors des tâches sans chiffrer l’action ni demander d’approbation, et les outils d’estimation restent disponibles. Les agents ne peuvent pas modifier ce paramètre.
Les outils de tâches acceptent wait: true pour attendre côté serveur (jusqu’à environ 50 secondes par appel, avec des notifications de progression lorsque le client envoie un progressToken) : generations_get,
translation-previews_get, transcriptions_get et les importations depuis les réseaux sociaux via assets_create. Sur le serveur local, jobs_wait et jobs_get font de même pour tous les types de tâches (génération, transcription, analyse des intervenants, aperçu de traduction, importation) avec une seule entrée, {kind, id, projectId?}, et un format de résultat et un ensemble d’états uniques ; consultez Tâches. jobs_get-many lit ainsi jusqu’à 50 tâches à la fois, sur les deux serveurs.
Lorsque l’API le permet, feedback_send permet aux agents de signaler à l’équipe Sync les erreurs déroutantes, les résultats incorrects et les fonctionnalités manquantes.
Les variables d’environnement et les limites de session, de mémoire, de téléversement et de diagnostic du serveur HTTP sont décrites dans Configuration du serveur HTTP.
Fonctionnement
- Au démarrage, le serveur récupère la spécification OpenAPI publique depuis
{baseUrl}/api-jsonet transforme chaque opération en outil MCP doté d’un schéma d’entrée Zod. - Des outils écrits à la main ajoutent des flux de travail à plusieurs étapes sur la même API, comme la traduction et le doublage, Edit Dialogue, les aperçus vocaux et les recherches de coûts.
- Chaque appel d’outil est une requête authentifiée à l’API sync., avec votre jeton OAuth (serveur hébergé) ou votre clé API (serveur local).
Avec stdio, toute nouvelle opération de l’API publique devient un outil au prochain redémarrage. Le serveur hébergé n’expose que les outils de sa liste d’autorisation ; un nouvel outil hébergé est donc livré avec une version de ce dépôt.
Utilisation programmatique
Vous pouvez également utiliser le serveur comme bibliothèque :
import { createSyncMcpServer, resolveConfig } from '@sync.so/mcp-server';
const config = resolveConfig({ apiKey: 'your-key' });
const server = await createSyncMcpServer(config);
Développement
Les tests de sources HTTPS utilisent la commande locale openssl pour créer une identité de test auto-signée valable un jour. Les fichiers temporaires de certificat et de clé sont supprimés avant l’exécution des tests.
# Install dependencies
pnpm install
# Build
pnpm run build
# Run tests
pnpm test
# Lint
pnpm run lint
# Type check
pnpm run typecheck
# Script tests (monitor, smoke check, pre-commit size check)
pnpm run test:scripts
Le développement nécessite Node 26 ou une version ultérieure (.nvmrc) ; devEngines dans package.json impose cette version lors de l’installation. pnpm install installe un hook de pré-commit. Il exécute Oxlint et Oxfmt sur les fichiers indexés et bloque tout fichier source indexé qui dépasse 5 000 jetons (20 000 octets). Les fichiers qui dépassent déjà cette taille sont exemptés jusqu’à ce qu’ils soient scindés.
Tests du transport HTTP en local
Pour tester le transport HTTP (flux OAuth) en local :
- Copiez
.env.examplevers.envet renseignez les valeurs - Démarrez un tunnel pour exposer localhost :
ngrok http 3002 - Mettez à jour
MCP_ISSUER_URLdans.envavec l’URL ngrok - Démarrez le serveur :
source .env node dist/cli.js --transport http --base-url $SYNC_BASE_URL --port 3002 - Vérifiez que tout fonctionne :
curl https://<ngrok-url>/health curl https://<ngrok-url>/.well-known/oauth-authorization-server
Lorsqu’une connexion à Studio isolé nécessite le proxy Web de même origine, définissez
SYNC_OAUTH_AUTHORIZATION_URL sur son URL /api-proxy/v2/oauth/authorize, tout en
conservant SYNC_BASE_URL sur le listener API isolé direct. Seule la navigation
du navigateur utilise le proxy Web. L’inscription, l’échange de code, le renouvellement,
la révocation, userinfo et les appels d’outils utilisent l’API directe et conservent les délais,
PKCE et les vérifications du client confidentiel existants. L’URL facultative doit utiliser HTTP(S), sans
identifiants, requête ni fragment. Les déploiements existants ne nécessitent aucun nouveau paramètre.
- Ajoutez
https://<ngrok-url>/mcpcomme connecteur personnalisé dans Claude Web
En savoir plus
- Flux de travail des outils — Fonctionnement des outils en plusieurs étapes et payants
- Configuration du serveur HTTP — Variables d’environnement et limites d’exécution
- Notes de maintenance — Compatibilité avec l’hébergement, annulation, proxy OAuth, téléversements et surveillance
- Préparation de l’annuaire Claude — Liste de vérification et tâches restantes pour la soumission
- Documentation Sync — Référence complète de l’API et guides
- Référence de l’API Sync — Documentation des points de terminaison
- Protocole MCP — En savoir plus sur le Model Context Protocol
- Site Web Sync — Inscrivez-vous et commencez
Licence
MIT