Connect Claude to social media with MCP: a controlled first draft
Claude Code can write convincing social copy, but it should not receive unrestricted permission to publish it. A useful first connection should prove one safe operation: Claude reads your connected channels, you pick one, it saves a reviewed draft, then reads that exact draft back.
This guide uses PostSider’s hosted MCP server and OAuth. It is a reproducible setup, not a transcript of an independently tested live Claude session or a claim that we published anything. The broader MCP server overview explains the product; this page walks through the Claude Code path.
1. Add the hosted MCP connection
Prerequisites: Claude Code, a PostSider account, and one connected test channel. Install the connection from your terminal:
claude mcp add --transport http postsider https://mcp.postsider.com/mcp
claude mcp list
Open Claude Code and use /mcp to locate PostSider. Complete the OAuth sign-in and carefully inspect which organization and scopes you authorize. Read-only calls need the corresponding read scopes. Grant write scopes only when you intend to save drafts. An OAuth grant is a technical capability; a prompt such as “please ask first” is not a server-side permission boundary.
Use the hosted endpoint https://mcp.postsider.com/mcp, not an API key embedded in a URL. PostSider also offers a local @postsider/mcp package for clients running stdio, but that is a different connection mode. The developer quickstart separates them.
2. Confirm Claude can read your real accounts
Paste this into Claude Code:
Use PostSider to list my connected social channels.
Show the name, network and exact channel ID for each channel.
Do not create, update, schedule, publish or delete anything.
If a channel needs reconnection, tell me without attempting a write.
Check the returned channels against the PostSider dashboard. A real read-only result is more useful than a demo containing made-up channel IDs. If no channel is connected, stop and complete that step in the app.
3. Approve exactly one draft
Choose one test channel and write the text you want saved. Then send:
Target PostSider channel ID: [PASTE_REAL_CHANNEL_ID].
Proposed caption: [PASTE_REVIEWED_TEXT].
First repeat the exact destination and caption for my confirmation.
After I explicitly approve, create exactly ONE post with type=draft.
Do not schedule, publish, edit another draft or expand to other channels.
Return the postId and the destination channel ID from the API response.
Read the new post back by the exact postId and show its saved state,
channel, and text. Stop if readback does not match what I approved.
Wait for the proposed action and approve only the intended draft. Confirm the server result reports DRAFT, not QUEUE or a published state. Then open the calendar to inspect the same post. A tool call returning successfully does not prove that a post appeared on a social network.
4. Choose how much autonomy is appropriate
A simple three-step progression works better than granting an agent broad publishing access on day one.
- Read + draft. Give only the necessary scopes; review every draft and schedule it manually.
- Draft + human approval. On plans supporting a formal approval workflow, let the agent request a review, then have a real team member approve the result in PostSider.
- Scheduled publishing. Consider it only after you have tested retries, time zones, channel-specific rules, recovery after errors, and an explicit publishing policy.
A client confirmation dialog, a PostSider approval request and the eventual social-network publication are different things. Do not describe them as one “approval” step.
For a practical decision tree, see how to prevent AI agent publishing mistakes. If the MCP client will not connect, use the MCP troubleshooting guide. For REST-based automation rather than Claude, consult the API walkthrough.
Demo evidence checklist
A reproducible video should show, in sequence: a real PostSider channel (with account details blurred), the remote MCP client configuration, successful OAuth, the read-only channel list, the human confirmation, the returned post ID, and the matching draft in the calendar.
Stop the recording there. No reason to publish a real post to demonstrate draft creation. Never display OAuth access tokens, organization API keys or third-party account secrets. If the live run fails at any step, show the failed state rather than replacing it with simulated output.
Useful external reference: Claude Code’s official MCP documentation.
Frequently asked questions
Can Claude Code connect to social media through MCP without a social API key?
Yes. Register PostSider's hosted MCP endpoint in Claude Code, then complete the browser OAuth authorization. The account must already have a connected social channel. The hosted flow does not require pasting a PostSider API key into Claude.
Will connecting Claude automatically publish a post?
No. Connecting and listing channels are read operations. Creating a draft requires write permission, but it is not publication. Keep agent tool confirmations enabled and separately approve any later scheduling.
How do I know a Claude-created draft exists?
Ask for the post ID returned by the create operation, read the same ID back, confirm DRAFT state and the exact destination, then verify it in the PostSider calendar. A success message in chat is insufficient.