MCP-Server

Blog2Social - Social Media Publishing

io.github.Adenion/blog2social-api-mcp
Marketing & Werbung Social Media Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

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.
Externer Zugriff
Eingabeschema
{'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}
Ausgabeschema
{'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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'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.
Destruktiv Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'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.
Externer Zugriff
Eingabeschema
{'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}
Ausgabeschema
{'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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['video_token'], 'properties': {'video_token': {'type': 'string', 'minLength': 1, 'description': 'Video token returned when the video upload was created.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'additionalProperties': True}
Hinzugefügt
credits.balance
3. October 2026 02:40
Hinzugefügt
videos.check
3. October 2026 02:40
Hinzugefügt
posts.create
3. October 2026 02:40
Hinzugefügt
connections.add
3. October 2026 02:40
Hinzugefügt
connections.remove
3. October 2026 02:40
Hinzugefügt
networks.list_properties
3. October 2026 02:40
Hinzugefügt
connections.list
3. October 2026 02:40
Hinzugefügt
networks.list
3. October 2026 02:40