sync. labs

आधिकारिक

आधिकारिक sync. labs MCP सर्वर: वीडियो को नए ऑडियो या स्क्रिप्ट के साथ लिप-सिंक करें, मेल खाते होंठों की गति के साथ वीडियो को अन्य भाषाओं में डब करें, फ़ोटो को बोलने योग्य बनाएं और आवाज़ों की क्लोनिंग करें। OAuth से साइन इन करें, API key की आवश्यकता नहीं।

Sync Labs MCP के साथ आप क्या कर सकते हैं?

  • लिप-सिंक वीडियो — एजेंट से किसी सहेजे गए वीडियो एसेट को ऑडियो एसेट या सार्वजनिक मीडिया URL के साथ लिप-सिंक करने के लिए कहें और परिणाम की प्रतीक्षा करें।
  • अनुवाद और डबिंग — किसी YouTube, TikTok, Instagram या Facebook लिंक का दूसरी भाषा में अनुवाद और डबिंग करवाएँ; काम शुरू होने से पहले लागत बता दी जाएगी।
  • स्क्रिप्टेड भाषण — चुनी हुई आवाज़ में वीडियो से कोई पंक्ति बुलवाएँ; आवाज़ चुनने के लिए voices_list और स्क्रिप्ट के लिए उद्धरण का उपयोग करें।
  • आवाज़ की क्लोनिंग — बाद में भाषण और लिप-सिंक के काम के लिए अपने sync. खाते से आवाज़ क्लोन करें।
  • एसेट और प्रोजेक्ट प्रबंधित करें — एसेट बनाएँ, सूचीबद्ध करें, अपडेट करें, डाउनलोड करें या हटाएँ; और प्रोजेक्ट तथा उनकी जनरेशन बनाएँ, उनका नाम बदलें या उन्हें सूचीबद्ध करें।
  • उपयोग और लागत देखें — पूछें कि कितने क्रेडिट बचे हैं या किसी पिछली जनरेशन की लागत कितनी थी।

होस्ट किया गया MCP सर्वर

npx add-mcp 'https://mcp.sync.so/mcp'

Claude Code, Codex, Cursor और अन्य में इंस्टॉल होता है

दस्तावेज़

sync. MCP सर्वर

अपने AI एजेंट को sync. से कनेक्ट करें, ताकि वीडियो को लिप-सिंक किया जा सके, उनका अनुवाद करके अन्य भाषाओं में डब किया जा सके, आवाज़ों को क्लोन किया जा सके और चैट या कोडिंग सत्र से एसेट और प्रोजेक्ट प्रबंधित किए जा सकें।

sync. इस सर्वर को https://mcp.sync.so/mcp पर होस्ट करता है। आप अपने sync. खाते से साइन इन करते हैं, इसलिए कुछ इंस्टॉल करने या API key कॉपी करने की ज़रूरत नहीं है। इस रिपॉज़िटरी में हर मर्ज main पर डिप्लॉय होता है।

अपने एजेंट को कनेक्ट करें

ChatGPT

sync. in ChatGPT खोलें और अपना खाता कनेक्ट करें। ChatGPT में sync. Studio चैट के अंदर भी खुलता है।

Claude (claude.ai और Claude Desktop)

  1. Settings → Connectors खोलें और Add custom connector चुनें।
  2. इसे sync. नाम दें और URL को https://mcp.sync.so/mcp पर सेट करें।
  3. Connect पर क्लिक करें और sync में साइन इन करें।

Claude Code

claude mcp add --transport http sync https://mcp.sync.so/mcp

फिर Claude Code में /mcp चलाएँ, sync चुनें और साइन इन करें। इसे हर प्रोजेक्ट में इस्तेमाल करने के लिए --scope user जोड़ें।

Codex

codex mcp add sync --url https://mcp.sync.so/mcp
codex mcp login sync

Cursor

