SocialClaw

How to Post to Social Media From Cursor

July 4, 2026 · 6 min read

Cursor MCP social media setup: the exact mcp.json config, example prompts, and a ship-then-announce workflow so devs post without leaving the editor.

SocialClaw's CLI, API, and dashboard surfaces — the same workspace Cursor's MCP tools publish through.

The most common reason developers don't announce what they ship is friction: the feature is done, the PR is merged, and the last thing anyone wants is to open four social platforms and write four versions of the same post. So the announcement never happens, and the feature launches silently.

Cursor already sits where the work happens. It speaks MCP (Model Context Protocol), which means one small JSON config gives its agent the ability to post: draft the announcement from the actual diff or changelog, upload a screenshot, validate against each platform's rules, and schedule — without leaving the editor.

This guide covers the exact config, prompts that work, and the ship-then-announce workflow that makes it stick.

Nardi Braho - July 4, 2026

TL;DR: Add the stdio MCP block below to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global) with a SocialClaw workspace API key. Test with "list my connected social accounts." Then: ship → "draft an announcement thread from this changelog, validate, schedule for 9am" → keep coding.

How do you add a social media MCP server to Cursor?

Step 1 — connect accounts once. Sign up at getsocialclaw.com, connect your social accounts via OAuth in the dashboard (X, LinkedIn, Instagram professional, Facebook Pages, TikTok, Discord, Telegram, YouTube, Reddit, WordPress, Pinterest), and copy your workspace API key.

Step 2 — add the MCP config. Cursor reads MCP servers from .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all projects). Add:

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

This launches the MCP server from the socialclaw npm package over stdio — no separate install, no server to run. The key lives in the config's env, never in prompts. If you commit .cursor/mcp.json to a shared repo, reference the key from an environment variable instead of inlining it.

Step 3 — test. Open Cursor's agent chat and ask: "List my connected social accounts." If your accounts come back, the connection works.

Cursor's agent now has 17 tools across the publishing lifecycle: discovery (list_accounts, account_capabilities), media (upload_asset), validation (validate_schedule, preview_campaign), publishing (apply_schedule, publish_draft), and inspection (run_status, post_attempts, retry_post, get_analytics, and the rest). The same setup works in Claude Desktop with an identical JSON block — the full multi-client guide is how to post to social media with Claude.

What does the ship-then-announce workflow look like?

The point of doing this in Cursor specifically is context: the agent can read the code you just changed. The workflow that sticks:

  1. Merge the feature.
  2. Prompt from the same editor:
Read CHANGELOG.md for the latest release. Write a 3-tweet X thread
about the export feature (developer audience, no hashtags) and a
LinkedIn post in a more formal tone. Attach ./docs/export-demo.png
to the LinkedIn post. Validate both and show me previews before
scheduling for tomorrow 9am and 10am ET.
  1. Review the previews in chat, approve, done. The agent uploads the screenshot with upload_asset, validates each payload, applies the schedule, and can confirm delivery afterward with run_status.

Other prompts that earn their keep:

  • "Draft a Discord announcement and a Reddit post for r/ourproduct from this PR description. Discord can go out now; show me the Reddit draft first."
  • "Check whether yesterday's posts published. Retry anything that failed."
  • "What were our top posts this month by engagement?"

The habit that keeps it reliable: validate → apply → verify. Validation catches per-platform rule violations (character limits, media shapes, Instagram's professional-account requirement, TikTok's PNG rejection) before anything is live, and checking run_status catches the cases where a platform accepted a post and then failed it asynchronously. "Accepted" is not "published."

Can you automate this beyond the editor?

Yes — the editor flow and CI flow complement each other:

  • Interactive (Cursor): judgment calls, launch posts, anything a human should phrase. You review previews in chat.
  • Unattended (CI): mechanical announcements — release notes on every tag. The same workspace API key drives the socialclaw CLI and HTTP API from a workflow file, with validation still in the pipeline. Full walkthrough: post your changelog to social media from GitHub Actions.

A common split: Cursor for the launch thread that needs taste, GitHub Actions for the routine "v2.4.1 released" posts.

How much review should each platform get?

A per-platform ladder works better than a blanket rule. Discord and Telegram are low-stakes and conversational — let the agent post there without ceremony. Reddit deserves a human read because subreddit norms vary. X sits in the middle: previews are cheap, so review the thread but don't agonize. LinkedIn goes last and always gets an explicit approval, because a mis-toned post on a professional surface costs more than the minute of review saves.

