Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
VIRALSPIN_ASSEMBLY_DIRNoPath to a local engine checkout for on-disk rendering (advanced). If not set, hosted pipeline is used.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}
prompts
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_connectionsA

List your connected social media accounts (TikTok, Instagram, YouTube). Returns each account's connection ID — pass the ID to publish_now / schedule_post / send_to_drafts via the account_ids param when you have multiple accounts on the same platform.

publish_nowA

Upload local file(s) and publish immediately to TikTok, Instagram, and/or YouTube. Pass a folder path to publish all images in it as a carousel. Use account_ids (from list_connections) to target a specific account when you have multiple accounts on the same platform.

schedule_postA

Upload local file(s) and schedule a post for a future time. Pass a folder path to schedule all images as a carousel.

send_to_draftsA

Upload local file(s) and send to the platform's drafts (TikTok inbox / YouTube as private) so the user can finish in the mobile app — useful when they want to add licensed music or polish before publishing. Instagram does NOT support drafts via API (IG drafts are local to the mobile app only) — if instagram is in the platforms list, that platform will return an error explaining the limitation. Pass a folder path to send all images as a carousel draft.

publish_carousel_as_videoA

Convert a folder of images into a 1080×1920 slideshow MP4 and publish it. Use this when (a) you want the carousel as a TikTok DRAFT (TikTok's API rejects PHOTO carousels for drafts but accepts VIDEO drafts so the user can add trending music in-app), or (b) you want to attach a specific MP3 to the carousel (TikTok/IG don't allow audio attachment to photo posts via API, but a video with baked-in audio works). Requires ffmpeg installed locally. Returns a single video post, not a carousel post.

create_video_assemblyA

Turn an A-roll talking-head/performance clip into a polished vertical (9:16) short by editing in B-roll cutaways. Runs a LOCAL pipeline: transcribes the A-roll, finds each B-roll's focal point (face/subject-aware so nothing is cropped off), matches B-roll to what's being said, and renders with Ken Burns motion + the speaker's voice as the soundtrack (B-roll clip audio is mixed in as a low faded bed). Accepts LOCAL file paths OR public URLs for both A-roll and B-roll, and a B-roll FOLDER is expanded automatically. Pass style_ref (a reference video) to AUTO-INFER the editing style from it — captions, hook headline, keyword pops, pace, and aspect ratio — so you don't have to describe them. Returns the path to the finished MP4, which you can then publish with publish_now / schedule_post.

start_photo_pickerA

Open a Google Photos picker to choose B-roll for create_video_assembly. Returns a link to open in your browser. Google does not allow listing or searching your albums programmatically — so use the picker's OWN search box to find an album or topic that matches your video (by person, place, event, or theme), select the photos/clips, and finish. Then call create_video_assembly with google_picker_session set to the returned sessionId. Requires a Google account connected at app.viralspin.ai/settings.

suggest_clipsA

See a project's cutaways and find better B-roll for one of them. LOCAL project (default): pass cut (0-based) to get ranked alternatives for that cutaway, each with a thumbnail. HOSTED Swap & Refine project (pass job_id, or set VIRALSPIN_HOSTED_JOB_ID): call with no query to list the timeline's cutaways (segment id + the beat each covers + current clip); call with query (e.g. "newborn in hospital") to search the user's B-roll library — each result includes the library tags it matched on, which is the 'why this clip fits' to show the user. Then call swap_clip to apply a choice.

swap_clipA

Replace one cutaway with a chosen B-roll asset (from suggest_clips), then re-render. LOCAL project (default): pass cut (0-based) + asset (filename) → re-renders locally, returns the MP4 path. HOSTED Swap & Refine project (pass job_id, or set VIRALSPIN_HOSTED_JOB_ID): pass segment_id + asset_url → patches the same timeline the browser editor shows and kicks off a cloud re-render; the change appears live in Swap & Refine. Returns immediately — the new preview lands on the project shortly.

swap_caption_styleA

Change the caption style of the most recently assembled video and re-render. Uses the cached edit data — much faster than a full re-assembly (no re-transcription, no B-roll re-analysis). Styles: default (bold white spring pop), hormozi (word-by-word yellow highlight), glow_neon (neon cyan pulse), minimalist (lowercase clean fade), whiteboard (left-to-right reveal).