किसी प्रोजेक्ट में .cursor/mcp.json में जोड़ें, या सभी प्रोजेक्ट के लिए ~/.cursor/mcp.json में जोड़ें:

{
  "mcpServers": {
    "sync": { "url": "https://mcp.sync.so/mcp" }
  }
}

पहली बार कनेक्ट होने पर Cursor आपसे sync में साइन इन करने को कहता है।

VS Code

.vscode/mcp.json में जोड़ें:

{
  "servers": {
    "sync": { "type": "http", "url": "https://mcp.sync.so/mcp" }
  }
}

अन्य क्लाइंट

Streamable HTTP पर OAuth के साथ रिमोट MCP सर्वर का समर्थन करने वाला कोई भी क्लाइंट https://mcp.sync.so/mcp का इस्तेमाल कर सकता है। क्लाइंट खुद को रजिस्टर करता है और आप ब्राउज़र में sync. में साइन इन करते हैं।

सर्वर आधिकारिक MCP Registry में io.github.synchronicity-labs/mcp-server के रूप में सूचीबद्ध है, इसलिए रजिस्ट्री पढ़ने वाले क्लाइंट और डायरेक्टरी इसे ढूँढ़कर जोड़ सकते हैं। server.json उस सूची का लिंक है।

API key के साथ स्थानीय सर्वर

रिमोट MCP का समर्थन न करने वाले क्लाइंट, स्क्रिप्ट और CI के लिए, sync. API key के साथ सर्वर को stdio पर स्थानीय रूप से चलाएँ:

claude mcp add sync -e SYNC_API_KEY=your-api-key -- npx -y @sync.so/mcp-server@latest

या किसी क्लाइंट के JSON config में:

{
  "mcpServers": {
    "sync": {
      "command": "npx",
      "args": ["-y", "@sync.so/mcp-server@latest"],
      "env": { "SYNC_API_KEY": "your-api-key" }
    }
  }
}

SYNC_API_KEY के बिना, पहली बार चलाने पर सर्वर डिवाइस लॉगिन शुरू करता है: उसके द्वारा प्रिंट किया गया URL खोलें और कोड दर्ज करें। टोकन ~/.config/sync/mcp-credentials.json पर कैश किया जाता है।

npm रिलीज़ होस्ट किए गए डिप्लॉय से अलग प्रकाशित होते हैं और उससे पीछे रह सकते हैं, इसलिए जब आपका क्लाइंट इसका समर्थन करे तो होस्टेड सर्वर को प्राथमिकता दें। @latest से npx, क्लाइंट द्वारा सर्वर रीस्टार्ट किए जाने पर नवीनतम रिलीज़ फ़ेच करता है; इसके बिना npx पुरानी कैश की गई कॉपी चलाता रह सकता है।

अपडेट सूचना

स्टार्टअप पर स्थानीय सर्वर नवीनतम संस्करण के लिए npm रजिस्ट्री से दिन में अधिकतम एक बार पूछता है (जवाब ~/.config/sync/mcp-update-check.json में कैश किया जाता है)। यह जाँच बैकग्राउंड में दो सेकंड की सीमा के साथ चलती है और स्टार्टअप या किसी टूल कॉल में कभी देरी नहीं करती; विफल होने पर कुछ नहीं दिखाया जाता। नया संस्करण उपलब्ध होने पर, सर्वर के निर्देश और सत्र का पहला टूल परिणाम एजेंट को आपको npx -y @sync.so/mcp-server@latest के साथ रीस्टार्ट करने या होस्टेड सर्वर पर स्विच करने के लिए कहने का निर्देश देते हैं।

इसे बंद करने के लिए SYNC_MCP_UPDATE_CHECK=off सेट करें या --no-update-check पास करें। CI सेट होने पर भी इसे छोड़ दिया जाता है, और होस्टेड सर्वर कभी जाँच नहीं करता।

क्या पूछें

