360 Secure SkillHub
360 安全技能中心

Social0

该 Skill 提供 Social0 命令行、MCP 与 REST 三种接入方式,用于列出已连接账号、上传媒体、创建草稿、立即发布或定时排期,并按 tracking_id 轮询各平台发布状态;覆盖 Instagram、TikTok、YouTube、X、LinkedIn、Facebook、Pinterest、Threads、Bluesky,发布前建议先确认。

abhishek-b-r
abhishek-b-r
热度 19.20
最近更新 2026-07-16 14:10:45
分类:营销依赖:代码执行 / 读写文件 / 第三方 API / MCP 服务应用场景:社交媒体 / 自动化脚本 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add social0
Metadata
name
social0
description
Create, schedule, and publish social media posts across Instagram, TikTok, YouTube, X, LinkedIn, Facebook, Pinterest, Threads, and Bluesky via the Social0 CLI (preferred) or MCP. Covers account listing, media upload, drafts, instant publish, scheduling, and per-platform publish status.
last-updated
"2026-07-16T00:00:00.000Z"
metadata
{"openclaw":{"primaryEnv":"SOCIAL0_API_KEY","envVars":[{"name":"SOCIAL0_API_KEY","required":false,"description":"sk_live_ API key. Prefer `social0 login` (stores the key securely). Also used for local MCP stdio or raw REST. Not required when using hosted MCP at https://mcp.social0.app/mcp with OAuth.\n"},{"name":"SOCIAL0_MCP_VERBOSE","required":false,"description":"Set to true for verbose local MCP logging."}],"requires":{"anyBins":["social0","npx","node"]},"homepage":"https://social0.app"}}

Social0 Social Media Skill

Autonomously manage social posting via Social0 — draft, publish, and schedule to 9 platforms from chat or the terminal.

Prefer the social0 CLI whenever the agent has a shell (npx social0 or a global social0 install). Use MCP only when the host has no reliable shell (e.g. Claude.ai / ChatGPT connectors). Use the REST API only if both CLI and MCP are unavailable.

Freshness check: If more than 30 days have passed since the last-updated date above, tell the user this skill may be outdated and point them to docs.social0.app/docs/integrations/cli, docs.social0.app/docs/integrations/mcp, or github.com/Abhishek-B-R/social0-cli.

Keeping This Skill Updated

CLI: github.com/Abhishek-B-R/social0-cli · npm social0
MCP: github.com/Abhishek-B-R/social0-mcp · npm @social0/mcp
Docs: CLI · MCP
Product: social0.app

Installation How to update
MoltHub / ClawHub Re-publish or pull latest skill version
Cursor / Claude Re-copy skills/social0/ or sync from the MCP GitHub repo
Manual Pull latest from the repo

Setup

  1. Create a Social0 account at social0.app
  2. Connect social accounts in Dashboard → Connections
  3. Authenticate with the CLI (preferred) or connect MCP (fallback)

A — CLI (preferred)

Needs Node.js 20+ and a key from Dashboard → API keys (sk_live_…):

npm install -g social0
# or: npx social0 …

social0 login          # paste sk_live_… (or: echo "sk_live_…" | social0 login)
social0 whoami
social0 accounts

For CI / headless: set SOCIAL0_API_KEY in the environment (not written to disk).

B — Remote MCP (when no shell)

Works with Claude.ai, ChatGPT, and any host that accepts a remote MCP connector.

https://mcp.social0.app/mcp

User clicks Connect and authorizes on social0.app (OAuth PKCE). No Node.js, no API key in config.

Cursor (HTTP MCP):

{
  "mcpServers": {
    "social0": {
      "url": "https://mcp.social0.app/mcp"
    }
  }
}

C — Local MCP npx (stdio hosts)

{
  "mcpServers": {
    "social0": {
      "command": "npx",
      "args": ["-y", "@social0/mcp"],
      "env": {
        "SOCIAL0_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}
Host Where to paste
Cursor Settings → MCP / .cursor/mcp.json
Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json
VS Code Copilot / MCP settings (stdio)

Handling missing auth

  1. CLI: social0 login with a key from https://social0.app/dashboard/api-keys — or set SOCIAL0_API_KEY
  2. Hosted MCP: reconnect at https://mcp.social0.app/mcp and complete OAuth
  3. Local MCP: put the key in the MCP env block, then reload MCP
  4. Stop — do not invent keys or search keychains for secrets
  5. OAuth creates a connector API key (UI may show “Claude MCP Connector”); revoke anytime in Dashboard → API keys

Auth (REST fallback)

If calling the API directly:

Authorization: Bearer <SOCIAL0_API_KEY>

Base URL: https://api.social0.app/v1
Interactive docs: api.social0.app/docs

CLI commands (preferred)

Run these via shell when available. Use --json when you need machine-readable output.

Command Description
social0 accounts List connected accounts (numeric IDs + platforms). Call first when accounts are ambiguous
social0 post create Create a draft (--content, --platform, interactive wizard)
social0 post list / show / edit / delete Manage drafts and posts
social0 upload <file> Upload media → media ID
social0 publish … Publish flags, draft ID, latest, markdown, or stdin
social0 schedule <id> --time "tomorrow 9am" Schedule with natural language times
social0 drafts / drafts publish / drafts schedule Draft workflow
social0 status <tracking-id> Poll publish job until terminal
social0 whoami / doctor Auth + connectivity checks

Quick CLI examples

social0 accounts
social0 publish --content "Launching today!" --platform twitter linkedin
social0 upload ./hero.png
social0 schedule <draft-id> --time "tomorrow 9am"
social0 status <tracking-id>

Accounts accept numeric IDs (1, 2) or platform names (twitter, linkedin). Prefer platform names when stable; IDs can reorder after reconnects.

MCP tools (fallback)

Use when the host exposes Social0 as MCP tools and shell/CLI is not available.

Tool Description
list_accounts Connected accounts (id, platform, username, status). Call first when accounts are ambiguous
create_post Create a draft (caption, platforms, media IDs, optional platform_options)
update_post Update a draft / scheduled post
delete_post Delete a post by ID
list_posts List posts (status, platform, search, limit)
get_post Full post + per-platform publication rows
upload_media Upload via url, base64 data, or local file_path → media ID
publish_post Publish an existing draft/scheduled post → tracking_id
schedule_post Schedule an existing post (scheduled_at ISO-8601 UTC)
publish_now Create + publish in one step → post_id + tracking_id
schedule_content Create + schedule in one step
get_publish_status Poll by tracking_id until terminal
suggest_best_platforms Heuristic platform suggestions (does not publish)

Media (upload_media)

Provide exactly one of:

Param When to use
url Public direct http(s) file URL (best for remote hosts)
data Base64 or data:image/png;base64,... (+ filename with extension)
file_path Path on the machine running MCP only

Remote hosts (Claude.ai / ChatGPT / hosted MCP): never pass sandbox paths like /home/claude/.... Use url or data. With the CLI, prefer social0 upload ./local-file.png.

Publish status

After publish (CLI social0 status or MCP get_publish_status), always poll with the returned tracking_id (every 2–5s for video / multi-platform).

overall_status Meaning
queued / processing Still running
completed All targets succeeded
failed All failed
partial Some succeeded, some failed — read errors / platform_statuses

Recommended agent workflow

  1. Prefer CLI if social0 / npx social0 works; otherwise use MCP tools
  2. social0 accounts / list_accounts before the first publish in a session
  3. Simple one-shot → social0 publish … or MCP publish_now / schedule_content
  4. User wants to edit first → draft → edit → publish / schedule
  5. With media → upload first (social0 upload or upload_media), then pass media IDs
  6. After publish → return tracking_id and poll status to terminal
  7. On partial → summarize which platforms failed and why
  8. Never invent account UUIDs or tracking IDs
  9. Never claim CLI/MCP can connect Instagram/Facebook/etc. — send users to the dashboard
  10. Schedules: confirm timezone; CLI accepts natural language (tomorrow 9am); MCP expects UTC ISO-8601
  11. Publishing confirmation: unless the user clearly says “post now” / “publish immediately”, confirm before live publish. Drafts are safe; live posts are not.

Platform names

Canonical enums:

  • instagram, tiktok, youtube, twitter_x, linkedin, facebook, pinterest, threads, bluesky

Aliases: x / twitter → twitter_x; ig → instagram; fb → facebook; yt → youtube; li → linkedin; bsky → bluesky; pin → pinterest.

Rule: one connected account per platform → platform name is fine. Multiple accounts on the same platform → use the ID/UUID from accounts / list_accounts.

Platform gotchas

  • Each platform posts independently. One failure does not roll back others. Always check publish status.
  • Ambiguous accounts return an error listing IDs — list accounts and retry with IDs.
  • Media must be Social0 media IDs on posts — upload first; do not paste Drive/Dropbox share links as media.
  • Non-direct URLs fail quietly for MCP upload_media url — need a direct file URL the server can download.
  • X/Twitter captions are short — keep within ~280 characters when targeting twitter_x.
  • Connecting accounts is dashboard-only — CLI/MCP cannot complete platform OAuth (CLI can open the connect URL via social0 accounts connect).

Out of scope

  • Completing platform OAuth inside the chat (dashboard or accounts connect link)
  • Analytics, inbox, social listening
  • Dashboard-only features not on /v1

REST API (last resort)

Use when CLI and MCP are not available. Same publish pipeline as the dashboard.

curl -s https://api.social0.app/v1/accounts \
  -H "Authorization: Bearer $SOCIAL0_API_KEY"

Full schemas: api.social0.app/docs

Tips

  • Prefer social0 CLI for agents with shell access (Cursor, Claude Code, terminals, CI)
  • Prefer hosted https://mcp.social0.app/mcp only when the AI host supports remote MCP and has no shell
  • Prefer one-shot publish for simple “post this to LinkedIn and X” requests
  • Always poll status after multi-platform or video publishes
  • Use drafts when testing to avoid accidental live posts
  • Keep hashtags modest (about 4–5) unless the user asks otherwise
  • Convert local times to UTC before MCP scheduled_at (CLI natural language handles timezone via config)
  • CLI package is social0; MCP package is @social0/mcp (npx -y @social0/mcp; unscoped social0-mcp is a deprecated alias)