sync. labs

官方

官方 sync. labs MCP 伺服器:將影片口型同步至新音訊或腳本、將影片配音成其他語言並匹配口型、讓照片開口說話並複製聲音。使用 OAuth 登入,無需 API 金鑰。

你可以用 Sync Labs MCP 做什麼?

  • 唇形同步影片 — 請代理程式將已儲存的影片素材與音訊素材或公開媒體網址進行唇形同步,並等待結果。
  • 翻譯與配音 — 將 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 金鑰。每次合併到此儲存庫的 main 都會部署到該處。

連接代理程式

ChatGPT

開啟 sync. in ChatGPT 並連接帳戶。在 ChatGPT 中,sync. Studio 也會在聊天中開啟。

Claude (claude.ai and 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 金鑰的本機伺服器

對於不支援遠端 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 設定中加入:

{
  "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 影片。

要求代理程式的操作
"Lipsync video asset <video-asset-id> with audio asset <audio-asset-id>."使用已儲存的資產執行 lipsync_create,然後等待結果
"Lipsync https://example.com/talk.mp4 to https://example.com/voiceover.wav."使用公開 URL 執行 lipsync_create
"Translate https://www.youtube.com/watch?v=… to Spanish."使用 assets_create 匯入連結、報價,並在你確認後執行 dubbing_create
"Make video asset <video-asset-id> say “thanks for watching” in a calm narrator voice."使用 voices_list 選擇聲音、報價腳本,然後使用 script 執行 lipsync_create
"How many credits do I have left?"account_get-usage
"What did my last generation cost?"在歷史記錄中找到該項目,並讀取 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 app 使用,因為其內嵌的 Studio 沒有時間軸。

² 尚未列入 ChatGPT app。jobs_create-many 可一次啟動最多 50 個獨立工作,例如將一部影片配成多種語言;它會針對每個項目各執行一次建立工具(lipsync_create、dubbing_create、dialogue-videos_create 等),並沿用任何方案中單次呼叫的相同 API、限制和計費方式;jobs_get-many 會追蹤這組工作。請參閱 Jobs。批次是 API 中獨立的佇列管線,適用於 Scale 方案及更高級別,可處理大型執行(20 到 500 次生成),並可能等待數小時。若帳戶方案不包含批次功能,API 會回覆 402,並附上 requiredPlan 和 billingUrl,工具會轉傳這些資訊。

具備相應功能的組織也會取得 scenes_detect(影片中的鏡頭切換)和 stems_separate(人聲和背景音訊),但 ChatGPT app 不提供這些功能。它們在本機的 lipsync 和 assets 工具集中。

支援 app 的用戶端也會取得內嵌 Studio app 背後的工具:Studio 檢視畫面和草稿、上傳小工具及 app 輔助工具。這些用戶端的 MCP 握手名稱會選取 ChatGPT 或 Codex app 設定檔(openai-mcp、openai-mcp (Codex);請參閱 src/client-profile.ts)。其他用戶端看不到這些工具,對它們的呼叫也會遭到拒絕。

本機工具集

本機 stdio 伺服器也可以為OpenAPI 規格中的每個其他公開 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 等);只要所執行的建立工具有列出,也會包含 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 規格,並將每個操作轉換成具有 Zod 輸入結構描述的 MCP 工具。
  2. 手寫工具會在相同 API 上加入多步驟工作流程,例如翻譯和配音、Edit Dialogue、語音預覽和費用查詢。
  3. 每次工具呼叫都是經過驗證的 sync. API 請求,使用你的 OAuth 權杖(託管伺服器)或 API 金鑰(本機伺服器)。

透過 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 會安裝 pre-commit hook。它會對暫存檔案執行 Oxlint 和 Oxfmt,並阻止暫存的原始碼檔案超過 5,000 個 token(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 登入需要同源 Web Proxy 時,請將 SYNC_OAUTH_AUTHORIZATION_URL 設為其 /api-proxy/v2/oauth/authorize URL,同時 讓 SYNC_BASE_URL 維持在直接的隔離 API 監聽器上。只有瀏覽器 導覽會使用 Web Proxy。註冊、程式碼交換、重新整理、撤銷、userinfo 和工具呼叫 都會使用直接 API,並保留現有的期限、PKCE 和機密用戶端檢查。選用的 URL 必須使用 HTTP(S),且不得包含 憑證、查詢或片段。現有部署不需要新增設定。

  1. 在 Claude Web 中新增 https://<ngrok-url>/mcp 作為自訂連接器

深入了解

授權條款

MIT