# How to Post to Social Media from Claude Code

Source: https://blog.lots.social/post-to-social-media-from-claude-code
Published: 2026-10-05T08:32:32.121+00:00

Claude Code can post to social media once you connect it to a publishing tool over MCP. Add LotsSocial's MCP server with one terminal command, sign in once, and Claude Code can save drafts, schedule posts to your connected accounts and check whether they went live. You keep working in the same session where you wrote the code.

Claude Code can already write a good release post from your diff. What it can't do on its own is reach your LinkedIn or X account. The MCP server is that missing step.

Here's the whole setup, with screenshots from my own terminal, from adding the server to the first draft.

## What you need

- Claude Code, on a Claude plan that includes it.
- A LotsSocial account. You can create one during sign-in; new accounts get 5,000 free credits, with no card required.
- At least one social account you can authorize. LotsSocial supports 12 networks: LinkedIn, Instagram, X, Facebook, Threads, Bluesky, Mastodon, TikTok, YouTube, Pinterest, Reddit and Google Business.

## Step 1: Add the LotsSocial MCP server

Run this in your terminal:

```bash
claude mcp add --transport http lotssocial https://api.lots.social/mcp
```

Claude Code confirms it added the server and tells you which config file it changed:

![Terminal output after running claude mcp add for LotsSocial](https://media.lots.blog/07a77860-f0b5-46ac-b531-e63b10b4f925/claude-code-mcp-add-56f7dcf0.webp)

That registers LotsSocial as a remote HTTP server. There's nothing to install: no LotsSocial CLI, no package, no API key in your environment.

By default, Claude Code saves the server for the current project only (`local` scope), as the screenshot shows. If you want LotsSocial in every project, add `--scope user`:

```bash
claude mcp add --transport http --scope user lotssocial https://api.lots.social/mcp
```

Use `--scope project` only if you want the server listed in the repository's `.mcp.json` for your whole team. Each person still signs in with their own LotsSocial account.

## Step 2: Sign in

Start Claude Code. Until you sign in, it shows **1 MCP server needs authentication · run /mcp** at the top of the session. Run:

```text
/mcp
```

Select **lotssocial**. The server shows as not authenticated. Choose **Authenticate**:

![The lotssocial server in Claude Code's /mcp menu, with Authenticate selected](https://media.lots.blog/07a77860-f0b5-46ac-b531-e63b10b4f925/claude-code-mcp-authenticate-e51abede.webp)

Your browser opens a LotsSocial page asking whether to allow Claude Code. If you aren't signed in to LotsSocial in that browser, sign in first. Check that the page shows the email you expect, then choose **Allow**:

![LotsSocial asking whether to allow Claude Code (lotssocial)](https://media.lots.blog/07a77860-f0b5-46ac-b531-e63b10b4f925/lotssocial-allow-claude-code-4b5a5673.webp)

The page also notes that the application registered itself and isn't verified by LotsTech, and shows where you'll return: `localhost` with a port number. That's normal for Claude Code. It registers itself with each MCP server you connect, and it receives the sign-in on your own computer. Don't allow it if the return address is anything other than `localhost`.

The browser then says you can close the tab, and Claude Code confirms the connection:

![Claude Code showing Authentication successful. Connected to lotssocial.](https://media.lots.blog/07a77860-f0b5-46ac-b531-e63b10b4f925/claude-code-authenticated-ecabc793.webp)

You can also sign in from the terminal with `claude mcp login lotssocial`. Anthropic's [Claude Code MCP documentation](https://code.claude.com/docs/en/mcp) covers scopes and authentication in detail.

## Step 3: Connect a social account

Ask Claude Code:

> List my connected social accounts on LotsSocial. If my LinkedIn profile isn't connected, give me a link to connect it.

Claude Code calls LotsSocial and lists your accounts, grouped by brand:

![Claude Code listing connected LotsSocial accounts in a table](https://media.lots.blog/07a77860-f0b5-46ac-b531-e63b10b4f925/claude-code-list-accounts-9aba4e96.webp)

If an account is missing, Claude Code returns a connection link. Open it yourself and authorize the account on the network's own page. You never paste a social password into the terminal. The link stays valid for one hour and can connect several accounts in one visit.

When the accounts come back, check that each one has the name you expect. If you run more than one brand, tell Claude Code which brand you're posting for so it doesn't pick an account from another one. The list also shows each account's limits: in the example above, the X account is Premium with a 25,000-character limit.

## Step 4: Turn your work into a draft

This is where Claude Code is useful, because it can read the change you just made. A prompt like this keeps it honest:

> Read the diff on this branch and list the changes a user would notice. Then write a LinkedIn post (under 1,300 characters) and an X post (under 280) announcing them. Only mention what the diff supports. Show me both versions, then save them as one LotsSocial draft with a separate caption for each account. Don't schedule anything yet.

A draft is the safe default. **Drafts never publish.** You can save as many as you like, change them, and schedule only the ones you approve.

Each account has its own caption limit, and LotsSocial checks it before saving. Send a 303-character caption to an X account limited to 280 and LotsSocial rejects it with a clear error: the account, 303/280 characters, over by 23. Nothing is saved until the caption fits.

Claude Code reads that error and can shorten the caption itself. X Premium accounts accept longer posts, and the account list shows which limit applies.

Instagram, TikTok, YouTube and Pinterest need an image or video before a post can be scheduled. Ask Claude Code to upload the file through LotsSocial and attach it to the draft; a file you mention in the chat isn't uploaded automatically.

## Step 5: Schedule the approved version

Once you're happy with the text, give Claude Code the exact account, date, time and timezone:

> Schedule the LinkedIn version on my profile "[account name]" for Tuesday 13 October 2026 at 9:00 AM Europe/London. Leave the X version as a draft. Return the post ID, the account, the scheduled time with its timezone, and the status.

Check three things in the reply:

1. **The account** is the one you meant.
2. **The time and timezone** match your request.
3. **There's a post ID and a scheduled status**, which means LotsSocial accepted it.

Scheduled posts are picked up by LotsSocial's queue, which checks every few minutes, so expect publication shortly after the time you set rather than to the second. You don't need to keep Claude Code open.

You can change or cancel a scheduled post until publishing starts. Give Claude Code the post ID so it edits that post instead of creating a new one.

## Step 6: Check that it went live

After the scheduled time, ask:

> Check post [post ID]. Did it publish on every account? Give me the live links, and explain any error. Don't create a new post.

A live link is the real confirmation. If a network returned an error, for example because an account needs to be reconnected, Claude Code can tell you what failed and which step fixes it. Check the network before retrying so you don't post twice.

## A workflow that fits how you already work

The useful part isn't one post. It's that announcing work becomes the last step of doing it:

- Finish a feature, then ask for release drafts from the diff in the same session.
- At the end of the week, ask Claude Code to summarize merged pull requests as a changelog post and save it for review.
- Keep a short voice guide in your repository (who you write for, words to avoid) and tell Claude Code to read it before drafting.

If you'd rather see posts on a calendar, every draft and scheduled post also appears in the LotsSocial app. Using the app is optional.

## Common questions

### Is LotsSocial a command-line tool?

No. The commands above configure Claude Code's own MCP client. LotsSocial is a hosted MCP server and REST API; Claude Code talks to it over HTTPS.

### Does Claude Code post without asking me?

Claude Code acts on your instructions. If you ask for drafts, it saves drafts, and drafts never publish. Ask it to show you the text before it schedules anything, as in the prompts above.

### Can I delete a post after it's published?

LotsSocial can delete drafts and scheduled posts. Once a post is live, delete it on the network itself; Claude Code can give you the live link.

### What does it cost?

Pick a plan for a fixed monthly price (Starter covers 12 connected accounts for $20 a month), or pay as you go at $2 per connected account per month from credits, charged daily. Media storage, posts, brands and team members are unlimited. New accounts get 5,000 free credits, valid for 90 days. Your Claude plan is separate. Current rates are on the [pricing page](https://lots.social/pricing).

### Does this work with other coding agents?

Yes. Any client that supports remote MCP servers can connect to the same URL. There are setup guides for [Codex](https://lots.social/agents/codex), [Cursor](https://lots.social/agents/cursor) and [ChatGPT](https://blog.lots.social/how-to-schedule-linkedin-posts-with-chatgpt).

## Start with one draft

Add the server, sign in, and ask Claude Code to turn your last change into a draft. Nothing goes out until you schedule it.

```bash
claude mcp add --transport http lotssocial https://api.lots.social/mcp
```

[Try LotsSocial for free](https://lots.social), or follow the [Claude Code setup guide](https://lots.social/agents/claude-code).
