mcpField
S
sync. labs

sync. labs

リモート
sync.soメディア・デザイン11 日前に更新
リポジトリ公式サイト

sync. labs について

sync. labsは、sync.を使って動画や音声を扱うエージェント向けに、ホスト型MCPサーバーとローカル実行環境を提供します。チャットやコーディングセッションから、リップシンク、翻訳、吹き替え、プロジェクトやアセットの管理、音声・ダイアログツールを利用できます。

主な機能

  1. 01音声やスクリプトに合わせたリップシンク動画
  2. 02動画の翻訳と吹き替え
  3. 03音声クローンと音声プレビューの作成
  4. 04アセット、プロジェクト、生成結果の管理
  5. 05ダイアログ編集とバッチ処理

活用シーン

  1. 01動画を別の言語に吹き替え
  2. 02スクリプトから話す動画を作成
  3. 03生成コストとアカウント使用量を確認
  4. 04キャンペーン動画を一括でローカライズ

MCP 対応

ホスト型のStreamable HTTP MCPサーバーは https://mcp.sync.so/mcp で提供され、アカウントでサインインします。ローカルのstdioサーバーはAPIキーまたはデバイスログインに対応し、ツールセットを設定できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.sync.so/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
npm@sync.so/mcp-server0.3.1

ツール

詳細

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" }
  }
}
その他のクライアント

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 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
一括処理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翻訳、吹き替え、一括処理の各ツール
assetsassets_*(削除を除く)とアップロードツール
projectsprojects_*(削除を除く)と projects_rename
transcriptiontranscriptions_*
voicesvoices_*(クローン作成と削除を除く)、音声プレビュー、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 サーバーの設定を参照してください。

仕組み

  1. 起動時に、サーバーは {baseUrl}/api-json から公開 OpenAPI 仕様を取得し、 各操作を Zod 入力スキーマを持つ MCP ツールに変換します。
  2. 手書きのツールが、翻訳と吹き替え、Edit Dialogue、音声プレビュー、料金照会など、 同じ API を使う複数ステップのワークフローを追加します。
  3. 各ツールの呼び出しは、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 フロー)をローカルでテストするには:

  1. .env.example を .env にコピーし、値を入力します
  2. localhost を公開するトンネルを起動します:
    ngrok http 3002
    
  3. .env の MCP_ISSUER_URL を ngrok 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 プロキシが必要な場合は、SYNC_BASE_URL は分離された API の直接リスナーのままにし、SYNC_OAUTH_AUTHORIZATION_URL に /api-proxy/v2/oauth/authorize の URL を設定します。Web プロキシを使用するのはブラウザーのナビゲーションのみです。登録、コード交換、更新、失効、userinfo、ツール呼び出しには直接 API を使用し、既存の期限、PKCE、confidential-client チェックが維持されます。この URL は任意で、HTTP(S) を使用し、認証情報、クエリ、フラグメントを含めることはできません。既存のデプロイでは新たな設定は不要です。

  1. Claude Web に https://<ngrok-url>/mcp をカスタムコネクターとして追加します

詳細情報

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。