अपने एजेंट में इस तरह के प्रॉम्प्ट पेस्ट करें। एसेट ID आपकी sync. लाइब्रेरी से मिलती हैं। लिंक सार्वजनिक मीडिया URL या YouTube, TikTok, Instagram और Facebook वीडियो हो सकते हैं।

पूछेंएजेंट क्या करता है
"ऑडियो एसेट <audio-asset-id> के साथ वीडियो एसेट <video-asset-id> को लिप-सिंक करें।"सेव किए गए एसेट के साथ lipsync_create, फिर परिणाम का इंतज़ार करता है
"https://example.com/talk.mp4 को https://example.com/voiceover.wav. पर लिप-सिंक करें"सार्वजनिक URL के साथ lipsync_create
"https://www.youtube.com/watch?v=… का स्पैनिश में अनुवाद करें।"assets_create से लिंक इंपोर्ट करता है, लागत बताता है और आपकी पुष्टि के बाद dubbing_create चलाता है
"वीडियो एसेट <video-asset-id> से शांत कथावाचक की आवाज़ में “देखने के लिए धन्यवाद” कहलवाएँ।"voices_list से आवाज़ चुनता है, स्क्रिप्ट बताता है, फिर script के साथ lipsync_create
"मेरे पास कितने क्रेडिट बचे हैं?"account_get-usage
"मेरी पिछली जनरेशन की लागत कितनी थी?"इतिहास में उसे ढूँढ़ता है और generations_get-costs पढ़ता है

अनुवाद, डबिंग, वाक् पूर्वावलोकन और आवाज़ क्लोन शुरू होने से पहले उनकी लागत बताई जाती है और आपसे पुष्टि ली जाती है।

एजेंट स्किल

इन टूल के चरण-दर-चरण वर्कफ़्लो (लिप-सिंक, बोलती तस्वीरें, डबिंग, Edit Dialogue, कैंपेन, बैच, समस्या निवारण और API) synchronicity-labs/skills में एजेंट स्किल के रूप में उपलब्ध हैं। इन्हें npx skills add synchronicity-labs/skills से किसी भी एजेंट में इंस्टॉल करें। ChatGPT और Codex प्लगइन इन्हें उस रिपॉज़िटरी के पिन किए गए कमिट से शामिल करता है; docs/chatgpt-plugin.md देखें।

टूल

होस्टेड सर्वर हर क्लाइंट को चुने हुए टूल उपलब्ध कराता है:

क्षेत्रटूल
लिप-सिंकlipsync_create, lipsync_create-timeline¹, generations_estimate-cost, generations_get, generations_list, generations_get-continuation, generations_get-costs, models_list
अनुवाद और डबिंगdubbing_create, dubbing_get-options, translation-previews_estimate, translation-previews_create, translation-previews_get
वाक् और आवाज़ेंspeech-previews_create, speech-previews_get-options, speech-previews_get, voices_list, voices_clone
Edit Dialoguedialogue_get-options, dialogue_upload-source, dialogue-transcriptions_create, dialogue-transcriptions_get, dialogue-previews_create, dialogue-previews_get, dialogue-videos_estimate, dialogue-videos_create
एसेट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
प्रोजेक्टprojects_create, projects_get, projects_list, projects_list-generations, projects_rename
कई जॉबjobs_create-many², jobs_get-many²
बैचbatches_create², batches_get², batches_list²
खाताaccount_get-context, account_get-usage, organizations_list, organizations_select

¹ ChatGPT ऐप में उपलब्ध नहीं है, क्योंकि उसके एम्बेडेड Studio में टाइमलाइन नहीं है।

² अभी ChatGPT ऐप की सूची में नहीं है। jobs_create-many एक साथ अधिकतम 50 स्वतंत्र जॉब शुरू करता है—जैसे एक वीडियो को कई भाषाओं में डब करना—हर आइटम के लिए एक create टूल (lipsync_create, dubbing_create, dialogue-videos_create और अन्य) चलाकर। इसमें किसी भी प्लान पर एकल कॉल जैसी ही API, सीमाएँ और बिलिंग लागू होती हैं; jobs_get-many पूरे सेट का अनुसरण करता है। Jobs देखें। बैच, बड़े रन (20 से 500 जनरेशन) के लिए API की अलग कतारबद्ध पाइपलाइन है, जो Scale प्लान और उससे ऊपर उपलब्ध है और इसमें घंटों लग सकते हैं। जिन खातों के प्लान में बैच शामिल नहीं है, उनके लिए API requiredPlan और billingUrl के साथ 402 जवाब देता है, जिसे टूल आगे भेजते हैं।

संबंधित सुविधा वाले संगठनों को scenes_detect (वीडियो में कैमरा कट) और stems_separate (वोकल और बैकग्राउंड ऑडियो) भी मिलते हैं, लेकिन ChatGPT ऐप में नहीं। स्थानीय रूप से ये lipsync और assets टूलसेट में हैं।

ऐप समर्थन वाले क्लाइंट को एम्बेडेड Studio ऐप के पीछे के टूल भी मिलते हैं: Studio व्यू और ड्राफ़्ट, अपलोड विजेट और ऐप हेल्पर। ये वे क्लाइंट हैं जिनके MCP हैंडशेक नाम से ChatGPT या Codex ऐप प्रोफ़ाइल चुनी जाती है (openai-mcp, openai-mcp (Codex); src/client-profile.ts देखें)। अन्य क्लाइंट को ये टूल नहीं दिखते और उनके कॉल अस्वीकार कर दिए जाते हैं।

स्थानीय टूलसेट

स्थानीय stdio सर्वर OpenAPI spec में मौजूद हर अन्य सार्वजनिक API ऑपरेशन के लिए भी टूल दे सकता है—कुल मिलाकर 65 से अधिक। डिफ़ॉल्ट रूप से यह ऊपर दिए गए होस्टेड सेट को सूचीबद्ध करता है, लेकिन उसके एडमिन टूल (assets_delete और voices_clone) के बिना; साथ ही jobs_get, jobs_wait और transcriptions_* टूल भी देता है, जिनके स्पीकर फेस ट्रैक lipsync_create-timeline क्लिप में इस्तेमाल होते हैं।

और टूल सूचीबद्ध करने के लिए SYNC_MCP_TOOLSETS सेट करें या कॉमा से अलग की गई सूची के साथ --toolsets पास करें:

टूलसेटइसमें शामिल हैं
defaultऊपर दिया गया डिफ़ॉल्ट सेट; इसलिए default,admin इससे एडमिन टूल जोड़ता है
lipsyncलिप-सिंक, टाइमलाइन, Edit Dialogue, ऑडियो ट्रिम और बैच टूल, साथ ही रॉ generate_*, generations_* और dialogue-edits_*
dubbingअनुवाद और डबिंग टूल, और बैच टूल
assetsassets_* (डिलीट को छोड़कर) और अपलोड टूल
projectsprojects_* (डिलीट को छोड़कर) और projects_rename
transcriptiontranscriptions_*
voicesvoices_* (क्लोनिंग और डिलीट को छोड़कर), वाक् पूर्वावलोकन और tts_*
adminहर डिलीट (assets_delete, projects_delete, generations_delete, voices_delete) और voices_clone
allइस विकल्प के आने से पहले की तरह हर टूल

जॉब, खाते और जनरेशन पढ़ने वाले टूल (jobs_get, jobs_wait, jobs_get-many, generations_get, account_get-context, organizations_list, organizations_select और इसी तरह के अन्य) हर चयन के साथ आते हैं। जिस create टूल को चलाया जाता है, उसके सूचीबद्ध होने पर jobs_create-many भी शामिल होता है। टूलसेट के नाम देने से डिफ़ॉल्ट सेट जुड़ता नहीं, बल्कि उसकी जगह लेता है। सभी टूल वापस पाने के लिए:

