Sync MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SYNC_API_KEY | No | Your Sync API key (stdio transport). If omitted, interactive login is used. | |
| SYNC_BASE_URL | No | API base URL | https://api.sync.so |
| MCP_ISSUER_URL | No | OAuth issuer URL (HTTP transport only) | |
| OAUTH_REGISTRATION_SECRET | No | Shared secret for client registration (HTTP transport only) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| open-upload-widgetA | Open the Sync image/audio upload widget so a user can choose a ChatGPT file or upload a supported local image/audio file, then stage it as a durable Sync assetId. Use this by default when the user wants to upload or choose a local image/audio file and has not attached the file to ChatGPT yet. For image-to-speech requests, call this with requestedMediaType: "image" and tell the user to enter the exact requested text in the widget Script field. This widget cannot accept video or MP4 files. Never use, recommend, or describe this tool for local video requests, and never use requestedMediaType: "video". For local video or MP4, ask the user to attach the video to the ChatGPT composer, then call upload-media or create-lipsync with file params. |
| upload-mediaA | Upload a user-provided image, video, or audio file to Sync asset storage and return a durable assetId. Use this when the user uploaded media in chat and a later Sync tool call should reference it by assetId. The file field must be the uploaded ChatGPT file object. For public URLs, use assets_create or pass the URL directly to create-lipsync. This tool only stores the media; it does not create a lipsync generation. After it returns, pass the assetId to create-lipsync as imageAssetId, videoAssetId, or audioAssetId. |
| create-lipsyncA | Create a lipsync video from audio + EITHER a video or a still image (an image drives sync-3 image-to-video). Defaults to sync-3 unless the user explicitly requests another model. Generations are attached to an existing project with the requested projectName, or to "ChatGPT generations" by default; if no matching project exists, it is created first. For "make this image/video say X" requests, pass |
| assets_get-allA | List assets (video/audio/image) in your organization. Use to find an existing assetId. |
| assets_createA | Register a media URL as a reusable asset (e.g. the |
| assets_create-upload-urlA | Upload step 1: get a presigned URL for a local file. PUT the raw bytes to the returned |
| assets_getA | Get one asset by id (details + URL). |
| assets_updateC | Update an asset's name or visibility by id. |
| assets_deleteA | Delete an asset by id. |
| generate_create-generationA | Create a lipsync video. Provide a video input (or an image for sync-3) and an audio input, each by |
| generate_get-generationA | Get a generation by id. In ChatGPT, pass |
| generate_estimate-costA | Estimate the credit cost of a generation before creating it. Takes the same body as generate_create-generation. |
| generate_get-generationsA | List recent generations for your organization. Use to find generation ids or check status. |
| models_getA | List the lipsync models available to you (e.g. lipsync-2, lipsync-2-pro, sync-3, react-1). Use a returned model id as the |
| generations_estimate-costB | Estimate the credit cost of a generation before creating it. Returns estimated credits. |
| generations_get-by-idA | Get a generation by id (organization-scoped). Returns status and, when COMPLETED, |
| generations_deleteA | Delete a generation by id. Only terminal generations (COMPLETED/FAILED/REJECTED) can be deleted — deleting one that is still processing returns 409. |
| projects_get-allC | List the projects in your organization. |
| projects_createA | Create a project to group related generations and assets. Pass the returned |
| projects_attach-assetB | Attach an asset to a project |
| projects_detach-assetB | Detach an asset from a project |
| projects_getA | Get a project by id. |
| projects_updateA | Update a project's name, description, visibility, or mode. |
| projects_deleteA | Delete a project. Generations and assets attached to it are not deleted — they just stop being grouped under it. |
| tts_createA | Synthesize standalone speech audio from text. Use only when the user specifically asks for an audio file or voice preview. Do not use this for "make this image/video say X" lipsync requests — use create-lipsync with |
| voices_get-voicesA | List available voices — premade ElevenLabs voices plus voices your org has cloned. For "make this image/video say X", use a returned voice |
| voices_clone-voiceA | Clone a custom voice from an audio or video sample — pass a Sync-hosted |
| voices_get-voiceB | Get a voice by ID |
| voices_delete-voiceA | Delete a cloned voice by id, freeing a clone slot. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| sync-upload-widget-v7 | Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation. |
| sync-upload-widget-v1 | Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation. |
| sync-upload-widget-v2 | Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation. |
| sync-upload-widget-v3 | Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation. |
| sync-upload-widget-v4 | Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation. |
| sync-upload-widget-v5 | Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation. |
| sync-upload-widget-v6 | Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/synchronicity-labs/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server