Claude Code Social Media

Claude Code social media publishing with MCP server and CLI skill

Give Claude Code and Claude Desktop direct access to bundle.social via the official MCP server, or wire the CLI in as a skill. Either way, Claude can draft, schedule and analyze social posts across 14+ platforms.

Last updated: May 2026

API key authScheduled publishing14 platforms
Quick start
API request
1// In Claude Code or Claude Desktop, add the MCP server:2// ~/.claude/mcp_servers.json3{4  "bundlesocial": {5    "command": "npx",6    "args": ["-y", "bundlesocial-mcp"],7    "env": { "BUNDLESOCIAL_API_KEY": "sk_live_..." }8  }9}1011// Then talk to Claude:12// "Draft a tweet thread + LinkedIn post about today's release notes,13//  schedule the thread for 9am tomorrow and the LinkedIn post for 10am."14// → Claude calls list_social_accounts, create_post, schedule_post tools.1516// Prefer the CLI as a skill?  bundlesocial-cli ships with a SKILL.md:17// $ npx skills add bundleglobal/bundlesocial-cli

Pasting copy into the Twitter web UI every release

Claude can write a great release post - but it can't actually publish without a tool surface that handles auth, scheduling and per-platform payloads.
Hand-rolling Claude tools per platform means rebuilding OAuth, media uploads and rate-limit handling inside your harness.
Skills and MCP both want a stable, well-documented integration - not a half-finished script that breaks when X changes a field.

What bundle.social handles

Drop the bundle.social MCP server into Claude Desktop or Claude Code once; every connected social account becomes a tool Claude can call.
Prefer the skill model? bundlesocial-cli ships with a SKILL.md - install with npx skills add bundleglobal/bundlesocial-cli.
Same auth, same posts, same teams across MCP, CLI and SDK - switch transports without losing state.

Two ways Claude can post - pick one

MCP server for Claude Desktop / Claude Code as a stdio tool surface. CLI as a skill when Claude shells out. Both backed by the same bundle.social API and team scoping.

Workflow

How it works

Connect accounts once, then create and schedule posts with channel-specific fields from one API.

01

Pick MCP or skill

Claude Desktop / Claude Code → MCP server (recommended for stable tool calls). Claude shelling out → CLI as a skill.

02

Add to Claude config

MCP: drop the JSON into ~/.claude/mcp_servers.json. Skill: npx skills add bundleglobal/bundlesocial-cli and Claude discovers it.

03

Ask Claude to publish

“Draft a release post for X + LinkedIn and schedule both for tomorrow 9am.” Claude calls the tools, returns post IDs.

Product architecture

Build social media workflows without rebuilding every platform

Claude Code social media workflows need more than drafting

Claude Code can already help write launch posts, changelog summaries, customer updates, and campaign variants. The missing piece is usually execution. A useful Claude Code social media workflow needs a tool surface for connected accounts, media uploads, scheduling, status checks, and platform-specific payloads. Otherwise the agent writes the content and a human still has to copy it into each network by hand.

bundle.social gives Claude two practical paths. The MCP server exposes social publishing as native tools when Claude can call MCP. The CLI works when Claude is operating through a shell, CI runner, or skill-style environment. Both paths use the same API key, the same connected accounts, and the same post lifecycle, so your team can choose the transport without rebuilding the publishing model.

MCP and CLI keep Claude inside a reviewable workflow

The safest agent setup is not one where Claude silently posts everywhere. It is one where Claude can draft, inspect accounts, prepare platform-specific content, create drafts or scheduled posts, and return IDs for review. Tool-call confirmation, draft status, and dashboard visibility give teams a way to keep human judgment in the loop without stripping away automation.

That matters for SaaS teams, developer relations teams, agencies, and internal marketing workflows. Claude can transform release notes into platform variants, but your product still needs guardrails around account choice, media attachments, timing, and errors. bundle.social keeps those actions visible as tracked post objects instead of making publishing disappear into an opaque script.

