MCP 서버

Blog2Social - Social Media Publishing

io.github.Adenion/blog2social-api-mcp
마케팅 및 광고 소셜 미디어 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Connects social accounts and publishes text, link, image, and video posts through Blog2Social while reporting publishing status.

connections.add
Start connecting a social account
Starts authorization for a social network account. Get network_id and a supported account type from networks.list; network_type_id 0 means profile, 1 page and 2 group. The response contains an auth_link for the user to open and authorize Blog2Social. Pinterest is an exception: it requires a custom application (service_conditions_id) and does not return an auth_link.
외부 접근 가능
입력 스키마
{'type': 'object', 'required': ['network_id', 'network_type_id'], 'properties': {'language': {'type': 'string', 'minLength': 2, 'description': 'Optional language for the authorization flow, for example en or de.'}, 'network_id': {'type': 'integer', 'minimum': 1, 'description': 'Social media network ID returned by the networks.list tool.'}, 'network_type_id': {'type': 'integer', 'maximum': 2, 'minimum': 0, 'description': 'Connection type: 0 = profile, 1 = page, 2 = group.'}, 'service_conditions_id': {'type': 'integer', 'minimum': 1, 'description': 'Optional service conditions ID for using a custom application.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'object', 'required': ['auth_link', 'session_token', 'expired_in'], 'properties': {'auth_link': {'type': 'string', 'description': 'Authorization URL that must be opened to connect the account.'}, 'expired_in': {'type': 'integer', 'minimum': 0, 'description': 'Number of seconds until the authorization session expires.'}, 'session_token': {'type': 'string', 'description': 'Session token for the authorization process.'}}, 'additionalProperties': True}}, 'additionalProperties': False}
connections.list
List connected social accounts
Returns the social accounts currently connected to the authenticated Blog2Social user, with details such as the network, account type and display name. Use an account client_user_network_id in posts.create to choose where to publish.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': False}
connections.remove
Disconnect a connected social account
Removes a social account connection from the authenticated Blog2Social user. Call connections.list first to get the account's client_user_network_id. After removal, the account can no longer be used for publishing unless it is connected again.
파괴적 작업 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': ['client_user_network_id'], 'properties': {'client_user_network_id': {'type': 'integer', 'minimum': 1, 'description': 'Connected social media account ID returned by connections.list.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'object', 'required': ['success'], 'properties': {'success': {'type': 'boolean', 'description': 'True when the connected social media account was removed successfully.'}}, 'additionalProperties': False}}, 'additionalProperties': False}
credits.balance
Check the Blog2Social API credit balance
Returns the current credit balance of the authenticated Blog2Social API account. Publishing is not possible when the balance is 0, so check it if a post cannot be published.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'object', 'required': ['balance'], 'properties': {'balance': {'type': 'integer', 'minimum': 0, 'description': 'Current number of available Blog2Social credits.'}}, 'additionalProperties': False}}, 'additionalProperties': False}
networks.list
List networks available to connect
Returns the social networks that can be connected to Blog2Social, including each network name, URL, network_id and whether profiles, pages or groups are supported. Use network_id and a supported network_type_id with connections.add to start connecting an account.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': False}
networks.list_properties
Get posting requirements by network and account type
Returns publishing capabilities and limits for each network and account type, such as supported media formats, video support and character limits. Check these requirements when preparing a post for a specific network and account type.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': False}
posts.create
Publish a post to a connected social account
Publishes a post to the connected account identified by client_user_network_id. Use postFormat 0 for text or link posts (a link is optional), 1 for image posts, or 2 for video posts; image and video posts require mediaObjects. The response includes a publish_url for non-video posts. Video posts return a video_token to check with videos.check.
외부 접근 가능
입력 스키마
{'type': 'object', 'required': ['client_user_network_id', 'b2s_posts'], 'properties': {'b2s_posts': {'type': 'array', 'items': {'oneOf': [{'type': 'object', 'title': 'Text or link post', 'required': ['message', 'postFormat'], 'properties': {'title': {'type': 'string', 'description': 'Optional title for the post, when supported by the selected social network.'}, 'message': {'type': 'string', 'minLength': 1, 'description': 'Text of the social media post.'}, 'customUrl': {'type': 'string', 'minLength': 1, 'description': 'Optional public URL attached to the post.'}, 'postFormat': {'type': 'integer', 'const': 0, 'description': 'Text or link post.'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'Image post', 'required': ['message', 'postFormat', 'mediaObjects'], 'properties': {'title': {'type': 'string', 'description': 'Optional title for the image post, when supported by the selected social network.'}, 'message': {'type': 'string', 'minLength': 1, 'description': 'Text or caption to accompany the image post.'}, 'customUrl': {'type': 'string', 'minLength': 1, 'description': 'Optional public URL to attach to the image post, when supported by the selected social network.'}, 'postFormat': {'type': 'integer', 'const': 1, 'description': 'Image post.'}, 'mediaObjects': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'url'], 'properties': {'alt': {'type': 'string', 'description': 'Optional alternative text describing the image.'}, 'url': {'type': 'string', 'minLength': 1, 'description': 'Public HTTP or HTTPS image URL.'}, 'type': {'type': 'string', 'const': 'IMAGE', 'description': 'Media type; must be IMAGE for this post.'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'Image media items to include in the post. Each item must provide an IMAGE type and a public URL.'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'Video post', 'required': ['message', 'postFormat', 'mediaObjects'], 'properties': {'title': {'type': 'string', 'description': 'Optional title for the video post, when supported by the selected social network.'}, 'message': {'type': 'string', 'minLength': 1, 'description': 'Text or caption to accompany the video post.'}, 'customUrl': {'type': 'string', 'minLength': 1, 'description': 'Optional public URL to attach to the video post, when supported by the selected social network.'}, 'postFormat': {'type': 'integer', 'const': 2, 'description': 'Video post.'}, 'mediaObjects': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'url'], 'properties': {'alt': {'type': 'string', 'description': 'Optional alternative text or description for the video.'}, 'url': {'type': 'string', 'minLength': 1, 'description': 'Public HTTP or HTTPS video URL.'}, 'type': {'type': 'string', 'const': 'VIDEO', 'description': 'Media type; must be VIDEO for this post.'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'Video media items to include in the post. Each item must provide a VIDEO type and a public URL.'}}, 'additionalProperties': False}]}, 'minItems': 1, 'description': 'One or more posts to publish to the selected account. Use postFormat 0 for text or links, 1 for images, and 2 for videos; image and video posts require mediaObjects.'}, 'client_user_network_id': {'type': 'integer', 'minimum': 1, 'description': 'Connected social media account ID returned by connections.list. All posts in b2s_posts are published to this account.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'properties': {'type': {'type': 'integer'}, 'error': {'type': 'integer'}, 'extra': {'type': 'object', 'additionalProperties': True}, 'post_id': {'type': 'integer'}, 'publish_url': {'type': 'string'}, 'b2s_error_code': {'type': 'string'}, 'network_post_id': {'type': 'string'}}, 'additionalProperties': True}}}, 'additionalProperties': False}
videos.check
Check video post publishing status
Checks the publishing status of a video post using the video_token returned by posts.create. Returns the status for each target social account: pending, failed or successful. A publish_url is included when publishing succeeds; check again while the status is pending.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': ['video_token'], 'properties': {'video_token': {'type': 'string', 'minLength': 1, 'description': 'Video token returned when the video upload was created.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
추가됨
credits.balance
2026년 10월 3일 2:40 AM
추가됨
videos.check
2026년 10월 3일 2:40 AM
추가됨
posts.create
2026년 10월 3일 2:40 AM
추가됨
connections.add
2026년 10월 3일 2:40 AM
추가됨
connections.remove
2026년 10월 3일 2:40 AM
추가됨
networks.list_properties
2026년 10월 3일 2:40 AM
추가됨
connections.list
2026년 10월 3일 2:40 AM
추가됨
networks.list
2026년 10월 3일 2:40 AM