Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SYNC_API_KEYNoYour Sync API key (stdio transport). If omitted, interactive login is used.
SYNC_BASE_URLNoAPI base URLhttps://api.sync.so
MCP_ISSUER_URLNoOAuth issuer URL (HTTP transport only)
OAUTH_REGISTRATION_SECRETNoShared 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

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 script with a voiceId from voices_get-voices; do not call tts_create first. Pass URLs whenever you have them — set audioUrl to any public audio URL, and videoUrl/imageUrl to a hosted media URL. If media was uploaded to Sync first, pass audioAssetId, videoAssetId, or imageAssetId. For files the user uploaded in chat, prefer calling upload-media first and pass the returned assetId here; direct audio/video/image file params are supported only when a host invokes this tool with file params directly. If the user wants to choose a local image/audio file that is not attached yet, use open-upload-widget first. Provide exactly one visual input (video or image) and exactly one driver input (audio or script). Returns a generation id — call generate_get-generation once with wait: true and timeout: 55, then read outputUrl. Copy signed outputUrl values exactly from the tool result; never reconstruct or shorten them. For advanced options (segments, speaker selection), use generate_create-generation.

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 url from assets_create-upload-url, or any public URL). Returns an asset id to use as input[].assetId in a generation, or as a voice-clone sample.

assets_create-upload-urlA

Upload step 1: get a presigned URL for a local file. PUT the raw bytes to the returned uploadUrl (same Content-Type), then register it with assets_create using the returned url. Use this when your media is not already at a public URL. Max 5GB.

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 url or assetId. Returns a generation id — call generate_get-generation once with wait: true and timeout: 55, then read outputUrl. To choose which face to sync in a multi-person video, pass options.active_speaker_detection (auto_detect, or coordinates + frame_number).

generate_get-generationA

Get a generation by id. In ChatGPT, pass wait: true and timeout: 55 for generation results instead of making repeated manual polls. When status is COMPLETED, copy the exact structuredContent.outputUrl string verbatim; signed URLs must not be reconstructed, shortened, or edited.

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 model in generate_create-generation.

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, outputUrl.

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 id as projectId on generate_create-generation or assets_create so they show up together in Studio.

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 script and voiceId directly.

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 id as voiceId in create-lipsync with script directly. Use tts_create only when the user explicitly asks for standalone audio.

voices_clone-voiceA

Clone a custom voice from an audio or video sample — pass a Sync-hosted url or an assetId (upload local files via assets_create-upload-url first), plus provider (elevenlabs) and a name. Returns a voice id for tts_create.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
sync-upload-widget-v7Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation.
sync-upload-widget-v1Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation.
sync-upload-widget-v2Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation.
sync-upload-widget-v3Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation.
sync-upload-widget-v4Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation.
sync-upload-widget-v5Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation.
sync-upload-widget-v6Select or upload media inside ChatGPT, stage it as a durable Sync asset, and report the assetId back into the conversation.

Latest Blog Posts

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