WoopSocial
Docs: https://docs.woopsocial.com
Prerequisites
To use this skill, you must have a WoopSocial account. Sign up for one here.
MCP Setup
Ensure that OpenClaw is connected to the WoopSocial remote MCP server. There are two methods to do this:
Method 1: OAuth
openclaw mcp add woopsocial \
--url https://api.woopsocial.com/mcp \
--transport streamable-http \
--auth oauth
openclaw mcp login woopsocial
openclaw mcp doctor woopsocial --probe
If OAuth prints an authorization URL but cannot receive its localhost callback, approve access in the browser and pass the returned code directly to the CLI:
openclaw mcp login woopsocial --code <code>
Use openclaw mcp probe woopsocial --json to inspect exposed tools when troubleshooting.
Method 2: API key in MCP URL
As an alternative to OAuth, API-key based authentication is also possible. Generate an API key in the WoopSocial dashboard API page. Then you can add the generated MCP URL to OpenClaw like this:
openclaw mcp add woopsocial \
--url https://api.woopsocial.com/mcp?api_key=YOUR_API_KEY \
--transport streamable-http
Posting Workflow
-
Use
projects_listto identify the project. -
Use
social_accounts_listto resolve the requested accounts. Only accounts withstatus: CONNECTEDcan publish, and all accounts for one post must belong to the same project. If a requested platform isn't connected, say so plainly, never skip it silently. -
Use
social_accounts_get_platform_inputswhen a platform requires current account-specific options, such as a Pinterest board or TikTok privacy setting. -
Reuse existing media returned by
media_listwhen appropriate. For new media, use themedia_uploads_*session tools, upload every returned part exactly as instructed, complete the session, and wait until the media is ready. -
Build the post request from the user's content, accounts, platform-specific fields, and schedule.
-
Call
posts_createonly after the target accounts, content, and schedule are unambiguous. -
Return the post ID and requested schedule. For delivery results, use
posts_getorsocial_account_posts_listand distinguish pending, scheduled, published, and failed states.
Action Boundaries
Treat an explicit request to publish or schedule as authorization for that action. Ask before creating the post only when its target accounts, content, schedule, or publish-versus-draft intent is ambiguous.
Require explicit user intent before calling delete tools for posts, account posts, projects, social accounts, media, or webhooks.
Never claim that a post was published merely because creation succeeded. Report the delivery state returned by WoopSocial.
