Saltar a la navegación

sync. labs MCP Server — Use sync. labs from Claude, ChatGPT & AI Assistants via MCP

What Is the Sync Labs MCP Server?

The Sync Labs MCP server is an open-source Model Context Protocol server that connects AI assistants — including Claude, ChatGPT, Claude Code, Codex, Cursor and VS Code — to the Sync Labs lipsync API. Instead of writing code or using the Studio, describe what you want in plain English and your AI assistant handles the API calls for you.

The hosted server offers a curated set of tools to every client, listed below. The local server can also generate a tool for every other operation in the public API specification. Available tools depend on the server release and client profile, and a new API endpoint does not automatically become a hosted or ChatGPT tool.

Using Claude Code, Codex, Cursor or another coding agent? Install the sync. labs agent skills. They connect to this server and add guided workflows for lipsync, talking photos, dubbing, dialogue edits, campaign localization and batch runs, with a cost quote before every paid action.

Which AI Clients Support the Sync Labs MCP Server?

Sync Labs hosts the MCP server at https://mcp.sync.so/mcp. Any client that supports remote MCP servers connects to it and signs you in with your Sync Labs account through OAuth. You don’t need to install anything or create an API key.

ClientHow it connects
ChatGPTOfficial sync. labs plugin, sign in with OAuth
Claude (claude.ai and Claude Desktop)Custom connector, sign in with OAuth
Claude CodeRemote server, sign in with OAuth
CodexRemote server, sign in with OAuth
CursorRemote server, sign in with OAuth
VS CodeRemote server, sign in with OAuth
Windsurf and any other client with remote MCP supportRemote server, sign in with OAuth
Clients without remote MCP support, scripts and CILocal server with an API key or a browser sign-in

How Do I Set Up the Sync Labs MCP Server?

Point your client at https://mcp.sync.so/mcp and sign in to Sync Labs when it asks. Every client below uses the same hosted server.

  1. In claude.ai or Claude Desktop, open Settings → Connectors
  2. Click Add custom connector
  3. Enter Name: sync. and URL: https://mcp.sync.so/mcp
  4. Click Add, then Connect
  5. Sign in with your Sync Labs account when prompted

Sync Labs tools appear in Claude’s tool picker. Try asking: “Create a lipsync video with this video and audio URL.”

  1. Open the official sync. labs plugin in ChatGPT
  2. Choose Connect
  3. Sign in with your sync. labs account when prompted
  4. Start a new chat and select sync. labs for the conversation

Ask “Open Sync” to use the embedded Studio. See the sync. labs ChatGPT plugin guide for lipsync, image-to-video, translation, dialogue editing, uploads, project history, estimates, and recovery. ChatGPT uses workflow-specific tools rather than exposing every generated operation listed below; availability also depends on its published tool catalog.

Add the server:

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

Then run /mcp in Claude Code, select sync and sign in. Add --scope user to use it in every project.

Add the server, then sign in:

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

Add to .cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects:

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

Cursor asks you to sign in to Sync Labs the first time it connects.

Add to .vscode/mcp.json:

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

VS Code asks you to sign in to Sync Labs the first time it starts the server.

Add a remote MCP server (Streamable HTTP) with the URL https://mcp.sync.so/mcp. The client registers itself and opens Sync Labs in your browser to sign in.

The server is also listed in the official MCP Registry as io.github.synchronicity-labs/mcp-server, so clients and directories that read the registry can add it for you.

Choosing Organizations

Claude and ChatGPT connect to every organization you belong to as soon as you sign in, with the organization active in Studio as the default. Other clients ask which organizations the connection can work in: every one starts ticked, so untick any you want to leave out, and set default next to another ticked one makes it the default. The agent works in the default organization unless you ask it to switch, and paid generations use that organization’s credits or usage.

  • Switch during a conversation: ask the agent to work in another organization it is connected to. It lists them with organizations_list and switches with organizations_select, and you can ask which organization it’s working in at any time.
  • Add an organization later: connect again (and tick it, for clients that ask). Switching organizations in Studio doesn’t change an existing connection.
  • See or remove a connection: each organization lists the connection under Settings → Agents & MCP in Studio, where you can disconnect it from that organization alone.

An API key always works in the organization it was created in and can’t switch.

Local Server for Scripts, CI and Other Clients

Use the hosted server whenever your client supports remote MCP servers. Run the server locally only for clients without remote MCP support, or for scripts, CI and other unattended agents. The local server needs Node.js 22.19+ and runs over stdio from the @sync.so/mcp-server package.

For unattended use, pass a Sync Labs API key from your dashboard settings (see the authentication guide):

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

Or in a client’s JSON config:

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

Without SYNC_API_KEY, the server signs you in on its first run instead: open the URL it prints and enter the code. It saves the token to ~/.config/sync/mcp-credentials.json.

npm releases ship separately from the hosted server and can lag behind it. @latest makes npx fetch the newest release when the client restarts the server; without it, npx can keep running an old cached copy.

What Can I Do with the Sync Labs MCP Server?

Once connected, you can create lipsync videos, check generation status, estimate costs, and manage assets — all through natural language. Here are example prompts you can try with your AI assistant:

  • “Create a lipsync video with this video URL and audio URL”
  • “Check the status of generation gen-abc123”
  • “List available Sync Labs models”
  • “Show me my recent generations”
  • “How much would it cost to generate a 30-second video?”
  • “Get the details of my latest completed generation and give me the output URL”
  • “Estimate the cost for a 45-second lipsync video, then create it if it’s under $1”
  • “Which organization and plan am I on, and how much do I have left to spend this month?”

The hosted server offers the same curated tools to every client; the ChatGPT plugin adds its embedded Studio and leaves out a few, as its guide explains. These are the main ones. The server README lists them all. Tools are named <noun>_<verb>. Earlier names such as generate_get-generation and create-lipsync still work as aliases for now, but new setups should use the names below.

ToolDescription
lipsync_createLip-sync a video or image to audio, from public URLs or saved asset IDs (videoAssetId, imageAssetId, audioAssetId)
dubbing_createTranslate and lip-sync a saved video as one generation
generations_getGet generation status; poll until COMPLETED
generations_listList recent generations
jobs_create-many / jobs_get-manyStart up to 50 independent jobs at once, such as one video dubbed into several languages, and follow them as a set
models_listList available models
assets_listList all assets in your organization
assets_create-upload-urlGet a presigned URL to upload a local video, audio or image file, then register it with assets_create and pass the returned asset ID to a generation
account_get-context / account_get-usageRead the current organization, plan and limits; and what is left to spend this billing period: the credit balance, the free monthly allowance or the usage billed so far, depending on how the organization is billed
organizations_list / organizations_selectList the organizations the connection can use and switch between them
generations_estimate-costEstimate generation cost before creating; distinguish lip-sync-only pricing from a combined translation quote
generations_get-costsRead the recorded cost of one existing generation, including available lipsync, dubbing, and speech components
feedback_sendReport an error that didn’t say what to fix, a wrong result, a missing capability or a workaround to the sync. team. Calls Submit Feedback and doesn’t change any job

The Sync Labs MCP server works with any model available through the API. For the most reliable MCP flow, use publicly accessible URLs for video and audio inputs. The core API also supports multipart file inputs on /v2/generate for local files with a 5 GiB per-file application parser limit, subject to your plan and any lower proxy limits.

To translate and dub, review a combined estimate with generations_estimate-cost and workflow: "translate-and-dub", create it with dubbing_create, then poll the returned ID with generations_get. create-translate-and-dub remains an older alias.

Many Jobs vs Batch

jobs_create-many runs one create tool, such as lipsync_create, dubbing_create or dialogue-videos_create, once per item, up to 50 at a time. Each job has the same limits and billing as a single call, so it works on any plan, within your plan’s concurrency limit. It isn’t in the ChatGPT plugin yet. The Batch API is a separate queued pipeline for large runs of 20 to 500 generations that can wait hours, and needs the Scale plan or above.

Sync Labs MCP Server vs SDK vs REST API

The Sync Labs MCP server is one of three ways to integrate with the Sync Labs API. Choose the approach that best fits your workflow:

ApproachBest ForSetup TimeCode Required
Sync Labs MCP ServerAI assistant workflows, prototyping, natural language controlUnder 2 minNone
Python/TypeScript SDKApplication integration, production pipelines~5 minYes
REST APICustom implementations, full control~10 minYes

The Sync Labs MCP server is ideal when you want to explore the API, prototype workflows, or create lipsync videos without writing code. For production applications, the Sync Labs SDKs or REST API give you full programmatic control.

CLI Options

The local Sync Labs MCP server accepts the following options. The hosted server needs none of them.

