이 MCP로 할 수 있는 일
Drafts, validates, schedules, publishes, approves, and analyzes social posts across TikTok, Instagram, Threads, and YouTube Shorts.
도구
입력 스키마
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Direct https link to the image or video file. Must be publicly reachable.'}}}
입력 스키마
{'type': 'object', 'required': ['post_id'], 'properties': {'post_id': {'type': 'string', 'description': 'The scheduled post id to delete.'}}}
입력 스키마
{'type': 'object', 'required': ['content_hint'], 'properties': {'name': {'type': 'string', 'description': 'Optional label for the draft.'}, 'tone': {'enum': ['casual', 'professional', 'promotional'], 'type': 'string', 'default': 'casual', 'description': 'Voice for the draft.'}, 'platforms': {'type': 'array', 'items': {'enum': ['instagram', 'tiktok', 'youtube', 'threads', 'facebook'], 'type': 'string'}, 'description': 'Intended platforms, used to pick the caption length ceiling.'}, 'profile_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional accounts to pre-select on the draft. From sprkly_list_profiles.'}, 'content_hint': {'type': 'string', 'description': 'What the post should be about: a topic, phrase, or key message.'}}}
입력 스키마
{'type': 'object', 'required': ['automation_id'], 'properties': {'automation_id': {'type': 'string', 'description': 'The automation id to export.'}}}
입력 스키마
{'type': 'object'}
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'How many days back to analyse. Default 30.'}, 'profile_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Limit to these accounts. Omit for every account this connection can see.'}}}
입력 스키마
{'type': 'object'}
입력 스키마
{'type': 'object', 'required': ['post_id'], 'properties': {'post_id': {'type': 'string', 'description': 'The scheduled post id.'}}}
입력 스키마
{'type': 'object', 'required': ['post_id'], 'properties': {'post_id': {'type': 'string', 'description': 'The scheduled post id.'}}}
입력 스키마
{'type': 'object', 'required': ['profile_id'], 'properties': {'profile_id': {'type': 'string', 'description': 'The TikTok profile id to query, from sprkly_list_profiles.'}}}
입력 스키마
{'type': 'object', 'required': ['template'], 'properties': {'post_id': {'type': 'string', 'description': 'The published post to watch. Needed for a keyword or every-comment trigger.'}, 'template': {'type': 'object', 'description': 'The template, as an object or as the file text.'}, 'profile_id': {'type': 'string', 'description': 'The Instagram account to set it up on. Leave this out to only check the template.'}}}
입력 스키마
{'type': 'object'}
입력 스키마
{'type': 'object'}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum posts to return.'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor. Pass the nextCursor value from a previous response.'}, 'status': {'enum': ['draft', 'pending_approval', 'scheduled', 'posted', 'failed'], 'type': 'string', 'description': 'Filter by status.'}}}
입력 스키마
{'type': 'object', 'required': ['post_id'], 'properties': {'note': {'type': 'string', 'description': 'Optional context for the reviewer.'}, 'post_id': {'type': 'string', 'description': 'The draft post id to submit.'}}}
입력 스키마
{'type': 'object', 'properties': {'title': {'type': 'string', 'description': 'Post title. Required for YouTube (max 100 characters) and TikTok (max 150 characters).'}, 'caption': {'type': 'string', 'description': 'Post caption, max 2200 characters.'}, 'category': {'type': 'string', 'description': 'Optional content category, e.g. "fitness".'}, 'media_id': {'type': 'string', 'description': 'Id of a single media file already uploaded to sprkly. Shorthand for a one-item media_ids.'}, 'media_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Ids of media files already uploaded to sprkly, in slide order. Array order is the published order. Use these when the user already has media in sprkly, or when one file is going on several posts; for a link the user just gave you, media_urls is fewer steps. Every photo in a set must be the SAME shape or the call is refused: export them all at 1080x1920 (9:16), 1080x1440 (3:4), 1080x1350 (4:5) or 1080x1080 (1:1). Instagram takes at most 10 slides; TikTok photo sets take up to 35.'}, 'platforms': {'type': 'array', 'items': {'enum': ['instagram', 'tiktok', 'youtube', 'threads', 'facebook'], 'type': 'string'}, 'description': 'Platforms to publish to. A platform with exactly one connected account is targeted directly; one with several makes the tool answer needsAccountChoice so the user can pick.'}, 'media_urls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Publicly reachable image or video URLs to attach, in slide order. Pass links through for ANY platform. Instagram and Threads fetch them directly; for TikTok, YouTube and Facebook sprkly downloads the file into its own storage while scheduling, so a link works there too and any problem with it is reported now, in this call. Google Drive and Dropbox share links are converted automatically. JPEG, PNG, WebP, GIF, MP4, MOV and WebM only: AVIF and HEIC (the iPhone camera default) are refused with re-export instructions, because sprkly cannot convert them. Each file must be publicly reachable and under 50 MB.'}, 'profile_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Specific accounts to publish to, from sprkly_list_profiles. When given, this list IS the target set — platforms are not fanned out.'}, 'all_accounts': {'type': 'boolean', 'default': False, 'description': 'Explicitly post to EVERY connected account on every listed platform, skipping the needsAccountChoice question. Only pass true when the user has said they want all accounts.'}, 'platform_meta': {'type': 'object', 'properties': {'tiktok': {'type': 'object', 'properties': {'title': {'type': 'string', 'description': 'Optional TikTok-only title, used instead of the top-level title on TikTok. Trimmed to 150 characters. The top-level title is still required even when you set this one.'}, 'brandName': {'type': 'string', 'description': 'Optional brand name shown with the commercial content disclosure.'}, 'disableDuet': {'type': 'boolean', 'description': 'Disallow duets of the video.'}, 'autoAddMusic': {'type': 'boolean', 'default': True, 'description': "Attach TikTok's recommended music. Photo posts only; defaults true."}, 'privacyLevel': {'enum': ['PUBLIC_TO_EVERYONE', 'MUTUAL_FOLLOW_FRIENDS', 'FOLLOWER_OF_CREATOR', 'SELF_ONLY'], 'type': 'string', 'description': "REQUIRED for TikTok posts. Must be one of this creator's allowed options: fetch them with sprkly_get_tiktok_posting_options."}, 'disableStitch': {'type': 'boolean', 'description': 'Disallow stitches of the video.'}, 'disableComment': {'type': 'boolean', 'description': 'Turn off comments on the post.'}, 'brandContentOptIn': {'type': 'boolean', 'description': 'Branded content: the post promotes a third party. Cannot be combined with privacyLevel SELF_ONLY.'}, 'brandOrganicOptIn': {'type': 'boolean', 'description': "Organic branding: the post promotes the creator's own brand."}, 'commercialContentDisclosure': {'type': 'boolean', 'description': 'Declare the post as commercial content. When true, at least one of brandContentOptIn or brandOrganicOptIn must also be true.'}}, 'description': 'TikTok publishing options. privacyLevel is REQUIRED for every TikTok post.'}, 'instagram': {'type': 'object', 'properties': {'surface': {'enum': ['feed', 'story'], 'type': 'string', 'description': "Where to publish. 'story' posts to the account's Story instead of the feed: it disappears after 24 hours, takes exactly ONE photo or video, and sends no caption — Instagram Stories have no caption field. Omit for a normal feed post or Reel. The media cannot decide this: a 9:16 video is a Reel or a Story, so ask the user which they want rather than guessing."}}, 'description': 'Instagram publishing options.'}}, 'description': 'Platform-specific publishing options, keyed by platform.'}, 'scheduled_time': {'type': 'string', 'description': 'ISO 8601 timestamp to publish at. Must be in the future. If omitted the post goes out on the next publisher run, about a minute from now — there is no smart slot-picking, so pass an explicit time unless the user wants it published immediately. sprkly_get_analytics can suggest one.'}}}
입력 스키마
{'type': 'object', 'required': ['post_id'], 'properties': {'caption': {'type': 'string', 'description': 'Replacement caption, max 2200 characters.'}, 'post_id': {'type': 'string', 'description': 'The scheduled post id.'}, 'media_id': {'type': 'string', 'description': 'Replacement sprkly media file id. Shorthand for a one-item media_ids.'}, 'media_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Replacement media, in slide order. Replaces the whole set, it does not append — pass every slide you want the post to keep.'}, 'profile_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Replacement target accounts. Platforms are re-derived from them.'}, 'scheduled_time': {'type': 'string', 'description': 'New ISO 8601 publish time. Must be in the future.'}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'files': {'type': 'array', 'items': {'type': 'object', 'required': ['filename', 'sha256', 'size_bytes'], 'properties': {'sha256': {'type': 'string', 'description': 'SHA-256 of the file, 64 hex characters.'}, 'filename': {'type': 'string', 'description': 'The file name, for example 01.jpg.'}, 'size_bytes': {'type': 'integer', 'minimum': 1, 'description': 'Exact file size in bytes.'}}}, 'maxItems': 35, 'minItems': 1, 'description': 'LINK MODE. One entry per file, in slide order. Get the values in Bash: sha256sum 01.jpg (first 64 characters) and stat -c %s 01.jpg. 1 to 35 entries.'}, 'filename': {'type': 'string', 'description': 'INLINE MODE. The file name, for example 01.jpg. Used in the response and in error messages. The bytes decide the real type. Ignored when files is sent.'}, 'data_base64': {'type': 'string', 'description': 'INLINE MODE, tiny files only. The file contents, base64 encoded. Standard or URL-safe alphabet, with or without a data: prefix. Ignored when files is sent.'}, 'content_type': {'type': 'string', 'description': 'INLINE MODE. Optional MIME hint such as image/jpeg. sprkly sniffs the bytes and that wins.'}}}
입력 스키마
{'type': 'object', 'required': ['caption', 'platforms'], 'properties': {'title': {'type': 'string', 'description': 'Post title. Required for YouTube, max 100 characters.'}, 'caption': {'type': 'string', 'description': 'The caption to check.'}, 'hashtags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Hashtags posted alongside the caption, if they are not already in it.'}, 'platforms': {'type': 'array', 'items': {'enum': ['instagram', 'tiktok', 'youtube', 'threads', 'facebook'], 'type': 'string'}, 'description': 'Target platforms to check against.'}, 'platformMeta': {'type': 'object', 'description': 'Platform-specific publishing options, keyed by platform.'}, 'mediaUrlsCount': {'type': 'integer', 'minimum': 0, 'description': 'How many images or videos will be attached. Instagram and TikTok require at least one.'}}}
최근 도구 변경
유사한 MCP 서버
captapi
Retrieves social media profiles, posts, engagement metrics, comments, marketplace listings, events, and Meta advertising data acr…
SendIt
Plans, generates, approves, schedules, publishes, and analyzes social media content across LinkedIn, Instagram, Threads, TikTok, …
aidelly
Supports agency social media operations including content creation, approvals, scheduling, publishing, repurposing, analytics, ec…
LinkedIn MCP Server (Salesbot)
Supports LinkedIn lead discovery, contact enrichment, CRM pipelines, campaign sequencing, message approval and human-reviewed out…
excalibur-mcp
Creates, schedules, manages, and measures formatted posts for X, with OAuth, snippets, writing voice, and post performance tracki…
uplika
Publishes and manages posts, replies, messages, media, and automations across connected social platforms.
Prowlo — Reddit & X for AI agents
Indexes and searches Reddit and X-related social data, discovers communities, monitors keywords, finds engagement opportunities, …
ChiefLab
Runs approval-gated product launch workflows with channel-specific marketing drafts, social publishing, email actions, measuremen…