ViralSpin MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VIRALSPIN_ASSEMBLY_DIR | No | Path to a local engine checkout for on-disk rendering (advanced). If not set, hosted pipeline is used. |
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 | {} |
| prompts | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| swap_clipA | Replace one cutaway with a chosen B-roll asset (from suggest_clips), then re-render. LOCAL project (default): pass |
| 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 |
| 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
| Name | Description |
|---|---|
| getting_started | Welcome + 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
| Name | Description |
|---|---|
No resources | |
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/AI-Product-Allen-Yu/viralspin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server