> For the documentation index, fetch https://sync.so/docs/llms.txt. Append .md to a page URL for Markdown. Documentation-search MCP: https://sync.so/docs/_mcp/server.

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

> The sync. labs MCP server is an open-source Model Context Protocol server that connects AI assistants — including Claude Desktop, Claude Web, ChatGPT, Cursor, and Windsurf — to the sync. labs lipsync API. Set up in under 2 minutes with zero code.

## What Is the Sync Labs MCP Server?

The Sync Labs MCP server is an open-source [Model Context Protocol](https://modelcontextprotocol.io) server that connects AI assistants — including Claude Web, ChatGPT, Claude Desktop, Cursor, and Windsurf — to the [Sync Labs lipsync API](/api-reference). Instead of writing code or using the [Studio](https://sync.so/studio), describe what you want in plain English and your AI assistant handles the API calls for you.

> **Note**
>
> The Sync Labs MCP server **auto-generates tools from the Sync Labs API spec** at startup. As new [API](/api-reference) endpoints ship, they become available to your AI assistant automatically — no update needed.

## Which AI Clients Support the Sync Labs MCP Server?

The Sync Labs MCP server supports these AI clients, with more being added as the MCP ecosystem grows:

**Web clients (OAuth — no installation required):**

| Client                                                              | Status                                           |
| ------------------------------------------------------------------- | ------------------------------------------------ |
| [Claude Web](https://claude.ai) (claude.ai)                         | Supported                                        |
| [ChatGPT Web](/plugins-and-extensions/chatgpt-plugin) (chatgpt.com) | Supported through the official sync. labs plugin |

**Local clients (npm package — requires Node.js 18+):**

| Client                                                 | Status    |
| ------------------------------------------------------ | --------- |
| [Claude Desktop](https://claude.com/download)          | Supported |
| [ChatGPT Desktop](https://openai.com/chatgpt/desktop/) | Supported |
| [Claude Code](https://code.claude.com/docs)            | Supported |
| [Cursor](https://cursor.com)                           | Supported |
| [Windsurf](https://windsurf.com/editor)                | Supported |
| [Codex CLI](https://github.com/openai/codex)           | Supported |
| Any MCP-compatible client                              | Supported |

## How Do I Set Up the Sync Labs MCP Server?

### Web Setup (No Installation)

For **Claude Web** and **ChatGPT Web**, connect in your browser with zero installation. Authentication is handled via OAuth, so no API key is needed.

> **Note**
>
> The OAuth flow connects to your **currently active Sync Labs organization**. To switch organizations, disconnect the integration, change your active organization at [sync.so](https://sync.so), and reconnect.

#### Claude Web (claude.ai)

1. Go to [claude.ai](https://claude.ai) → **Settings** → **Integrations**
2. Click **Add custom connector**
3. Enter **Name:** `Sync Labs` and **URL:** `https://mcp.sync.so/mcp`
4. Click **Add**, then **Connect**
5. Log in with your Sync Labs account when prompted

Sync Labs tools will appear in Claude's tool picker. Try asking: *"Create a lipsync video with this video and audio URL."*

#### ChatGPT Web (chatgpt.com)

1. Open the [official sync. labs plugin in ChatGPT](https://go.sync.so/gFRJQCO)
2. Choose **Connect**
3. Log in with your sync. labs account when prompted
4. Start a new chat and select sync. labs for the conversation

See the [sync. labs ChatGPT plugin guide](/plugins-and-extensions/chatgpt-plugin) for file uploads, example prompts, current limits, and troubleshooting.

### Local Setup (npm Package)

For desktop apps, CLI tools, and code editors. Requires:

* **Node.js 18+** installed on your machine
* A **Sync Labs API key** — get one from your [dashboard settings](https://sync.so/settings/api-keys) (see the [authentication guide](/api-reference/guides/authentication) for details)

#### Claude Desktop

Add the following to your `claude_desktop_config.json`:

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

**Where to find this file:**

* macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
* Windows: `%APPDATA%\Claude\claude_desktop_config.json`

Restart Claude Desktop after saving.

#### ChatGPT Desktop

Add the following to your ChatGPT Desktop MCP config:

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

**Where to find this file:**

* macOS: `~/Library/Application Support/com.openai.chat/mcp.json`
* Windows: `%APPDATA%\com.openai.chat\mcp.json`

Restart ChatGPT Desktop after saving.

#### Claude Code (CLI)

Run this one-liner to add Sync Labs to Claude Code:

```bash
claude mcp add sync -- npx -y @sync.so/mcp-server --api-key YOUR_API_KEY
```

Or add to `.mcp.json` in your project root:

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

#### Cursor

Add to `.cursor/mcp.json` in your project:

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

#### Other MCP Clients

Any MCP-compatible client can use the Sync Labs MCP server. The configuration is the same — point it at `npx -y @sync.so/mcp-server` with your API key set as `SYNC_API_KEY` in the environment.

See the [MCP protocol docs](https://modelcontextprotocol.io) for client-specific setup instructions.

## 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"**

The Sync Labs MCP server exposes all public Sync Labs API endpoints as tools. Core tools include:

| Tool                         | Description                                                                                                                               |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `generate_create-generation` | Create a lipsync video from video + audio URL inputs, or multipart local files when supported by the client (plan and proxy limits apply) |
| `generate_get-generation`    | Get generation status — poll until COMPLETED                                                                                              |
| `models_get`                 | List available models                                                                                                                     |
| `assets_get-all`             | List all assets in your organization                                                                                                      |
| `generations_estimate`       | Estimate generation cost before creating                                                                                                  |

> **Note**
>
> The Sync Labs MCP server works with any [model available through the API](/api-reference). 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.

## 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:

| Approach                                       | Best For                                                      | Setup Time  | Code Required |
| ---------------------------------------------- | ------------------------------------------------------------- | ----------- | ------------- |
| Sync Labs MCP Server                           | AI assistant workflows, prototyping, natural language control | Under 2 min | None          |
| [Python/TypeScript SDK](/developer-guides/sdk) | Application integration, production pipelines                 | \~5 min     | Yes           |
| [REST API](/api-reference)                     | Custom implementations, full control                          | \~10 min    | Yes           |

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](/developer-guides/sdk) or [REST API](/api-reference) give you full programmatic control.

## CLI Options

The Sync Labs MCP server accepts the following options when run directly:

| Option               | Description                              | Default               |
| -------------------- | ---------------------------------------- | --------------------- |
| `--api-key <key>`    | API key (or set `SYNC_API_KEY` env var)  | —                     |
| `--base-url <url>`   | API base URL                             | `https://api.sync.so` |
| `--transport <type>` | `stdio` or `http`                        | `stdio`               |
| `--port <port>`      | HTTP port (only with `--transport http`) | `3002`                |

## 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:

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

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

The Sync Labs MCP server exposes the same auto-generated tools when used programmatically, so your custom agents get access to every public Sync Labs API endpoint.

## Troubleshooting

#### Sync Labs MCP server not showing tools

* Make sure you have **Node.js 18+** installed
* Verify your API key is valid at [sync.so/settings/api-keys](https://sync.so/settings/api-keys)
* Restart your AI client after updating the configuration
* Check the terminal/logs for error messages

#### Authentication errors with the Sync Labs MCP server

* Double-check your API key is correct and has not been revoked
* For web clients, try disconnecting and reconnecting the integration to re-authenticate via OAuth
* Ensure your Sync Labs account is active with a valid payment method

#### npx not found or 'command not found' errors

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:

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

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

```json
{
  "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`:

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

## Frequently Asked Questions

#### Do I need to install anything besides Node.js?

No. The Sync Labs MCP server runs via `npx`, which downloads the package automatically. Node.js 18+ is the only prerequisite. You can also install it globally with `npm install -g @sync.so/mcp-server` if you prefer.

#### Does the Sync Labs MCP server auto-update when new API endpoints ship?

Yes. The Sync Labs MCP server fetches the latest OpenAPI spec from the Sync Labs API on every startup. When new endpoints are added to the Sync Labs API, they become available as MCP tools automatically — just restart the server.

#### Can I use the Sync Labs MCP server without an API key?

Yes — if you're using a **web client** (Claude Web or ChatGPT Web), authentication is handled via OAuth and no API key is needed. For **local clients** (desktop apps, CLI tools, and code editors), a Sync Labs API key is required.

#### Which AI clients support the Sync Labs MCP server?

The Sync Labs MCP server supports 9 AI clients: Claude Web, ChatGPT Web, Claude Desktop, ChatGPT Desktop, Claude Code, Cursor, Windsurf, Codex CLI, and any MCP-compatible client. See the [supported clients table](#which-ai-clients-support-the-sync-mcp-server) for details.

#### Are asset uploads supported through the Sync Labs MCP server?

The generated MCP tools can use the same public API surface as `/v2/generate`, including URL inputs. When your client supports file inputs, they can also send multipart local files with a 5 GiB per-file application parser limit, subject to your plan and any lower proxy limits. You can also reference files you've already uploaded with [asset uploads](/developer-guides/asset-uploads) by their asset ID, or use publicly accessible URLs.