SurfaceStakesSane default
Discord, TelegramLow — conversationalAgent posts autonomously
RedditMedium — subreddit norms varyHuman reads the draft
XMedium — public but fast-movingReview the preview, then apply
LinkedInHigh — professional audienceExplicit approval, every time

Encode whatever ladder you choose in your project rules (Cursor reads project-level instruction files the same way it reads mcp.json), so every session applies it without being reminded. The agent drafts everything; you only gate the surfaces where tone matters.

Why route it through a publishing layer instead of platform APIs directly?

Because eleven platforms means eleven OAuth apps, token refresh flows, media pipelines, and rule sets to maintain — a side project of its own. A hosted publishing layer holds the connected accounts once and normalizes the differences; the MCP server exposes it all as tools any agent can call. Cursor gets the same workspace as Claude Code, the CLI, and the dashboard, so nothing about your setup is editor-specific.

The trade-offs between MCP servers (hosted vs self-hosted, platform coverage, validation and delivery inspection) are ranked in the best social media MCP servers.

FAQ

Can Cursor post to social media?

Not by itself — Cursor has no social accounts. With a publishing MCP server configured in mcp.json, its agent can draft, validate, schedule, and publish to connected accounts through tool calls, and verify delivery afterward.

Where does Cursor's MCP config file live?

.cursor/mcp.json in the project root for per-project servers, or ~/.cursor/mcp.json for global ones. The mcpServers JSON shape shown above is the same one Claude Desktop uses.

Does the SocialClaw MCP server need a separate install?

No. The config launches it with npx -y socialclaw mcp, which pulls the npm package on demand. The same package is also the CLI (socialclaw login --api-key <key>), so anything you do interactively can later be scripted.

Can Cursor post a screenshot or video?

Yes. Point the agent at a file in your repo; it uploads via upload_asset and gets a hosted media URL reusable across posts. Note the platform rules: TikTok photo posts are JPEG/WebP only (PNG fails with file_format_check_failed — SocialClaw auto-converts hosted media), and Instagram requires a professional account.

Should the agent publish without review?

For low-stakes surfaces like Discord or Telegram, auto-posting is fine. For X and LinkedIn, have it validate and show previews, then apply after your approval — one extra message, much lower blast radius.

Does this work with editors other than Cursor?

Yes — the same stdio block works in any MCP-capable client, and Claude Code can use SocialClaw's hosted HTTP endpoint with a one-line claude mcp add. Start from the Claude setup guide if you use multiple clients.

Related product pages

Core SocialClaw pages for the workflows discussed in the blog.

Integration hub Instagram operators
Instagram integrations Browse SocialClaw Instagram integrations for Slack approval workflows, API scheduling, AI captions, media validation, and professional account publishing.
Open page
Scheduling API Developers and SaaS teams
Scheduler API Use SocialClaw as a scheduler API for connected social accounts, media uploads, validation, timed delivery, and post inspection.
Open page
API comparison API buyers
Social media scheduler API comparison Compare social media scheduler APIs by account connection, media handling, validation, scheduling, idempotency, and post-state inspection.
Open page

More from the blog

Claude scheduling an X post through the SocialClaw connector, with a Telegram bot confirming the scheduled queue.
Article 35 6 min read
Claude Desktop Connectors: Add Social Publishing in 3 Minutes

Add social media publishing to Claude Desktop connectors in 3 minutes: the exact JSON config, prompts that work, and a review-before-publish habit.

July 4, 2026 Read article
One AI assistant publishing to X, LinkedIn, Instagram, TikTok, and other social platforms through a single connection.
Article 33 7 min read
How to Connect ChatGPT to Your Social Media Accounts

Can ChatGPT post to social media? What ChatGPT connectors and MCP support actually allow today, the auth caveat that matters, and the setups that work.

July 4, 2026 Read article
Terminal workflow showing an agent installing, authenticating, uploading media, validating, and publishing social posts from Claude Code.
Article 32 6 min read
How to Automate Social Media With Claude Code

Claude Code social media automation, end to end: MCP setup, the socialclaw skill, weekly batch workflows, changelog-to-posts, and the validate-apply-verify loop.

July 4, 2026 Read article