claude mcp add sync -e SYNC_API_KEY=your-api-key -e SYNC_MCP_TOOLSETS=all -- npx -y @sync.so/mcp-server@latest

जब तक सर्वर में सभी टूल सूचीबद्ध न हों, उसके निर्देश एजेंट को बताते हैं कि कौन-से टूलसेट सूचीबद्ध हैं और बाकी कैसे पाए जा सकते हैं, ताकि वह आपसे सर्वर को अधिक व्यापक सेट के साथ रीस्टार्ट करने के लिए कह सके। होस्टेड सर्वर इस सेटिंग को अनदेखा करता है।

Tool workflows में बताया गया है कि कई चरणों वाले और सशुल्क टूल कैसे काम करते हैं।

टूल के नाम एक ही <noun>_<verb> योजना का पालन करते हैं (lipsync_create, generations_get)। इससे पहले इस्तेमाल किए गए नाम (create-lipsync, generate_get-generation) कुछ समय तक काम करते रहेंगे: उनसे किए गए कॉल वही टूल चलाते हैं और नए नाम का उल्लेख करने वाली एक-पंक्ति सूचना जोड़ते हैं। Tool names में पुराने → नए नामों की पूरी तालिका है।

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

बिना निगरानी वाला ऑटोमेशन

डिफ़ॉल्ट रूप से टूल एजेंट को सशुल्क कार्रवाई की लागत बताने और उपयोगकर्ता की मंज़ूरी का इंतज़ार करने को कहते हैं। जब सर्वर ऐसी पाइपलाइन या शेड्यूल किए गए एजेंट में चलता है जिसके संचालक ने खर्च की पहले ही मंज़ूरी दे दी है, तो इसे --no-spend-confirmation (या SYNC_MCP_SPEND_CONFIRMATION=off) के साथ शुरू करें। इसके बाद एजेंट लागत बताए या पूछे बिना जॉब बनाता है, और अनुमान लगाने वाले टूल उपलब्ध रहते हैं। एजेंट इस सेटिंग को बदल नहीं सकते।

जॉब टूल सर्वर पर इंतज़ार करने के लिए wait: true लेते हैं (हर कॉल पर लगभग 50 सेकंड तक, जब क्लाइंट progressToken भेजता है तो प्रगति सूचनाओं के साथ): generations_get, translation-previews_get, transcriptions_get और assets_create के ज़रिए सोशल इंपोर्ट। स्थानीय सर्वर पर jobs_wait और jobs_get हर तरह के जॉब (जनरेशन, ट्रांसक्रिप्शन, स्पीकर विश्लेषण, अनुवाद पूर्वावलोकन, इंपोर्ट) के लिए यही काम एक इनपुट {kind, id, projectId?} और एक ही परिणाम संरचना तथा स्थिति सेट के साथ करते हैं; Jobs देखें। दोनों सर्वर पर jobs_get-many एक बार में इसी तरह अधिकतम 50 जॉब पढ़ता है।

API में उपलब्ध होने पर feedback_send एजेंट को उलझाने वाली त्रुटियों, गलत परिणामों और अनुपलब्ध क्षमताओं की रिपोर्ट Sync टीम को भेजने देता है।

एनवायरनमेंट वेरिएबल और HTTP सर्वर की सेशन, मेमोरी, अपलोड तथा डायग्नोस्टिक्स सीमाएँ HTTP server configuration में दी गई हैं।

यह कैसे काम करता है

  1. स्टार्टअप पर सर्वर {baseUrl}/api-json से सार्वजनिक OpenAPI spec फ़ेच करता है और हर ऑपरेशन को Zod इनपुट स्कीमा वाले MCP टूल में बदलता है।
  2. हाथ से लिखे गए टूल इसी API पर कई चरणों वाले वर्कफ़्लो जोड़ते हैं, जैसे अनुवाद और डबिंग, Edit Dialogue, वाक् पूर्वावलोकन और लागत की जानकारी।
  3. हर टूल कॉल sync. API को प्रमाणित अनुरोध भेजता है, जिसमें आपका OAuth टोकन (होस्टेड) या API key (स्थानीय) इस्तेमाल होता है।

stdio पर, कोई नया सार्वजनिक API ऑपरेशन अगले रीस्टार्ट पर टूल बन जाता है। होस्टेड सर्वर केवल अपनी अनुमति-सूची के टूल दिखाता है, इसलिए नया होस्टेड टूल इस रिपॉज़िटरी की रिलीज़ के साथ उपलब्ध होता है।

प्रोग्रामेटिक इस्तेमाल

आप सर्वर को लाइब्रेरी के रूप में भी इस्तेमाल कर सकते हैं:

import { createSyncMcpServer, resolveConfig } from '@sync.so/mcp-server';

const config = resolveConfig({ apiKey: 'your-key' });
const server = await createSyncMcpServer(config);

डेवलपमेंट

HTTPS सोर्स टेस्ट, एक दिन की वैधता वाली सेल्फ़-साइन की गई टेस्ट पहचान बनाने के लिए स्थानीय openssl कमांड का इस्तेमाल करते हैं। टेस्ट चलने से पहले अस्थायी सर्टिफ़िकेट और की फ़ाइलें हटा दी जाती हैं।

# 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

डेवलपमेंट के लिए Node 26 या नया संस्करण (.nvmrc) चाहिए; इंस्टॉल के समय devEngines इसे package.json में लागू करता है। pnpm install प्री-कमिट हुक इंस्टॉल करता है। यह स्टेज की गई फ़ाइलों पर Oxlint और Oxfmt चलाता है और 5,000 टोकन (20,000 बाइट) से बड़ी होने वाली स्टेज की गई सोर्स फ़ाइल को रोकता है। पहले से इस आकार से बड़ी फ़ाइलों को तब तक छूट है, जब तक कोई उन्हें विभाजित न करे।

स्थानीय HTTP ट्रांसपोर्ट टेस्टिंग

HTTP ट्रांसपोर्ट (OAuth फ़्लो) को स्थानीय रूप से टेस्ट करने के लिए:

  1. .env.example को .env में कॉपी करें और मान भरें
  2. localhost को सार्वजनिक करने के लिए टनल शुरू करें:
    ngrok http 3002
    
  3. ngrok URL के साथ .env में MCP_ISSUER_URL अपडेट करें
  4. सर्वर शुरू करें:
    source .env
    node dist/cli.js --transport http --base-url $SYNC_BASE_URL --port 3002
    
  5. सत्यापित करें कि यह काम करता है:
    curl https://<ngrok-url>/health
    curl https://<ngrok-url>/.well-known/oauth-authorization-server
    

जब किसी आइसोलेटेड Studio लॉगिन के लिए same-origin वेब प्रॉक्सी की आवश्यकता हो, तो SYNC_OAUTH_AUTHORIZATION_URL को उसके /api-proxy/v2/oauth/authorize URL पर सेट करें, जबकि SYNC_BASE_URL को सीधे आइसोलेटेड API लिसनर पर ही रखें। केवल ब्राउज़र नेविगेशन वेब प्रॉक्सी का उपयोग करता है। रजिस्ट्रेशन, कोड एक्सचेंज, रिफ़्रेश, रद्दीकरण, userinfo और टूल कॉल सीधे API का उपयोग करते हैं और मौजूदा समय-सीमाएँ, PKCE और गोपनीय-क्लाइंट जाँच बनाए रखते हैं। वैकल्पिक URL में HTTP(S) होना चाहिए और उसमें क्रेडेंशियल, क्वेरी या फ़्रैगमेंट नहीं होना चाहिए। मौजूदा डिप्लॉयमेंट के लिए किसी नई सेटिंग की आवश्यकता नहीं है।

  1. Claude Web में https://<ngrok-url>/mcp को कस्टम कनेक्टर के रूप में जोड़ें

अधिक जानें

लाइसेंस

MIT