MCP 서버

SocialHive

pro.socialhive/platform
마케팅 및 광고 소셜 미디어 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Creates, adapts, schedules, and publishes social media content while managing media, connected channels, workflows, and performance analytics.

adapt_post
Adapt post
Rewrite existing copy for another platform's length, tone and conventions. Metered.
입력 스키마
{'type': 'object', 'required': ['text', 'platform'], 'properties': {'text': {'type': 'string', 'maxLength': 8000, 'minLength': 1}, 'platform': {'enum': ['linkedin', 'x', 'bluesky', 'mastodon', 'instagram', 'facebook', 'threads', 'tiktok', 'youtube', 'pinterest', 'gbp'], 'type': 'string'}}}
출력 스키마
{'type': 'object', 'required': ['adaptations'], 'properties': {'adaptations': {'type': 'object'}}, 'description': 'Adapted post copy keyed by channel platform'}
create_article
Create article
Save a long-form article or blog post (e.g. generated by ChatGPT, Claude, or an LLM) into the workspace article library. Quota: maximum 10 articles per month via MCP. Can be linked into syndication workflows or published to CMS targets.
입력 스키마
{'type': 'object', 'required': ['title', 'body', 'status'], 'properties': {'body': {'type': 'string', 'minLength': 1, 'description': 'Full Markdown body of the article'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Article headline or title'}, 'status': {'enum': ['outline', 'drafting', 'ready', 'published'], 'type': 'string', 'default': 'ready', 'description': 'Article status: ready (default), drafting, outline, or published'}, 'summary': {'type': 'string', 'maxLength': 2000, 'description': 'Brief synopsis, excerpt, or meta description for SEO and social snippets'}, 'seoTitle': {'type': 'string', 'maxLength': 150, 'description': 'Optional SEO title'}}}
출력 스키마
{'type': 'object', 'required': ['id', 'title', 'status', 'words'], 'properties': {'id': {'type': 'string', 'description': 'Article ID'}, 'title': {'type': 'string', 'description': 'Article title'}, 'words': {'type': 'number', 'description': 'Word count'}, 'status': {'type': 'string'}, 'reviewUrl': {'type': 'string', 'description': 'URL to view or edit the article in SocialHive'}, 'monthlyRemaining': {'type': 'number', 'description': 'Remaining articles allowed via MCP this month (out of 10)'}}, 'description': 'Created article details'}
create_post
Create post
Create a post for LinkedIn, X, Instagram, etc. Supports text copy, image attachments (single or multi-image gallery), and video. For image-only or video-only posts, body can be left empty as long as mediaIds has at least one asset. Without scheduledAt it is saved as a draft. With scheduledAt (ISO 8601) it is scheduled.
입력 스키마
{'type': 'object', 'required': ['channelIds'], 'properties': {'body': {'type': 'string', 'maxLength': 20000, 'description': 'Post copy text (optional if mediaIds is provided)'}, 'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'maxItems': 20}, 'title': {'type': 'string', 'maxLength': 200}, 'thread': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20000}, 'maxItems': 50}, 'mediaIds': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Array of media asset UUIDs returned by import_media or list_media'}, 'overrides': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string', 'maxLength': 20000}}, 'channelIds': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'minItems': 1, 'description': "Destination channel UUIDs or platform names (e.g. ['linkedin', 'instagram'])"}, 'scheduledAt': {'type': 'string', 'description': "ISO 8601 UTC timestamp to schedule the post (e.g. '2026-09-21T11:00:00Z'). Without this, saves as a draft."}}}
출력 스키마
{'type': 'object', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Post ID'}, 'status': {'type': 'string'}, 'channels': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Created post draft or queue entry'}
generate_image
Generate image
Generate an image into the media library and return its asset id (attach with create_post.mediaIds). quality 'free' uses the free provider; 'hq' costs credits.
입력 스키마
{'type': 'object', 'required': ['prompt'], 'properties': {'alt': {'type': 'string', 'maxLength': 300}, 'prompt': {'type': 'string', 'maxLength': 2000, 'minLength': 3}, 'quality': {'enum': ['free', 'fast', 'hq'], 'type': 'string'}, 'aspectRatio': {'enum': ['1:1', '4:5', '16:9', '9:16'], 'type': 'string'}}}
출력 스키마
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Public URL of generated image'}, 'mediaId': {'type': 'string'}}, 'description': 'Generated image media details'}
generate_text
Generate text
Write social copy in the workspace brand voice. Returns one or more variants. Metered (free daily allowance, then 1 credit).
입력 스키마
{'type': 'object', 'required': ['topic'], 'properties': {'topic': {'type': 'string', 'maxLength': 2000, 'minLength': 1}, 'format': {'enum': ['single', 'thread'], 'type': 'string'}, 'language': {'type': 'string', 'maxLength': 40}, 'variants': {'type': 'integer', 'maximum': 3, 'minimum': 1}, 'platforms': {'type': 'array', 'items': {'enum': ['linkedin', 'x', 'bluesky', 'mastodon', 'instagram', 'facebook', 'threads', 'tiktok', 'youtube', 'pinterest', 'gbp'], 'type': 'string'}, 'maxItems': 6, 'minItems': 1}}}
출력 스키마
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'Generated copy'}, 'model': {'type': 'string'}, 'tokens': {'type': 'number'}}, 'description': 'Generated post copy and metadata'}
get_analytics
Get analytics
Workspace performance for the last N days: impressions, engagements, posts, follower change, top posts and recommended posting slots.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'maximum': 365, 'minimum': 1}}}
출력 스키마
{'type': 'object', 'required': ['timezone', 'summary', 'topPosts'], 'properties': {'summary': {'type': 'object'}, 'timezone': {'type': 'string'}, 'topPosts': {'type': 'array', 'items': {'type': 'object'}}, 'recommendedSlots': {'type': 'array', 'items': {'type': 'object'}}}, 'description': 'Aggregated performance summary and recommended posting slots'}
get_article
Get article
Get full details and Markdown body of an article in the workspace library by its ID.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'required': ['articleId'], 'properties': {'articleId': {'type': 'string', 'description': 'Article UUID'}}}
출력 스키마
{'type': 'object', 'required': ['id', 'title', 'body', 'status', 'words'], 'properties': {'id': {'type': 'string'}, 'body': {'type': 'string'}, 'title': {'type': 'string'}, 'words': {'type': 'number'}, 'status': {'type': 'string'}, 'summary': {'type': 'string', 'nullable': True}, 'seoTitle': {'type': 'string', 'nullable': True}, 'createdAt': {'type': 'string'}, 'reviewUrl': {'type': 'string'}, 'updatedAt': {'type': 'string'}}, 'description': 'Full article details with Markdown body'}
get_connected_social_accounts
Get connected social accounts
Get all connected social media accounts (LinkedIn, X, YouTube, Instagram, Facebook, TikTok, Threads) for the workspace with account IDs, platforms, connection status, and automationEnabled status.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}}
출력 스키마
{'type': 'object', 'properties': {'result': {'type': 'object', 'description': 'Structured output from tool execution'}}, 'description': 'Output payload for get_connected_social_accounts'}
get_post
Get post
Get one post with its body, per-channel variants, status and metrics.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'required': ['postId'], 'properties': {'postId': {'type': 'string'}}}
출력 스키마
{'type': 'object', 'required': ['id', 'body', 'status', 'variants'], 'properties': {'id': {'type': 'string'}, 'body': {'type': 'string'}, 'title': {'type': 'string'}, 'status': {'type': 'string'}, 'metrics': {'type': 'object', 'nullable': True}, 'variants': {'type': 'array', 'items': {'type': 'object'}}, 'publishedAt': {'type': 'string', 'nullable': True}, 'scheduledAt': {'type': 'string', 'nullable': True}}, 'description': 'Full post details with variants and metrics'}
import_media
Import media
Import an image or video from an external public URL into the workspace media library and return its asset id (to attach with create_post.mediaIds).
외부 접근 가능
입력 스키마
{'type': 'object', 'required': ['url'], 'properties': {'alt': {'type': 'string', 'maxLength': 400}, 'url': {'type': 'string', 'format': 'uri'}, 'mime': {'type': 'string', 'maxLength': 50}, 'label': {'type': 'string', 'maxLength': 120}}}
출력 스키마
{'type': 'object', 'required': ['assetId', 'kind', 'url'], 'properties': {'url': {'type': 'string'}, 'kind': {'type': 'string'}, 'assetId': {'type': 'string'}}, 'description': 'Imported media asset details'}
list_articles
List articles
List long-form articles in the workspace library with their id, title, status, word count, summary, and last updated time.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Max number of articles to return (default 20)'}, 'status': {'enum': ['outline', 'drafting', 'ready', 'published'], 'type': 'string', 'description': 'Filter by article status'}}}
출력 스키마
{'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'status', 'words'], 'properties': {'id': {'type': 'string', 'description': 'Article ID'}, 'url': {'type': 'string'}, 'title': {'type': 'string', 'description': 'Article title'}, 'words': {'type': 'number', 'description': 'Word count'}, 'status': {'type': 'string', 'description': 'Status (outline, drafting, ready, published)'}, 'summary': {'type': 'string', 'nullable': True, 'description': 'Summary or brief'}, 'createdAt': {'type': 'string'}, 'updatedAt': {'type': 'string'}}}, 'description': 'List of articles in the workspace library'}
list_channels
List channels
List the social accounts connected to this workspace with their ids, platform, handle, health, and automationEnabled status. Use channel ids when creating posts.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}}
출력 스키마
{'type': 'array', 'items': {'type': 'object', 'required': ['id', 'platform', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Channel ID'}, 'kind': {'type': 'string', 'description': 'Channel kind'}, 'handle': {'type': 'string', 'description': 'Account handle'}, 'status': {'type': 'string', 'description': 'Status (active, disconnected, error)'}, 'platform': {'type': 'string', 'description': 'Platform name (linkedin, x, instagram, etc.)'}, 'followers': {'type': 'number', 'description': 'Follower count'}, 'displayName': {'type': 'string', 'description': 'Display name'}}}, 'description': 'Array of connected channels with status, platform, and follower counts'}
list_media
List media
List or search media assets (images, videos) in the workspace media library. Returns asset ids to attach with create_post.mediaIds.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'q': {'type': 'string', 'maxLength': 100}, 'kind': {'enum': ['image', 'video', 'document'], 'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}}}
출력 스키마
{'type': 'object', 'required': ['assets'], 'properties': {'assets': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'kind', 'url'], 'properties': {'id': {'type': 'string'}, 'alt': {'type': 'string'}, 'url': {'type': 'string'}, 'kind': {'type': 'string'}, 'label': {'type': 'string'}, 'width': {'type': 'number'}, 'height': {'type': 'number'}, 'durationSec': {'type': 'number'}}}}}, 'description': 'List of workspace media assets'}
list_node_types
List node types
Catalog of workflow node types (triggers, sources, AI, control, destinations) with their config schemas. Read before calling propose_workflow.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'group': {'enum': ['trigger', 'source', 'ai', 'control', 'dest'], 'type': 'string'}}}
출력 스키마
{'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'category'], 'properties': {'id': {'type': 'string'}, 'title': {'type': 'string'}, 'category': {'type': 'string'}}}, 'description': 'Available workflow node types'}
list_posts
List posts
List posts in the workspace, newest first. Filter by status (draft, pending_approval, scheduled, published, failed) or free text.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'q': {'type': 'string', 'maxLength': 120}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'status': {'enum': ['draft', 'pending_approval', 'requires_edits', 'scheduled', 'publishing', 'published', 'failed'], 'type': 'string'}}}
출력 스키마
{'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status', 'channels'], 'properties': {'id': {'type': 'string', 'description': 'Post ID'}, 'title': {'type': 'string', 'description': 'Post title'}, 'status': {'type': 'string', 'description': 'Status'}, 'excerpt': {'type': 'string'}, 'channels': {'type': 'array', 'items': {'type': 'string'}}, 'publishedAt': {'type': 'string', 'nullable': True}, 'scheduledAt': {'type': 'string', 'nullable': True}}}, 'description': 'List of posts matching filter criteria'}
list_sources
List sources
List content data sources (RSS feeds, sitemaps, web pages, documents) with counts of unused items.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}}
출력 스키마
{'type': 'array', 'items': {'type': 'object', 'required': ['id', 'type'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'type': {'type': 'string'}, 'unusedItems': {'type': 'number'}}}, 'description': 'Connected content ingestion sources'}
list_workflows
List workflows
List automation workflows with status and last run.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}}
출력 스키마
{'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'active'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'active': {'type': 'boolean'}, 'runsCount': {'type': 'number'}}}, 'description': 'Automation workflows in the workspace'}
propose_workflow
Propose workflow
Propose an automation workflow as a graph (nodes + edges). The graph is validated and saved as a DRAFT version that a human must review and activate in Workflow Studio; it never runs on its own. Call list_node_types first for valid node types and config schemas.
입력 스키마
{'type': 'object', 'required': ['name', 'description', 'graph'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'graph': {'type': 'object', 'required': ['nodes', 'edges'], 'properties': {'edges': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'source', 'target'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'label': {'type': 'string', 'maxLength': 40}, 'source': {'type': 'string', 'minLength': 1}, 'target': {'type': 'string', 'minLength': 1}, 'sourceHandle': {'type': ['string', 'null']}, 'targetHandle': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'maxItems': 120}, 'nodes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'type', 'position', 'config'], 'properties': {'id': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'type': {'type': 'string', 'minLength': 1}, 'label': {'type': 'string', 'maxLength': 80}, 'config': {'type': 'object', 'default': {}, 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'position': {'type': 'object', 'required': ['x', 'y'], 'properties': {'x': {'type': 'number'}, 'y': {'type': 'number'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'maxItems': 60}, 'config': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}, 'description': {'type': 'string', 'default': '', 'maxLength': 500}}}
출력 스키마
{'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'description': 'Workflow ID'}, 'url': {'type': 'string'}, 'name': {'type': 'string'}}, 'description': 'Created draft workflow'}
publish_post
Publish post
Publish an existing draft now (queues it immediately). Approval policy still applies — the post may land in pending_approval instead.
외부 접근 가능
입력 스키마
{'type': 'object', 'required': ['postId'], 'properties': {'postId': {'type': 'string', 'description': 'Post UUID to publish'}}}
출력 스키마
{'type': 'object', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Post ID'}, 'status': {'type': 'string'}}, 'description': 'Publication result'}
schedule_post
Schedule post
Schedule an existing draft (or move a scheduled post) to an ISO 8601 time. Approval policy still applies.
입력 스키마
{'type': 'object', 'required': ['postId', 'scheduledAt'], 'properties': {'postId': {'type': 'string', 'description': 'Post UUID'}, 'scheduledAt': {'type': 'string', 'description': 'ISO 8601 UTC datetime string'}}}
출력 스키마
{'type': 'object', 'required': ['id', 'scheduledAt', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Post ID'}, 'status': {'type': 'string'}, 'scheduledAt': {'type': 'string', 'description': 'Scheduled ISO timestamp'}}, 'description': 'Confirmed schedule details'}
search_source_items
Search source items
Fetch recent items from one data source (title, url, excerpt). Use them as raw material for posts.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'required': ['sourceId'], 'properties': {'q': {'type': 'string', 'maxLength': 120}, 'limit': {'type': 'integer', 'maximum': 20, 'minimum': 1}, 'sourceId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'unusedOnly': {'type': 'boolean'}}}
출력 스키마
{'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}, 'publishedAt': {'type': 'string', 'nullable': True}}}, 'description': 'Matching ingested source items'}
변경됨
get_connected_social_accounts
2026년 10월 1일 2:42 AM
변경됨
list_channels
2026년 10월 1일 2:42 AM
추가됨
propose_workflow
2026년 9월 25일 2:40 AM
추가됨
create_article
2026년 9월 25일 2:40 AM
추가됨
publish_post
2026년 9월 25일 2:40 AM
추가됨
schedule_post
2026년 9월 25일 2:40 AM
추가됨
create_post
2026년 9월 25일 2:40 AM
추가됨
import_media
2026년 9월 25일 2:40 AM
추가됨
list_media
2026년 9월 25일 2:40 AM
추가됨
generate_image
2026년 9월 25일 2:40 AM
추가됨
adapt_post
2026년 9월 25일 2:40 AM
추가됨
generate_text
2026년 9월 25일 2:40 AM
추가됨
list_node_types
2026년 9월 25일 2:40 AM
추가됨
list_workflows
2026년 9월 25일 2:40 AM
추가됨
search_source_items
2026년 9월 25일 2:40 AM
추가됨
list_sources
2026년 9월 25일 2:40 AM
추가됨
get_analytics
2026년 9월 25일 2:40 AM
추가됨
get_article
2026년 9월 25일 2:40 AM
추가됨
list_articles
2026년 9월 25일 2:40 AM
추가됨
get_post
2026년 9월 25일 2:40 AM
추가됨
list_posts
2026년 9월 25일 2:40 AM
추가됨
get_connected_social_accounts
2026년 9월 25일 2:40 AM
추가됨
list_channels
2026년 9월 25일 2:40 AM