Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
AUDIO_PATHNoPath for audio storage
IMAGE_PATHNoPath for image storage
VIDEO_PATHNoPath for video storage
OPENAI_API_KEYYesYour OpenAI API key
STORAGE_BACKENDNoStorage backend (optional, e.g., 'databricks')
SANZARU_MEDIA_PATHNoUnified media path (auto-creates videos/, images/, audio/ subdirs)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_videoA

Create a new Sora video generation job. This starts an async job and returns immediately with a video_id.

The video is NOT ready immediately - use get_video_status(video_id) to poll for completion. Status will be 'queued' -> 'in_progress' -> 'completed' or 'failed'. Once status='completed', use download_video(video_id) to save the video to disk.

Parameters:

  • prompt: Text description of the video to generate (required)

  • model: "sora-2" (faster, cheaper) or "sora-2-pro" (higher quality). Default: "sora-2"

  • seconds: Duration as string "4", "8", or "12" (NOT an integer). Default: varies by model

  • size: Resolution as "720x1280" (portrait), "1280x720" (landscape), "1024x1792", or "1792x1024". Default: "720x1280"

  • input_reference_filename: Filename of reference image in IMAGE_PATH (e.g., "cat.png"). Use list_reference_images to find available images. Image must match target size. Supported: JPEG, PNG, WEBP. Optional.

Returns Video object with fields: id, status, progress, model, seconds, size.

get_video_statusA

Check the status and progress of a video generation job.

Use this to poll for completion after calling create_video or remix_video. Call this repeatedly (e.g. every 5-10 seconds) until status changes from 'queued'/'in_progress' to 'completed' or 'failed'.

The returned Video object contains:

  • status: "queued" | "in_progress" | "completed" | "failed"

  • progress: Integer 0-100 showing completion percentage

  • id: The video_id for use with other tools

  • Other metadata: model, seconds, size, created_at, etc.

Typical workflow:

  1. Create video with create_video() -> get video_id

  2. Poll with get_video_status(video_id) until status='completed'

  3. Download with download_video(video_id)

download_videoA

Download a completed video to disk.

IMPORTANT: Only call this AFTER get_video_status shows status='completed'. If the video is not completed, this will fail.

The video is automatically saved to the directory configured in VIDEO_PATH. Returns the filename of the downloaded file.

Parameters:

  • video_id: The ID from create_video or remix_video (required)

  • filename: Custom filename (optional, defaults to video_id with appropriate extension)

  • variant: What to download (default: "video")

    • "video" -> MP4 video file

    • "thumbnail" -> WEBP thumbnail image

    • "spritesheet" -> JPG spritesheet of frames

Typical workflow:

  1. Create: create_video() -> video_id

  2. Poll: get_video_status(video_id) until status='completed'

  3. Download: download_video(video_id, filename="my_video.mp4") -> returns filename

Returns DownloadResult with: filename, variant

list_videosA

List all video jobs in your OpenAI account with pagination support.

Returns a paginated list of all videos (completed, in-progress, failed, etc.). Each video summary includes: id, status, progress, created_at, model, seconds, size.

Parameters:

  • limit: Max number of videos to return (default: 20, max: 100)

  • after: For pagination, pass the 'last' id from previous response (optional)

  • order: "desc" for newest first (default) or "asc" for oldest first

Returns:

  • data: Array of video summaries

  • has_more: Boolean indicating if more results exist

  • last: The ID of the last video (use this as 'after' for next page)

Pagination example:

  1. page1 = list_videos(limit=20) -> get page1.last

  2. page2 = list_videos(limit=20, after=page1.last)

  3. Continue until has_more=false

delete_videoA

Permanently delete a video from OpenAI's cloud storage.

WARNING: This is permanent and cannot be undone! The video will be deleted from OpenAI's servers. This does NOT delete any local files you may have downloaded with download_video.

Use this to:

  • Clean up test videos

  • Remove unwanted content

  • Free up storage quota

Parameters:

  • video_id: The ID of the video to delete (required)

Returns confirmation with the deleted video_id and deleted=true.

remix_videoA

Create a NEW video by remixing an existing completed video with a different prompt.

This creates a brand new video generation job (with a new video_id) based on an existing video. The original video must have status='completed' for remix to work.

Like create_video, this returns immediately with a new video_id - the remix is NOT instant. You must poll the NEW video_id with get_video_status until it completes.

Parameters:

  • previous_video_id: ID of the completed video to use as a base (required)

  • prompt: New text prompt to guide the remix (required)

Returns a NEW Video object with a different video_id, status='queued', progress=0.

Typical workflow:

  1. Create original: create_video("a cat") -> video_id_1

  2. Wait: Poll get_video_status(video_id_1) until completed

  3. Remix: remix_video(video_id_1, "a dog") -> video_id_2 (NEW ID!)

  4. Wait: Poll get_video_status(video_id_2) until completed

  5. Download: download_video(video_id_2)

list_local_videosA

List locally downloaded video files with filtering and sorting.

Use this to discover what video files have been downloaded to the VIDEO_PATH directory. These are videos previously downloaded with download_video.

Parameters:

  • pattern: Glob pattern to filter filenames (e.g., "sora*.mp4", "*.webm"). Default: all files

  • file_type: Filter by type: "mp4", "webm", "mov", or "all". Default: "all"

  • sort_by: Sort results by "name", "size", or "modified". Default: "modified"

  • order: "desc" for newest/largest/Z-A first, "asc" for oldest/smallest/A-Z. Default: "desc"

  • limit: Max results to return. Default: 50

Returns list of VideoFile objects with: filename, size_bytes, modified_timestamp, file_type.

Example workflow:

  1. list_local_videos(file_type="mp4") -> find downloaded MP4 videos

  2. view_media(media_type="video", filename="my_video.mp4") -> watch it

view_mediaA

Open a media file in the interactive media viewer.

Opens a rich media player UI for viewing videos, listening to audio, or displaying images. The viewer loads the file and renders it with native playback controls.

Parameters:

  • media_type: Type of media to view — "video", "audio", or "image" (required)

  • filename: Name of the file to open (required)

    • video files are in the videos directory

    • image files are in the images directory

    • audio files are in the audio directory

Use list_videos, list_reference_images, or list_audio_files to discover available files.

Returns metadata: filename, media_type, size_bytes, mime_type

_get_media_dataA

Internal tool used by the MCP App media viewer to fetch base64-encoded chunks of media data. Do not call directly — use view_media instead.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
media_viewer_htmlServe the bundled media viewer MCP App HTML.

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/TJC-LP/sanzaru'

If you have feedback or need assistance with the MCP directory API, please join our Discord server