ReelFarm MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REELFARM_API_KEY | Yes | Your ReelFarm API key, starts with rf_ |
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 | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_accountA | Get account info including subscription tier, remaining credits, and billing cycle reset date. |
| generate_slideshowA | Generate a slideshow from a natural-language prompt. AI picks text, images, and styling. Rendering is async (~45s). Poll slideshow_status to track progress. Args: additional_context: Prompt controlling topic, slide count, text items, fonts, tone, etc. images: Optional list of image URLs for slide backgrounds (0-indexed: images[0] → slide 0). |
| create_slideshowA | Create a slideshow with full manual control over every slide's image, text, and styling. No AI generation — renders in ~10 seconds. Args: slides: Array of slide objects. Each slide has image_url or image_urls, text_items, etc. title: Slideshow title (default "API Slideshow"). aspect_ratio: "4:5" (default), "9:16", "1:1", or "16:9". text_position: "top", "center" (default), or "bottom". export_as_video: Export as .mp4 in addition to rendered images. duration: Seconds per slide in video (default 4). Only applies when export_as_video is true. is_bg_overlay_on: Dark overlay on body slides. is_bg_overlay_on_hook_image: Dark overlay on hook slide. background_opacity: Overlay opacity 0-100 (default 20). keep_original_aspect_ratio: Use each image's native aspect ratio. |
| slideshow_statusA | Check slideshow generation/rendering progress. Poll every 5-10 seconds. Status flow: draft → generating → rendering → completed (or failed). When a video export exists, also returns video_id and video_status. Args: slideshow_id: The slideshow ID from generate or create. |
| create_automationA | Create a recurring automation that generates and publishes slideshows to TikTok on a cron schedule. Args: tiktok_account_id: Target TikTok account ID (from list_tiktok_accounts). schedule: Array of cron objects, e.g. [{"cron": "0 14 * * *"}]. Pacific time. title: Descriptive name for this automation. product_id: Link to a product in the products table. slideshow_hooks: Hook/topic templates the AI rotates through. style: Natural-language prompt controlling text items, fonts, sizes, positions, tone. language: Language for generated content (default "English"). tiktok_post_settings: TikTok posting config (caption, visibility, auto_post, etc.). image_settings: Image and display config (aspect_ratio, overlays, collections, etc.). |
| list_automationsA | List all automations belonging to the authenticated user. |
| get_automationA | Get full details of a single automation. Args: automation_id: The automation UUID. |
| update_automationA | Update automation settings, or pause/unpause it. To pause: set action="pause". To unpause: set action="unpause". For config updates, set the fields you want to change. Args: automation_id: The automation UUID. action: "pause" or "unpause" (mutually exclusive with other fields). title: Update the title. slideshow_hooks: Replace the hooks list. style: Update the style prompt. language: Update the language. tiktok_account_id: Change target TikTok account. tiktok_post_settings: Update TikTok posting settings. product_id: Change linked product. image_settings: Update image/collection settings. |
| delete_automationA | Permanently delete an automation and all its scheduled jobs. Args: automation_id: The automation UUID. |
| run_automationA | Trigger a one-off slideshow generation using the automation's saved settings. Does not affect the cron schedule. To find the video, note the time before calling, then poll list_videos with automation_id and created_after filters. Args: automation_id: The automation UUID. hook: Override the hook/topic for this single run. mode: "export" (default, generates video) or "draft_only" (no video). |
| add_scheduleA | Add a new cron schedule to an automation. Args: automation_id: The automation UUID. cron: Cron expression in Pacific time, e.g. "0 14 * * *" for 2pm daily. |
| update_scheduleA | Update one or more schedule jobs on an automation. For a single update, provide job_id and cron. For batch operations, provide actions array with {type, job_id, cron} objects. Args: automation_id: The automation UUID. job_id: The job to update (single update mode). cron: New cron expression (single update mode). actions: Array of batch operations [{type: "update"|"delete", job_id, cron}]. |
| delete_scheduleA | Remove a single schedule job from an automation. Args: automation_id: The automation UUID. job_id: The job to remove. |
| list_videosA | List rendered videos with optional filters. Args: automation_id: Filter by automation. video_type: "slideshow", "ugc", or "greenscreen". status: "completed", "processing", or "failed". finished: "true" or "false". failed: "true" or "false". created_after: ISO 8601 timestamp. created_before: ISO 8601 timestamp. limit: Max results (default 20, max 100). offset: Pagination offset. |
| get_videoB | Get full details for a single video including slideshow images and TikTok publish status. Args: video_id: The video ID. |
| get_video_analyticsA | Get TikTok post analytics for a published video (views, likes, comments, shares, bookmarks). The video must have been published to TikTok. Args: video_id: The video ID. |
| publish_video_via_automationA | Publish a completed video to TikTok using the automation's saved settings. The video must be linked to an automation. For standalone publishing, use publish_to_tiktok instead. Args: video_id: The video ID (must be completed). post_mode: "DIRECT_POST" or "MEDIA_UPLOAD" (TikTok draft). Defaults to automation's setting. |
| publish_to_tiktokA | Publish a completed video to TikTok with all settings provided directly (no automation needed). Note: TikTok limits 6 publishes per 24 hours. Use MEDIA_UPLOAD (draft) to avoid this. Args: video_id: The video to publish (must be completed). tiktok_account_id: Target TikTok account. upload_type: "slides" (photo post, default) or "video" (.mp4). caption: Post title/caption (max 89 chars for slideshows). description: Description/hashtags (max 4000 chars). post_mode: "DIRECT_POST" (default) or "MEDIA_UPLOAD" (draft). visibility: "PUBLIC_TO_EVERYONE", "SELF_ONLY", "MUTUAL_FOLLOW_FRIENDS", "FOLLOWER_OF_CREATOR". allow_comments: Allow comments (default true). allow_duet: Allow duets (default true). allow_stitch: Allow stitches (default true). auto_music: Let TikTok add trending music (default true, slideshows only). disclose_video_content: Disclose video content. disclose_brand_organic: Disclose brand organic. disclose_branded_content: Disclose branded content. slideshow_image_urls: Override slideshow images with custom URLs. |
| list_tiktok_accountsA | List TikTok accounts connected via OAuth. |
| list_tiktok_postsA | List TikTok posts with engagement metrics and aggregated statistics. Args: timeframe: 7, 30, 90, or "all" (default 30). sort: "recent", "views", "likes", "shares", "comments", "bookmarks". tiktok_account_id: Filter by account. limit: Default 20, max 200. offset: Pagination offset. |
| list_collectionsA | List all image collections belonging to the authenticated user. |
| get_collection_imagesA | Get images in a collection, paginated. Args: collection_id: The collection ID. limit: Max results (default 100, max 100). offset: Pagination offset. |
| list_library_nichesA | List all available niches in the slideshow library with profile counts. |
| search_libraryA | Search real TikTok slideshow profiles for inspiration and competitive research. At least one filter is required. Args: q: Text search across slide content. niche: Filter by niche (e.g. "fitness"). product_medium: Filter by product type. region: Account region code (e.g. "US"). audience_region: Audience country code (e.g. "US"). sort: "followers" (default) or "recent". limit: Default 3, max 3. offset: Pagination offset. |
| get_library_profileB | Get full details of a slideshow library profile including all slideshow images. Args: profile_id: The profile ID. |
| search_pinterestA | Search Pinterest for high-resolution images to use in slideshows. Paginated up to 5 pages per search query. Args: q: Search query (e.g. "aesthetic coffee"). cursor: Pagination cursor from a previous response. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 26 tools
Every tool has a clearly distinct purpose, and even near-overlapping pairs like generate_slideshow vs. create_slideshow or publish_video_via_automation vs. publish_to_tiktok are explicitly differentiated by AI/manual control and automation vs. direct publication. The descriptions eliminate ambiguity.
The naming is overwhelmingly consistent: verb_noun snake_case (list_automations, get_video, publish_to_tiktok). The only deviation is slideshow_status, which is a noun_noun format, but all other tools follow the pattern, making this a minor inconsistency.
With 26 tools, the server is on the heavier end. The broad domain of automation, slideshow generation, video management, and TikTok publishing justifies many tools, but some redundancy (e.g., delete_schedule duplicates update_schedule's batch delete) makes it feel slightly over-scoped.
Automation and schedule CRUD are well covered, and the creation-to-publishing pipeline works. However, there are no delete or update operations for videos or slideshows, and collections lack any management tools beyond listing. These gaps prevent full lifecycle management for generated content.