{"name":"io.github.Adenion/blog2social-api-mcp","slug":"adenion-blog2social-api-mcp","title":"Blog2Social - Social Media Publishing","description":"Connect AI agents to Blog2Social and automate social media content workflows via MCP.","url":"https://mcp.market/server/adenion-blog2social-api-mcp","rating":null,"grade":"B","score":81,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-10-02T07:23:57.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T10:05:31.654Z","last_ok_at":"2026-11-04T10:05:31.654Z","latency_ms":693},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/Adenion/blog2social-api-mcp","website":"https://www.blog2social.com/","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://api.blog2social.com/mcp"}],"packages":[],"tools":[{"name":"connections.add","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"network_id":{"type":"integer","minimum":1,"description":"Social media network ID returned by the networks.list tool."},"network_type_id":{"type":"integer","minimum":0,"maximum":2,"description":"Connection type: 0 = profile, 1 = page, 2 = group."},"language":{"type":"string","minLength":2,"description":"Optional language for the authorization flow, for example en or de."},"service_conditions_id":{"type":"integer","minimum":1,"description":"Optional service conditions ID for using a custom application."}},"required":["network_id","network_type_id"],"additionalProperties":false}},{"name":"connections.list","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"connections.remove","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"client_user_network_id":{"type":"integer","minimum":1,"description":"Connected social media account ID returned by connections.list."}},"required":["client_user_network_id"],"additionalProperties":false}},{"name":"credits.balance","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"networks.list","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"networks.list_properties","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"posts.create","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"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."},"b2s_posts":{"type":"array","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.","items":{"oneOf":[{"type":"object","title":"Text or link post","properties":{"message":{"type":"string","minLength":1,"description":"Text of the social media post."},"title":{"type":"string","description":"Optional title for the post, when supported by the selected social network."},"postFormat":{"type":"integer","const":0,"description":"Text or link post."},"customUrl":{"type":"string","minLength":1,"description":"Optional public URL attached to the post."}},"required":["message","postFormat"],"additionalProperties":false},{"type":"object","title":"Image post","properties":{"message":{"type":"string","minLength":1,"description":"Text or caption to accompany the image post."},"title":{"type":"string","description":"Optional title for the image post, when supported by the selected social network."},"postFormat":{"type":"integer","const":1,"description":"Image post."},"customUrl":{"type":"string","minLength":1,"description":"Optional public URL to attach to the image post, when supported by the selected social network."},"mediaObjects":{"type":"array","minItems":1,"description":"Image media items to include in the post. Each item must provide an IMAGE type and a public URL.","items":{"type":"object","properties":{"type":{"type":"string","const":"IMAGE","description":"Media type; must be IMAGE for this post."},"url":{"type":"string","minLength":1,"description":"Public HTTP or HTTPS image URL."},"alt":{"type":"string","description":"Optional alternative text describing the image."}},"required":["type","url"],"additionalProperties":false}}},"required":["message","postFormat","mediaObjects"],"additionalProperties":false},{"type":"object","title":"Video post","properties":{"message":{"type":"string","minLength":1,"description":"Text or caption to accompany the video post."},"title":{"type":"string","description":"Optional title for the video post, when supported by the selected social network."},"postFormat":{"type":"integer","const":2,"description":"Video post."},"customUrl":{"type":"string","minLength":1,"description":"Optional public URL to attach to the video post, when supported by the selected social network."},"mediaObjects":{"type":"array","minItems":1,"description":"Video media items to include in the post. Each item must provide a VIDEO type and a public URL.","items":{"type":"object","properties":{"type":{"type":"string","const":"VIDEO","description":"Media type; must be VIDEO for this post."},"url":{"type":"string","minLength":1,"description":"Public HTTP or HTTPS video URL."},"alt":{"type":"string","description":"Optional alternative text or description for the video."}},"required":["type","url"],"additionalProperties":false}}},"required":["message","postFormat","mediaObjects"],"additionalProperties":false}]}}},"required":["client_user_network_id","b2s_posts"],"additionalProperties":false}},{"name":"videos.check","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"video_token":{"type":"string","minLength":1,"description":"Video token returned when the video upload was created."}},"required":["video_token"],"additionalProperties":false}}],"scan":{"score":81,"grade":"B","scanned_at":"2026-10-02T13:03:52.913Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-02T13:03:52.859Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1591ms"]},"poisoning":{"score":15,"max":15,"notes":["8 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://api.blog2social.com/mcp","reachable":true,"authRequired":false,"latencyMs":1591,"serverInfo":{"name":"blog2social-mcp","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"Adenion","repo":"blog2social-api-mcp","archived":false,"pushedAt":"2026-10-02T07:23:57Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/30528928?v=4","ownerCreatedAt":"2017-07-28T13:38:37Z","license":"MIT"},"icon":{"url":"https://en.blog2social.com/wp-content/uploads/sites/2/2024/04/b2s@512-300x300.png","source":"site","width":300,"height":300},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-10-02T07:23:57.000Z","score":23}}}},"grade_history":[],"reviews":[]}