From release notes to multi-platform publishing

A common Claude Code use case starts with a diff, changelog, or product update. Claude can summarize the change, write a shorter X post, a longer LinkedIn update, a Bluesky variant, and an internal Slack announcement. With bundle.social connected, that same workflow can create scheduled posts across the accounts your team has authorized.

The platform details still matter. LinkedIn may need a company page, TikTok may need a video upload and privacy field, YouTube may need metadata, and X may have media or character constraints. Instead of teaching Claude every native API separately, the bundle.social MCP server and CLI expose one social workflow with structured validation and status tracking.

Capabilities

What Claude can do with bundle.social

The tool surface is wide enough that Claude can run the full publishing loop - draft, upload, schedule, check status.

Multi-platform drafting + scheduling

Claude can create one post targeting many platforms with per-platform payloads (X text-only, LinkedIn long-form, TikTok video + privacy).

Media uploads from URL or path

Claude calls upload_media (MCP) or media:upload (CLI), receives an upload ID, and references it from the post.

Account & team discovery

list_social_accounts / accounts:list lets Claude check what it can post to before drafting - fewer apologies, fewer wrong-account posts.

Status & analytics

Claude can check whether a scheduled post ran, fetch analytics on what's already published, and use it as context for the next draft.

Developer example

Add bundle.social to Claude Code / Claude Desktop

Examples use bundle.social's public API shape: API key authentication, a post date, selected social account types, and platform-specific data.

TypeScript
API request
1// In Claude Code or Claude Desktop, add the MCP server:2// ~/.claude/mcp_servers.json3{4  "bundlesocial": {5    "command": "npx",6    "args": ["-y", "bundlesocial-mcp"],7    "env": { "BUNDLESOCIAL_API_KEY": "sk_live_..." }8  }9}1011// Then talk to Claude:12// "Draft a tweet thread + LinkedIn post about today's release notes,13//  schedule the thread for 9am tomorrow and the LinkedIn post for 10am."14// → Claude calls list_social_accounts, create_post, schedule_post tools.1516// Prefer the CLI as a skill?  bundlesocial-cli ships with a SKILL.md:17// $ npx skills add bundleglobal/bundlesocial-cli

Supported content

MCP tool callsCLI skill invocationsMulti-platform schedulingMedia uploadsAnalytics queries

Honest limitations

  • MCP path requires Claude Desktop or Claude Code (both ship MCP support). Older clients need the CLI skill path instead.
  • Skill discovery via SKILL.md depends on your skill runtime - Anthropic's Skills tooling is the supported path.
  • Per-platform rules still apply - Claude will get validation errors if it produces an invalid TikTok privacy enum, etc.

Guarantees

Developer-first infrastructure

2% error rate

We handle the platform edge cases, media processing, and rate limits so your requests succeed.

Verbose errors

When native APIs fail, we return human-readable error messages and actionable recovery steps.

Flat pricing

No per-post counting. Predictable pricing for teams managing many users, workspaces, and connected accounts.

Same-day support

Direct access to the engineers building the API. We respond to technical issues the same day. Sometimes the same hour. Test us c;

Resources

Technical guides & documentation

FAQ

Questions developers ask before building

Does this work with both Claude Code and Claude Desktop?

Yes. Both speak MCP. The mcp_servers.json snippet is the same; just the file location differs (~/.claude/mcp_servers.json for Claude Code, the Claude Desktop config dir for Desktop).

Should I use MCP or the CLI-as-skill?

MCP is the cleaner integration when the client supports it (Claude Desktop, Claude Code). The CLI-as-skill is the better fit when Claude is shelling out anyway (CI runners, headless agents).

Can Claude post without my approval?

By default Claude follows your client's tool-call confirmation flow. You can also set create_post to default to DRAFT status, so posts queue up for human review before going live.

Where do API keys go?

Into the MCP server's env (BUNDLESOCIAL_API_KEY) - Claude itself never sees the key. Same model for the CLI: env var or --api-key flag.