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. |
Capabilities
Features and capabilities supported by this server
| 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