sync. labs について
sync. labsは、sync.を使って動画や音声を扱うエージェント向けに、ホスト型MCPサーバーとローカル実行環境を提供します。チャットやコーディングセッションから、リップシンク、翻訳、吹き替え、プロジェクトやアセットの管理、音声・ダイアログツールを利用できます。
主な機能
- 01音声やスクリプトに合わせたリップシンク動画
- 02動画の翻訳と吹き替え
- 03音声クローンと音声プレビューの作成
- 04アセット、プロジェクト、生成結果の管理
- 05ダイアログ編集とバッチ処理
活用シーン
- 01動画を別の言語に吹き替え
- 02スクリプトから話す動画を作成
- 03生成コストとアカウント使用量を確認
- 04キャンペーン動画を一括でローカライズ
MCP 対応
ホスト型のStreamable HTTP MCPサーバーは https://mcp.sync.so/mcp で提供され、アカウントでサインインします。ローカルのstdioサーバーはAPIキーまたはデバイスログインに対応し、ツールセットを設定できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.sync.so/mcpclaude mcp add --transport http synchronicity-labs https://mcp.sync.so/mcp{"mcpServers":{"synchronicity-labs":{"type":"http","url":"https://mcp.sync.so/mcp"}}}Cursor で開く{"servers":{"synchronicity-labs":{"type":"http","url":"https://mcp.sync.so/mcp"}}}VS Code で開く{"mcpServers":{"synchronicity-labs":{"type":"http","url":"https://mcp.sync.so/mcp"}}}{"mcpServers":{"synchronicity-labs":{"serverUrl":"https://mcp.sync.so/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
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)
- Settings → Connectors を開き、Add custom connector を選択します。
sync.という名前を付け、URL にhttps://mcp.sync.so/mcpを設定します。- 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" }
}
}
その他のクライアント
OAuth を使用して Streamable HTTP 経由でリモート 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 レジストリに最新バージョンを問い合わせます。確認は最大でも 1 日に 1 回で、結果は ~/.config/sync/mcp-update-check.json にキャッシュされます。確認はバックグラウンドで 2 秒を上限として実行され、起動やツール呼び出しが遅れることはありません。失敗しても何も表示されません。新しいバージョンがある場合、サーバーの指示とセッション最初のツール結果で、npx -y @sync.so/mcp-server@latest を使って再起動するか、ホストされたサーバーに切り替えるようエージェントに指示します。
無効にするには、SYNC_MCP_UPDATE_CHECK=off を設定するか、--no-update-check を渡します。CI が設定されている場合も確認はスキップされ、ホストされたサーバーでは確認は行われません。
依頼する内容
次のようなプロンプトをエージェントに貼り付けてください。アセット ID は、同期したライブラリから取得できます。 リンクには、公開メディア URL のほか、YouTube、TikTok、Instagram、Facebook の動画を指定できます。
| 依頼 | エージェントの動作 |
|---|---|
「動画アセット <video-asset-id> を音声アセット <audio-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 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 |
| アセット | 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 |
| 一括処理 | batches_create²、batches_get²、batches_list² |
| アカウント | account_get-context、account_get-usage、organizations_list、organizations_select |
¹ タイムライン機能のない Studio が組み込まれている ChatGPT アプリでは提供されません。
² ChatGPT アプリのツール一覧には、まだ含まれていません。一括処理では、20 件以上の独立した生成(デフォルトで 1 バッチあたり 500 件)を実行できます。たとえば、1 本のキャンペーン動画を多言語にローカライズできます。アカウントのプランに一括処理が含まれていない場合、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 | 翻訳、吹き替え、一括処理の各ツール |
assets | assets_*(削除を除く)とアップロードツール |
projects | projects_*(削除を除く)と projects_rename |
transcription | transcriptions_* |
voices | voices_*(クローン作成と削除を除く)、音声プレビュー、tts_* |
admin | すべての削除ツール(assets_delete、projects_delete、generations_delete、voices_delete)と voices_clone |
all | このオプションが導入される前と同様、すべてのツール |
ジョブ、アカウント、生成結果を取得するツール(jobs_get、jobs_wait、generations_get、account_get-context、organizations_list、organizations_select など)は、どの選択内容にも含まれます。ツールセットを指定すると、デフォルトに追加されるのではなく、デフォルトが置き換えられます。すべてのツールを再び利用するには、次のようにします。
claude mcp add sync -e SYNC_API_KEY=your-api-key -e SYNC_MCP_TOOLSETS=all -- npx -y @sync.so/mcp-server@latest
すべてのツールが一覧表示されていない場合、サーバーの指示では、どのツールセットが一覧表示されているか、また残りを利用する方法がエージェントに伝えられます。そのため、より広いセットでサーバーを再起動するよう求めることができます。ホスト型サーバーはこの設定を無視します。
ツールのワークフローでは、複数ステップのツールと有料ツールの動作について説明しています。
ツール名は、単一の <noun>_<verb> 形式に従います(lipsync_create、generations_get)。以前の名前(create-lipsync、generate_get-generation)も、非推奨期間中は引き続き使用できます。これらの名前で呼び出すと、同じツールが実行され、新しい名前を示す 1 行の通知が追加されます。ツール名に、旧名から新名への対応表がすべて記載されています。
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)を指定して起動してください。エージェントは見積もりや確認を求めずにジョブを作成でき、見積もりツールも引き続き利用できます。エージェントがこの設定を変更することはできません。
API が対応している場合、ジョブツールに wait: true を指定すると、サーバー側で待機できます(1 回の呼び出しにつき最大約 50 秒。クライアントが progressToken を送信すると、進行状況が通知されます)。対象は generations_get、translation-previews_get、transcriptions_get、および assets_create 経由のソーシャルインポートです。ローカルサーバーでは、jobs_wait と jobs_get が、1 つの入力 {kind, id, projectId?} と 1 つの結果形式・ステータスセットで、あらゆる種類のジョブ(生成、文字起こし、話者分析、翻訳プレビュー、インポート)に同じ機能を提供します。ジョブを参照してください。
API が対応している場合、feedback_send を使って、エージェントから Sync チームへ、分かりにくいエラー、誤った結果、未対応の機能を報告できます。
環境変数、および HTTP サーバーのセッション、メモリ、アップロード、診断に関する制限については、HTTP サーバーの設定を参照してください。
仕組み
- 起動時に、サーバーは
{baseUrl}/api-jsonから公開 OpenAPI 仕様を取得し、 各操作を Zod 入力スキーマを持つ MCP ツールに変換します。 - 手書きのツールが、翻訳と吹き替え、Edit Dialogue、音声プレビュー、料金照会など、 同じ API を使う複数ステップのワークフローを追加します。
- 各ツールの呼び出しは、OAuth トークン(ホスト型)または API キー(ローカル)を使った、 sync. API への認証済みリクエストです。
stdio では、新しい公開 API 操作は次回の再起動時にツールになります。 ホスト型サーバーが公開するのは許可リストにあるツールのみのため、新しいホスト型ツールはこのリポジトリのリリースに合わせて提供されます。
プログラムからの使用
サーバーはライブラリとしても使用できます。
import { createSyncMcpServer, resolveConfig } from '@sync.so/mcp-server';
const config = resolveConfig({ apiKey: 'your-key' });
const server = await createSyncMcpServer(config);
開発
HTTPS ソーステストでは、ローカルの openssl コマンドを使って、有効期間が 1 日の自己署名テスト ID を作成します。テストの実行前に、一時的な証明書とキーのファイルは削除されます。
# 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)。package.json の devEngines により、インストール時にこの要件が適用されます。pnpm install はプリコミットフックをインストールします。このフックは、ステージ済みファイルに対して Oxlint と Oxfmt を実行し、ステージ済みのソースファイルが 5,000 トークン(20,000
バイト)を超えて増加した場合は処理をブロックします。すでにこのサイズを超えているファイルは、分割されるまで対象外です。
ローカル HTTP トランスポートのテスト
HTTP トランスポート(OAuth フロー)をローカルでテストするには:
.env.exampleを.envにコピーし、値を入力します- localhost を公開するトンネルを起動します:
ngrok http 3002 .envのMCP_ISSUER_URLを ngrok URL に更新します- サーバーを起動します:
source .env node dist/cli.js --transport http --base-url $SYNC_BASE_URL --port 3002 - 動作を確認します:
curl https://<ngrok-url>/health curl https://<ngrok-url>/.well-known/oauth-authorization-server
分離された Studio ログインで同一オリジンの Web プロキシが必要な場合は、SYNC_BASE_URL は分離された API の直接リスナーのままにし、SYNC_OAUTH_AUTHORIZATION_URL に /api-proxy/v2/oauth/authorize の URL を設定します。Web プロキシを使用するのはブラウザーのナビゲーションのみです。登録、コード交換、更新、失効、userinfo、ツール呼び出しには直接 API を使用し、既存の期限、PKCE、confidential-client チェックが維持されます。この URL は任意で、HTTP(S) を使用し、認証情報、クエリ、フラグメントを含めることはできません。既存のデプロイでは新たな設定は不要です。
- Claude Web に
https://<ngrok-url>/mcpをカスタムコネクターとして追加します
詳細情報
- ツールのワークフロー — 複数ステップのツールと有料ツールの動作
- HTTP サーバーの設定 — 環境変数と実行時の制限
- メンテナー向けメモ — ホスト型の互換性、キャンセル、OAuth プロキシ、アップロード、モニタリング
- Claude ディレクトリへの登録準備 — レビューチェックリストと残りの申請作業
- Sync のドキュメント — API リファレンスとガイドの全容
- Sync API リファレンス — エンドポイントのドキュメント
- MCP プロトコル — Model Context Protocol の詳細
- Sync のウェブサイト — 登録して利用を開始
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。