Post to social media from Claude Code — MCP server + 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
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-cliPasting copy into the Twitter web UI every release
What bundle.social handles
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.
Pick MCP or skill
Claude Desktop / Claude Code → MCP server (recommended for stable tool calls). Claude shelling out → CLI as a skill.
Add to Claude config
MCP: drop the JSON into ~/.claude/mcp_servers.json. Skill: npx skills add bundleglobal/bundlesocial-cli and Claude discovers it.
Ask Claude to publish
“Draft a release post for X + LinkedIn and schedule both for tomorrow 9am.” Claude calls the tools, returns post IDs.
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.
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-cliSupported content
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.