socialclaw
What this MCP does
Connects social accounts to schedule, publish, moderate, and analyze content across platforms including Instagram, LinkedIn, TikTok, YouTube, and Reddit.
Tools
Input schema
{'type': 'object', 'properties': {'provider': {'type': 'string', 'description': 'Optional provider filter.'}, 'accountId': {'type': 'string', 'description': 'Optional account id.'}}}
Input schema
{'type': 'object', 'required': ['schedule'], 'properties': {'schedule': {'type': 'object', 'description': 'SocialClaw schedule document. Minimal shape: { timezone, posts: [{ account, name, description, publish_at, media_link? }] }. Campaign documents use { timezone, campaigns: [...] }. Per-post provider settings go in settings, e.g. TikTok inbox mode: settings: { tiktokPostMode: "draft" } sends the media to TikTok\'s inbox notification flow instead of publishing, and the creator finishes the post inside the TikTok app.', 'additionalProperties': True}, 'idempotencyKey': {'type': 'string', 'description': 'Stable key to deduplicate retries.'}}}
Input schema
{'type': 'object', 'required': ['postId'], 'properties': {'postId': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['provider'], 'properties': {'chatId': {'type': 'string', 'description': 'Telegram chat target, e.g. @yourchannel (telegram only).'}, 'botToken': {'type': 'string', 'description': 'Telegram bot token (telegram only).'}, 'provider': {'type': 'string', 'description': 'Provider to connect.'}, 'webhookUrl': {'type': 'string', 'description': 'Discord channel webhook URL (discord only).'}}}
Input schema
{'type': 'object', 'required': ['account', 'commentId'], 'properties': {'account': {'type': 'string', 'description': 'Instagram connected-account id or handle.'}, 'commentId': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['scope', 'id'], 'properties': {'id': {'type': 'string'}, 'scope': {'enum': ['post', 'account', 'run'], 'type': 'string'}, 'window': {'type': 'string', 'description': 'Optional analytics window, e.g. 7d.'}}}
Input schema
{'type': 'object', 'required': ['account'], 'properties': {'days': {'type': 'number', 'description': 'Window in days (2-30, default 14).'}, 'metric': {'type': 'string', 'description': 'Account metric, default reach (e.g. reach, profile_views, accounts_engaged).'}, 'account': {'type': 'string', 'description': 'Instagram connected-account id or handle.'}}}
Input schema
{'type': 'object', 'required': ['account', 'mediaId'], 'properties': {'after': {'type': 'string', 'description': 'Pagination cursor from a previous response.'}, 'limit': {'type': 'number', 'description': 'Max comments to return (default 25, capped at 100).'}, 'account': {'type': 'string', 'description': 'Instagram connected-account id or handle.'}, 'mediaId': {'type': 'string', 'description': 'The IG media id from list_instagram_media.'}}}
Input schema
{'type': 'object', 'required': ['account', 'mediaId'], 'properties': {'account': {'type': 'string', 'description': 'Instagram connected-account id or handle.'}, 'mediaId': {'type': 'string'}, 'mediaProductType': {'type': 'string', 'description': 'Optional: FEED, REELS, or STORY â\x80\x94 refines which metrics are requested.'}}}
Input schema
{'type': 'object', 'required': ['account', 'conversationId'], 'properties': {'after': {'type': 'string', 'description': 'Pagination cursor from a previous response.'}, 'limit': {'type': 'number', 'description': 'Max messages (default 25, capped at 100).'}, 'account': {'type': 'string', 'description': 'Instagram connected-account id or handle.'}, 'conversationId': {'type': 'string', 'description': 'Conversation id from list_instagram_conversations.'}}}
Input schema
{'type': 'object', 'required': ['account'], 'properties': {'account': {'type': 'string', 'description': 'Instagram connected-account id or handle.'}}}
Input schema
{'type': 'object', 'required': ['postId'], 'properties': {'postId': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['account', 'commentId'], 'properties': {'hidden': {'type': 'boolean', 'description': 'true to hide (default), false to unhide.'}, 'account': {'type': 'string', 'description': 'Instagram connected-account id or handle.'}, 'commentId': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'provider': {'type': 'string', 'description': 'Optional provider filter.'}}}
Input schema
{'type': 'object', 'properties': {'kind': {'enum': ['image', 'video'], 'type': 'string', 'description': 'Filter by media kind: image or video.'}, 'mime': {'type': 'string', 'description': 'Optional mime prefix filter, e.g. video/mp4.'}, 'sort': {'enum': ['created_desc', 'created_asc'], 'type': 'string', 'description': 'created_desc (default, newest first) or created_asc.'}, 'limit': {'type': 'number', 'description': 'Maximum assets to return. Defaults to 24, capped at 48.'}, 'query': {'type': 'string', 'description': 'Optional text match over filename, id, kind, mime, or url.'}}}
Input schema
{'type': 'object', 'required': ['account'], 'properties': {'after': {'type': 'string', 'description': 'Pagination cursor from a previous response.'}, 'limit': {'type': 'number', 'description': 'Max conversations (default 25, capped at 100).'}, 'account': {'type': 'string', 'description': 'Instagram connected-account id or handle.'}}}
Input schema
{'type': 'object', 'required': ['account'], 'properties': {'after': {'type': 'string', 'description': 'Pagination cursor from a previous response.'}, 'limit': {'type': 'number', 'description': 'Max media to return (default 25, capped at 100).'}, 'account': {'type': 'string', 'description': 'Instagram connected-account id or handle.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max mentions (default 30, capped at 100).'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Maximum posts to return. Defaults to 20 and is capped at 50.'}, 'runId': {'type': 'string'}, 'offset': {'type': 'number', 'description': 'Offset for paging through results.'}, 'status': {'type': 'string', 'description': 'e.g. scheduled, published, action_required, failed, canceled.'}, 'account': {'type': 'string', 'description': 'Account handle filter.'}, 'provider': {'type': 'string'}, 'campaignId': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['postId'], 'properties': {'postId': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['schedule'], 'properties': {'schedule': {'type': 'object', 'description': 'SocialClaw schedule document. Minimal shape: { timezone, posts: [{ account, name, description, publish_at, media_link? }] }. Campaign documents use { timezone, campaigns: [...] }. Per-post provider settings go in settings, e.g. TikTok inbox mode: settings: { tiktokPostMode: "draft" } sends the media to TikTok\'s inbox notification flow instead of publishing, and the creator finishes the post inside the TikTok app.', 'additionalProperties': True}}}
Input schema
{'type': 'object', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'description': 'Draft run id.'}, 'startAt': {'type': 'string', 'description': 'Optional ISO-8601 publish start time.'}}}
Input schema
{'type': 'object', 'required': ['account', 'conversationId', 'messageId', 'recipientId'], 'properties': {'account': {'type': 'string', 'description': 'Instagram connected-account id or handle.'}, 'reaction': {'type': 'string', 'description': 'Reaction name, default love.'}, 'messageId': {'type': 'string'}, 'recipientId': {'type': 'string', 'description': "The other participant's Instagram-scoped user id (IGSID)."}, 'conversationId': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['postId'], 'properties': {'postId': {'type': 'string', 'description': 'The published post id to refresh.'}, 'window': {'type': 'string', 'description': 'Optional analytics window, e.g. 7d (default lifetime).'}}}
Input schema
{'type': 'object', 'required': ['account', 'commentId', 'message'], 'properties': {'account': {'type': 'string', 'description': 'Instagram connected-account id or handle.'}, 'message': {'type': 'string', 'description': 'The reply text.'}, 'commentId': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['postId'], 'properties': {'postId': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['runId'], 'properties': {'runId': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['account', 'conversationId', 'recipientId'], 'properties': {'tag': {'type': 'string', 'description': 'Optional message tag, e.g. HUMAN_AGENT, to reply outside the 24h window.'}, 'text': {'type': 'string', 'description': 'Message body (omit when sending an attachment).'}, 'account': {'type': 'string', 'description': 'Instagram connected-account id or handle.'}, 'recipientId': {'type': 'string', 'description': "The recipient's Instagram-scoped user id (IGSID)."}, 'attachment_url': {'type': 'string', 'description': 'Public URL of an image/video to send as an attachment.'}, 'conversationId': {'type': 'string', 'description': 'Conversation id (for routing/storage).'}, 'attachment_type': {'enum': ['image', 'video', 'audio'], 'type': 'string', 'description': 'Attachment type: image (default), video, or audio.'}}}
Input schema
{'type': 'object', 'required': ['filename'], 'properties': {'filename': {'type': 'string', 'description': 'Filename including extension, e.g. launch.png.'}, 'sourceUrl': {'type': 'string', 'description': 'Public URL to download the media from.'}, 'contentBase64': {'type': 'string', 'description': 'Base64-encoded file content (alternative to sourceUrl).'}}}
Input schema
{'type': 'object', 'required': ['schedule'], 'properties': {'schedule': {'type': 'object', 'description': 'SocialClaw schedule document. Minimal shape: { timezone, posts: [{ account, name, description, publish_at, media_link? }] }. Campaign documents use { timezone, campaigns: [...] }. Per-post provider settings go in settings, e.g. TikTok inbox mode: settings: { tiktokPostMode: "draft" } sends the media to TikTok\'s inbox notification flow instead of publishing, and the creator finishes the post inside the TikTok app.', 'additionalProperties': True}}}
Input schema
{'type': 'object', 'properties': {'provider': {'type': 'string', 'description': 'Optional provider to check connection health for.'}}}
Input schema
{'type': 'object', 'properties': {}}
Recent tool changes
Similar MCP servers
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…