OptionDescriptionDefault
--api-key <key>API key (or set SYNC_API_KEY env var). Without one, the server signs you in through the browser—
--base-url <url>API base URLhttps://api.sync.so
--transport <type>stdio or httpstdio
--port <port>HTTP port (only with --transport http)3002
--toolsets <list>stdio only: comma-separated tools to list (or set SYNC_MCP_TOOLSETS): default, lipsync, dubbing, assets, projects, transcription, voices, admin or allthe hosted set without deletes or voice cloning
--no-spend-confirmationFor unattended automation: create paid jobs without quoting the cost and asking first (or set SYNC_MCP_SPEND_CONFIRMATION=off)—
--no-update-checkSkip the daily check for a newer npm release (or set SYNC_MCP_UPDATE_CHECK=off; skipped when CI is set)—

Programmatic Usage

You can also use the Sync Labs MCP server as a library in your own applications. This is useful when you want to embed Sync Labs’ MCP tools into a custom AI agent or multi-tool pipeline:

import { createSyncMcpServer, resolveConfig } from '@sync.so/mcp-server';
const config = resolveConfig({ apiKey: 'your-key' });
const server = await createSyncMcpServer(config);

Programmatic clients use the same tool generation and client-profile filtering. Inspect the connected server’s tool list for the operations available to your agent.

Troubleshooting

  • Check that the server URL is exactly https://mcp.sync.so/mcp
  • Finish signing in: run /mcp in Claude Code, codex mcp login sync in Codex, or click Connect on the connector in Claude
  • Restart your AI client after changing its configuration
  • On the local server, make sure you have Node.js 22.19+ installed and check the terminal or logs for errors
  • On the hosted server, disconnect the integration and connect again to sign in with OAuth
  • If the agent says an organization isn’t part of the connection, connect again and tick that organization
  • On the local server with an API key, check at sync.so/settings/api-keys that the key is correct and has not been revoked
  • On the local server without an API key, delete ~/.config/sync/mcp-credentials.json and restart the server to sign in again
  • If a paid tool is refused for your plan, credits or an unpaid invoice, the error includes a billingUrl: open it signed in to Sync Labs to upgrade, top up or pay, then retry. Get account (account_get-context in MCP) shows the current plan and limits

If you see sh: mcp-server: command not found or similar errors when using the npx configuration, this is typically caused by Node version managers (nvm, fnm, volta) not resolving npx bin paths correctly.

Fix: Install the package globally and reference it directly:

npm install -g @sync.so/mcp-server

Then update your MCP config to use sync-mcp instead of npx:

{
"mcpServers": {
"sync": {
"command": "sync-mcp",
"args": [],
"env": {
"SYNC_API_KEY": "your-api-key"
}
}
}
}

If that still doesn’t work, use the full path to node:

{
"mcpServers": {
"sync": {
"command": "node",
"args": ["node_modules/@sync.so/mcp-server/dist/cli.js"],
"env": {
"SYNC_API_KEY": "your-api-key"
}
}
}
}

Frequently Asked Questions

No. Sync Labs hosts the server at https://mcp.sync.so/mcp, so you add the URL to your client and sign in. Only the local server needs Node.js 22.19+; it runs via npx, which downloads the package automatically.

The hosted server updates when Sync Labs deploys a new release and only exposes tools on its allowlist, so a new hosted tool ships with a release. The local server reads the public OpenAPI specification at startup, so a newly documented endpoint can become a tool on the next restart, subject to the toolsets you list. Hosted ChatGPT updates also require any necessary publisher refresh/review; restarting a local server does not publish new ChatGPT tools.

Yes. Every client that supports remote MCP servers, including Claude, ChatGPT, Claude Code, Codex, Cursor and VS Code, connects to the hosted server and signs in with OAuth. The local server can also sign you in through the browser. You only need an API key to run the local server unattended, such as in scripts or CI.

Any client that supports remote MCP servers over Streamable HTTP with OAuth, including ChatGPT, Claude (claude.ai and Claude Desktop), Claude Code, Codex, Cursor, VS Code and Windsurf. Clients without remote MCP support can run the local server. See the supported clients table for details.

Yes. The generated tools include the asset upload flow: assets_create-upload-url returns a presigned uploadUrl for a file up to 5 GiB (subject to your plan’s file size limit), the client PUTs the bytes there, and assets_create registers the upload and returns an asset ID. Pass it to a create tool as videoAssetId, imageAssetId or audioAssetId. This needs a client that can make the PUT request itself, such as Claude Code or another agent with shell or HTTP access. In ChatGPT, attach the file to the chat instead. You can also reference files you’ve already uploaded by their asset ID, or use publicly accessible URLs.