Socialclaw

io.github.ndesv21Published by GitHub account ndesv21v0.1.20Updated Oct 25, 2026

Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.

VerifiedStreamable HTTPWeb executableCommunication & CollaborationBusiness & Commerce

Overview

AI-generated overview

SocialClaw lets an assistant schedule, publish and track posts across 11+ social platforms through a hosted workspace, with Instagram comment and DM tools.

What you can do
List connected social accounts, their publish capabilities and provider rules, and start connecting the user's own accounts via sign-in links or bot tokens for Telegram and Discord. Upload images and videos to the workspace media library, list assets and check import status. Validate and preview schedule documents, then apply them as publishing runs with idempotency keys, publish drafts, and list, inspect, retry or cancel posts and their attempts. Read analytics snapshots for posts, accounts and runs, and refresh them from supported providers. Work with Instagram: list media, read, reply to, hide or delete comments, read post and account insights, and read, react to or send direct messages.
When to use it
Useful when an assistant should plan and run social publishing across several platforms from one workspace, or handle Instagram comments and direct messages, rather than posting manually in each network's dashboard.
Requirements
A SocialClaw workspace with connected social accounts and an active trial or paid plan; an API key passed as SOCIALCLAW_API_KEY or as an Authorization bearer header. Runs as a hosted remote endpoint or locally via npx with Node.js, and needs network access to the SocialClaw service.
Before you install
The workspace API key is a secret granting publishing access to connected accounts. The server creates, publishes, retries, cancels and deletes posts, replies to, hides and deletes Instagram comments, and sends direct messages, so actions are visible to real audiences. Instagram DMs are limited to 24 hours after the recipient's last message unless a message tag is supplied. Media and post data go to the hosted SocialClaw service and then to the social providers.

Installation