trim_clipA

Shorten (or restore) how long ONE B-roll cutaway stays on screen in a hosted Swap & Refine project, freeing that time back to the A-roll. Audio-safe — total video length is preserved. Get the segment id from suggest_clips. Instant timeline edit by default (no render); call render_project when done.

remove_spanA

Cut a span of time [from_sec, to_sec] out of a hosted Swap & Refine video — e.g. a duplicated opening sentence or a dead pause. The backbone A-roll is trimmed and the rest shifts up; reuses cached B-roll. Re-renders; streams into the editor.

reorder_scenesA

See or reorder the A-roll's backbone scenes in a hosted Swap & Refine project. Call with no order to LIST the scenes (id + label + time) — the reorderable building blocks. Call with order (the scene ids in the new running order; omit ids to drop them) to apply it and re-render.

render_projectA

Bake the current hosted Swap & Refine timeline into a final MP4 — the ONE cloud render after a batch of instant timeline edits (swap_clip / trim_clip / reorder_scenes). Captions, hook, overlays and motion are applied here. Costs a render/credits. Returns immediately; the finished preview lands on the project, then publish with publish_now or schedule_post.

list_postsB

List your scheduled, published, or failed posts.

cancel_postB

Cancel a pending scheduled post by ID.

generate_captionA

Generate an AI caption and hashtags for a post on a specific platform.

set_keyword_linkA

Map a keyword to a resource/destination link for DM automation. When a follower comments/DMs the keyword, the link is sent back (delivery activates once Instagram messaging access is approved). Re-running with the same keyword + scope updates the link instead of creating a duplicate. Omit media_id for a global rule (fires on any post); set media_id for a single post.

list_keyword_linksA

List your keyword→link DM-automation rules.

delete_keyword_linkA

Delete a keyword→link rule by its keyword. If multiple rules share the keyword, all of them are removed.

index_explainer_sourcesA

Index a local folder of screen recordings and OBS videos with Twelve Labs so they can be searched semantically inside create_video_assembly. Call this once per folder — indexing is cached, so re-running skips already-indexed files. Returns an index_id to pass as explainer_index_id in create_video_assembly. Requires TWELVE_LABS_API_KEY in the MCP environment.

create_kinetic_textA

Render a standalone cinematic typing-animation video — great for explainer intros that visually demo what a user types into the prompt. Text is typed out character-by-character with a blinking cursor while a 3D camera slowly pans, giving a cinematic 'Star Wars pull-back' feel. Three effects: 'typing' (character-by-character with 3D camera), 'billboard_flip' (words fly from Z-depth and snap into place), 'isometric' (letters extrude upward on a tilted plane). Three styles: 'terminal' (green-on-dark, monospace, scanlines), 'cinematic' (white-on-black, serif, vignette), 'minimal' (transparent background, for overlay use). Returns the path to a finished MP4 — feed it to publish_now or as A-roll in create_video_assembly.

create_review_linkA

After assembling a video, generate a private shareable review link for a client. The client opens the link in their browser — no account required — sees the video in a premium 'Private Review Room', and clicks Approve or Request Changes. Returns the review URL to paste into an email or DM.

check_review_statusA

Check whether a client has approved or requested changes on a review link. Pass the token from the URL (e.g. 'abc123xyz456' from /review/abc123xyz456).

prepare_product_assetA

Download and verify a product image from a local path or public URL, upload it to ViralSpin cloud storage, and return a stable cloud URL ready for Higgsfield image ad generation.

assemble_image_adA

Generate image ad variants from a product photo using Higgsfield AI. Uploads the product image, generates styled variants with your prompt, then creates a client review link showing all variants in a carousel. Requires Higgsfield credentials saved in ViralSpin Settings.

publish_to_metaA

Publish an image (or video) to Instagram and/or Facebook. Use after a client approves an image ad variant from assemble_image_ad.

Prompts

Interactive templates invoked by user choice

NameDescription
getting_startedWelcome + how to use ViralSpin: intro, a Google Photos B-roll picker link, and two sample commands.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/AI-Product-Allen-Yu/viralspin-mcp'

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