In SourceWeft

  1. Open Socialclaw in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.ndesv21%2Fsocialclaw/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "socialclaw": {
      "type": "http",
      "url": "https://getsocialclaw.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

[SocialClaw logo]

SocialClaw

Social media scheduling CLI and OpenClaw skill for AI agents posting to X, LinkedIn, Instagram, Facebook Pages, TikTok, Discord, Telegram, YouTube, Reddit, WordPress, and Pinterest.

Official Website: getsocialclaw.com · Dashboard · npm · Skill Bundle

[SocialClaw turns prompts, workflows, and AI agents into scheduled publishing, retries, inspection, and analytics across social channels.]

getsocialclaw.com is the official SocialClaw website — the hosted dashboard, API, and account sign-up all live there.

This repo is the public home for:

  • the socialclaw npm CLI
  • the OpenClaw and ClawHub skill bundle
  • the Claude Code plugin and /socialclaw command asset
  • public usage docs, provider notes, and schedule examples

Install

bash
npm install -g socialclawsocialclaw loginsocialclaw accounts list --json

Install as an AI agent skill (Claude Code, Cursor, Cline, Codex, and more):

bash
npx skills add ndesv21/socialclaw

What the CLI covers

  • workspace API key login and hosted dashboard bootstrap
  • browser OAuth connect plus manual Discord and Telegram connect
  • hosted asset upload and deletion
  • schedule validation, campaign preview, apply, inspect, clone, and draft publishing
  • post, run, attempt, analytics, job, usage, and health inspection
  • provider-side deletion for supported published posts
  • Claude Code command installation through socialclaw install --claude

CLI at a glance

bash
socialclaw loginsocialclaw accounts list --jsonsocialclaw assets upload --file ./image.png --jsonsocialclaw validate -f schedule.json --jsonsocialclaw apply -f schedule.json --jsonsocialclaw posts delete --post-id <post-id> --json
Current help surface
text
____             _       _      ____ _/ ___|  ___   ___(_) __ _| |    / ___| | __ ___      __\___ \ / _ \ / __| |/ _` | |   | |   | |/ _` \ \ /\ / / ___) | (_) | (__| | (_| | |   | |___| | (_| |\ V  V /|____/ \___/ \___|_|\__,_|_|    \____|_|\__,_| \_/\_/
socialclaw loginsocialclaw accounts list --jsonsocialclaw assets upload --file <path> --jsonsocialclaw campaigns preview -f <schedule.(yaml|yml|json)> --jsonsocialclaw validate -f <schedule.(yaml|yml|json)> --jsonsocialclaw apply -f <schedule.(yaml|yml|json)> --jsonsocialclaw posts get --post-id <id> --jsonsocialclaw posts delete --post-id <id> --jsonsocialclaw status --run-id <id> --jsonsocialclaw analytics post --post-id <id> --json

Watch the Demo

[Watch the SocialClaw demo video]

Click the image to open the demo video.

Built for Agent-Driven Publishing

[SocialClaw connects AI agents to social publishing across major channels.]

Authentication and access

Running socialclaw login without an API key opens the hosted dashboard so the user can:

  • sign in with Google
  • connect social accounts
  • create or copy a workspace API key
  • activate a trial or paid plan for CLI and API access

Important:

  • the CLI works against a deployed SocialClaw workspace via API key auth
  • an API key alone is not enough for agent execution; the workspace must also have an active trial or paid plan
  • if a command returns plan_required or subscription_*, go to https://getsocialclaw.com/pricing or https://getsocialclaw.com/dashboard

Quick start

bash
socialclaw loginsocialclaw login --api-key <workspace-key> --base-url https://getsocialclaw.comsocialclaw accounts list --jsonsocialclaw accounts capabilities --provider pinterest --jsonsocialclaw accounts connect --provider pinterest --opensocialclaw accounts connect --provider discord --webhook-url <webhook-url> --jsonsocialclaw accounts connect --provider telegram --bot-token <bot-token> --chat-id @yourchannel --jsonsocialclaw assets upload --file ./image.png --jsonsocialclaw campaigns preview -f schedule.json --jsonsocialclaw validate -f schedule.json --jsonsocialclaw apply -f schedule.json --jsonsocialclaw posts delete --post-id <post-id> --jsonsocialclaw workspace health --jsonsocialclaw usage --json

Agent integrations

MCP server

The package ships a Model Context Protocol server. Any MCP client (Claude Code, Claude Desktop, Cursor, and others) gets 17 validation-first publishing tools over your connected workspace accounts: list accounts and capabilities, upload media, validate and preview schedules, apply with idempotency keys, publish drafts, and inspect posts, attempts, runs, analytics, usage, and health.

Claude Code:

bash
claude mcp add socialclaw \  --env SOCIALCLAW_API_KEY=sc_live_your_key \  -- npx -y socialclaw mcp

Claude Desktop, Cursor, and other JSON-configured clients:

json
{  "mcpServers": {    "socialclaw": {      "command": "npx",      "args": ["-y", "socialclaw", "mcp"],      "env": {        "SOCIALCLAW_API_KEY": "sc_live_your_key"      }    }  }}

If you have already run socialclaw login --api-key <key>, the server reuses the saved credentials and the env block is unnecessary. See getsocialclaw.com/mcp for the full tool list.

Claude Code plugin

Install the packaged Claude Code plugin from inside Claude Code:

shell
/plugin marketplace add ndesv21/socialclaw/plugin install socialclaw@socialclaw

This installs the marketplace plugin from skills/socialclaw/ with metadata from .claude-plugin/. It is the cleanest option if you want Claude to auto-invoke SocialClaw when a user asks to connect accounts, upload media, schedule posts, inspect delivery, or check analytics.

Claude slash command and skill file

If you want the explicit /socialclaw command instead of the full plugin flow:

bash
socialclaw install --claude

That installs the bundled command file from skill/claude/socialclaw.md into ~/.claude/commands/socialclaw.md.

Use this path when you want a lightweight Claude Code setup that:

  • exposes one clear SocialClaw command
  • keeps the workspace API key flow explicit
  • still lets Claude use the same hosted SocialClaw API and CLI workflow

OpenClaw and ClawHub

The OpenClaw-compatible skill bundle lives in skill/.

It is designed for OpenClaw and other compatible agent runtimes that can load a SKILL.md, work from a workspace API key, and call either:

  • the SocialClaw HTTP API directly
  • the socialclaw CLI as a client for the hosted service

This is the bundle to publish to ClawHub for OpenClaw discovery.

Other agents

SocialClaw is not limited to one agent framework. The repo also includes an agent manifest in skill/agents/openai.yaml, and the CLI works well for any runtime that can execute shell commands or make HTTP requests.

That makes SocialClaw a good fit for:

  • Codex and terminal-native agent workflows
  • Claude Code via plugin or command file
  • OpenClaw and ClawHub skills
  • custom internal agents that need one stable publishing surface for social channels

In practice, all of these share the same model:

  • connect customer accounts inside SocialClaw
  • create a workspace API key
  • upload media, validate, apply, inspect, analyze, and optionally delete supported posts through the hosted service

Supported providers

  • X
  • Facebook Pages
  • Instagram Business
  • Instagram standalone professional accounts
  • LinkedIn profile
  • LinkedIn page
  • Pinterest
  • TikTok
  • Discord
  • Telegram
  • YouTube
  • Reddit
  • WordPress

Pinterest is exposed as the pinterest provider in the public CLI and skill bundle. Its main publish target is board-centric, with support for standard pins, video pins, multi-image pins, board creation and section or catalog discovery, plus pin and account analytics. Product, collection, and idea surfaces should be treated as capability-gated or beta rather than assumed for every workspace.

TikTok supports one video or one photo gallery per post. Photo galleries can include up to 35 images and expose autoAddMusic plus photoCoverIndex; selecting a specific TikTok song or sound is not available through TikTok's Content Posting API. For photo galleries, normalize images before upload, preferably to 1080x1920 JPEGs for vertical slides or another standard TikTok-compatible aspect/size. Oversized or unusual image dimensions may pass SocialClaw validation and initial TikTok acceptance, then fail later with picture_size_check_failed; reconcile photo posts after publish to confirm TikTok reports PUBLISH_COMPLETE.

Publishing

Bump the version with npm version:

bash
npm version patchgit push && git push --tagsnpm publish --access public

To sync reference files manually after editing skill/references/:

bash
npm run sync:references

Notes

  • Users connect accounts inside the hosted SocialClaw dashboard.
  • The dashboard and API live at https://getsocialclaw.com.
  • The npm package ships the CLI, skill docs, Claude Code plugin, and command asset.

Source: README.md at commit 2071b10

Tools

34

list_accounts

List accounts

List connected social accounts in the SocialClaw workspace. Optionally filter by provider (x, facebook, instagram_business, instagram, threads, linkedin, linkedin_page, pinterest, tiktok, telegram, discord, youtube, reddit, wordpress).

Parametersprovider

account_capabilities

Account capabilities

Get publish capabilities and provider rules for connected accounts: what media is allowed, text limits, and whether publishing is currently possible. Pass accountId for one account, or provider to filter, or neither for all.

ParametersprovideraccountId

connect_account

Connect account

Start connecting one of the user's own social accounts to their SocialClaw workspace. For most providers this returns an authorizeUrl; give it to the user so they sign in with the provider themselves (SocialClaw never sees their password). Telegram and Discord have no sign-in page: Telegram takes the bot token and chat id of a bot the user created and made admin of their channel, and Discord takes a webhook URL the user created for their channel. Only pass values the user gave you for this purpose.

ParameterschatIdbotTokenproviderrequiredwebhookUrl

upload_asset

Upload asset

Add an image or video to the user's SocialClaw media library so it can be attached to a post. Pass exactly one of: file (a file the user attached in this chat), sourceUrl (a direct public http(s) link to the image or video file, not a web page), or contentBase64 (small files only). Files up to 1 GB are supported through file or sourceUrl. The result is the asset: when status is ready, use its publicUrl as media_link in validate_schedule/apply_schedule. Large videos may come back with status uploading; then call get_asset with the asset id until status is ready (or failed) before scheduling.

ParametersfilefilenamesourceUrlcontentBase64

get_asset

Get asset

Get one media asset from the user's SocialClaw library by id, including its status (uploading, ready, or failed), import progress, and publicUrl. Use it after upload_asset returns status uploading, until the asset is ready.

ParametersassetIdrequired

validate_schedule

Validate schedule

Validate a schedule document against provider rules, media limits, account state, and publish times WITHOUT creating any posts. Always run this before apply_schedule.

Parametersschedulerequired

preview_campaign

Preview campaign

Preview how a campaign schedule document expands into concrete posts and steps without creating anything.

Parametersschedulerequired

apply_schedule

Apply schedule

Create a publishing run from a schedule document. Posts are scheduled or published through connected accounts. Send an idempotencyKey so retries do not create duplicate runs.

ParametersschedulerequiredidempotencyKey

publish_draft

Publish draft

Publish a previously created draft run, optionally at a given ISO-8601 start time.

ParametersrunIdrequiredstartAt

list_posts

List posts

List posts in the workspace with optional filters.

ParameterslimitrunIdoffsetstatusaccountprovidercampaignId

list_assets

List assets

List media (images/videos) the user has uploaded to their SocialClaw library, newest first. Each asset includes a publicUrl usable directly as media_link in validate_schedule/apply_schedule. Use this to find a previously uploaded file (e.g. from the dashboard) to post. Optionally filter by kind (image/video), mime, or a text query over filename/id.

Parameterskindmimesortlimitquery

get_post

Get post

Get one post including its delivery state and provider identifiers.

ParameterspostIdrequired

post_attempts

Post attempts

List publish attempts for a post, including provider errors. Use this to debug failed posts.

ParameterspostIdrequired

retry_post

Retry post

Retry a failed post.

ParameterspostIdrequired

cancel_post

Cancel post

Cancel a scheduled post before it publishes.

ParameterspostIdrequired

run_status

Run status

Get the status summary of a publishing run and its posts.

ParametersrunIdrequired

get_analytics

Get analytics

Get analytics snapshots for a post, an account, or a run. scope must be post, account, or run; id is the matching identifier.

Parametersidrequiredscoperequiredwindow

refresh_analytics

Refresh analytics

Fetch fresh analytics for a published post from the provider and store a new snapshot, then return it. Supported providers: Instagram, TikTok, YouTube, Reddit, X, Pinterest, Snapchat (others return an unsupported snapshot). Call this before get_analytics when you need current numbers rather than the last stored snapshot.

ParameterspostIdrequiredwindow

list_instagram_media

List Instagram media

List an Instagram account's recent posts (caption, permalink, timestamp, comment count) so you can find one to read or moderate comments on. account is the connected-account id or handle.

Parametersafterlimitaccountrequired

get_instagram_comments

Get Instagram comments

Read the comments and replies people left on one of the user's own Instagram posts, so the user can review and answer them. Use list_instagram_media first to get a mediaId.

ParametersafterlimitaccountrequiredmediaIdrequired

reply_instagram_comment

Reply Instagram comment

Reply to an Instagram comment on the user's media.

ParametersaccountrequiredmessagerequiredcommentIdrequired

hide_instagram_comment

Hide Instagram comment

Hide or unhide an Instagram comment on the user's media. Set hidden=false to unhide.

ParametershiddenaccountrequiredcommentIdrequired

delete_instagram_comment

Delete Instagram comment

Permanently delete an Instagram comment on the user's media. Prefer hide_instagram_comment when unsure.

ParametersaccountrequiredcommentIdrequired

get_instagram_media_insights

Get Instagram media insights

Get analytics for one Instagram post (reach, likes, comments, saved, shares, views). Use list_instagram_media for the mediaId.

ParametersaccountrequiredmediaIdrequiredmediaProductType

get_instagram_profile

Get Instagram profile

Get an Instagram account's profile stats: followers, follows, media count, bio.

Parametersaccountrequired

get_instagram_account_insights

Get Instagram account insights

Get an Instagram account's insight trend (a daily time series, e.g. reach) over the last N days.

Parametersdaysmetricaccountrequired

react_instagram_message

React Instagram message

React to a received Instagram direct message (e.g. love).

ParametersaccountrequiredreactionmessageIdrequiredrecipientIdrequiredconversationIdrequired

list_instagram_mentions

List Instagram mentions

List recent @mentions of the workspace's Instagram accounts (captured from Instagram mention webhooks).

Parameterslimit

list_instagram_conversations

List Instagram conversations

List the Instagram direct-message conversations for an account, most recent first. Each conversation includes `counterpart` (the other person's {id, username}) — use its id as the recipientId when replying; `participants` also lists the account itself.

Parametersafterlimitaccountrequired

get_instagram_messages

Get Instagram messages

Read the messages in an Instagram direct-message conversation.

ParametersafterlimitaccountrequiredconversationIdrequired

send_instagram_message

Send Instagram message

Send an Instagram direct message — a text reply, or an image/video attachment via attachment_url. Only allowed within 24 hours of the recipient's last message unless a message tag (e.g. HUMAN_AGENT) is supplied.

ParameterstagtextaccountrequiredrecipientIdrequiredattachment_urlconversationIdrequiredattachment_type

workspace_usage

Workspace usage

Get workspace usage counters and plan entitlement consumption.

Takes no parameters.

workspace_health

Workspace health

Get workspace health, including connection state across providers. Pass provider to check one provider's connections.

Parametersprovider

get_profile

Get profile

Identify the connected SocialClaw workspace: its stable id, name, and plan. Use it to confirm which workspace you are acting on.

Takes no parameters.

Version history

1
  1. v0.1.20LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts