← Back to blog
AI Agents10 min read

Automate Social Media with Roo Code (Modes + MCP Setup)

PostAxis Team·
Roo Code logo next to the PostAxis logo with the title Automate Social Media with Roo Code

Roo Code can draft and schedule social media posts about your work once you add the PostAxis MCP server to its MCP settings. It is one JSON entry with the streamable-http transport and a browser sign-in, and after that any Roo mode can announce a merge, share release notes or plan a launch week. This guide is for developers who already use Roo Code in VS Code and want posting to fit the way they split work across modes.

That last part is what makes Roo different. Instead of one agent that does everything, you can give social posting its own mode: one that reads your repo and talks to PostAxis, but can't touch your code.

What you can automate with Roo Code

  • Merge announcements from Code mode. Finish a feature, then ask the same mode to schedule an X and LinkedIn post about it.
  • Launch-week plans in Architect mode. Lay out a week of posts around a release, validate them, then save.
  • A dedicated announcer mode. A custom mode with read and MCP access only, tuned to your brand voice, that you switch to whenever something ships.
  • Changelog drafts. Turn CHANGELOG.md into a Telegram post saved as a draft for review.
  • Hand-offs in Orchestrator mode. On larger tasks, the announcement becomes the final subtask after the code work is done.

What you need

  • A PostAxis account. Every plan has a 7-day free trial and includes MCP access with OAuth sign-in.
  • Social accounts connected under Accounts in PostAxis (X, LinkedIn, Threads, Telegram, Instagram, TikTok, YouTube or Facebook Pages).
  • Roo Code in VS Code, with a model provider set up.
  • Optional: the PostAxis API add-on, only if Roo doesn't open a sign-in and you need an API key instead.

How to connect Roo Code to PostAxis (step by step)

  1. Create your PostAxis account. Sign up at app.postaxis.io. Every plan includes MCP access and starts with a 7-day trial.
  2. Connect your social accounts. Open Accounts in PostAxis and connect your networks. Roo can only post to accounts connected here, and it never sees your social passwords.
  3. Open MCP settings. In Roo Code, click the MCP icon, then choose Edit Global MCP to use PostAxis in all projects, or Edit Project MCP to create .roo/mcp.json for this repository only.
  4. Add the PostAxis entry. Paste this block. If mcpServers already exists, add only the postaxis entry.
{
  "mcpServers": {
    "postaxis": {
      "type": "streamable-http",
      "url": "https://postaxis.io/api/mcp"
    }
  }
}
  1. Sign in. Save the file. If Roo asks you to authenticate, approve on the PostAxis page that opens in your browser.
  2. Check it works. From any mode, ask:
Which accounts can you post to?

Roo asks to use the list_accounts tool. Approve, and it lists your connected profiles. Roo asks before each tool call unless you have allowed that tool to run automatically.

Global or project? Global settings put PostAxis in every project you open. A project file at .roo/mcp.json can be committed so the whole team has it in that repo, and each person still signs in to their own PostAxis account.

Give posting its own mode

Roo's custom modes let you set a role, custom instructions and which tool groups the mode can use. A mode with only the read and mcp groups can read your changelog and call PostAxis, but cannot edit files or run commands. That is a sensible boundary for something that talks to the public.

You can create a mode from Roo's Modes settings, or define it in a .roomodes file at the project root. The schema has changed over time, so treat this as a starting point and check Roo's docs for the current format:

{
  "customModes": [
    {
      "slug": "announcer",
      "name": "Announcer",
      "roleDefinition": "You write and schedule social media announcements for this project using the PostAxis MCP tools.",
      "groups": ["read", "mcp"],
      "customInstructions": "Audience: developers using our API. Plain, specific tone. No hashtags on LinkedIn, at most one on X. Always check get_platform_rules first. Validate bulk plans with validate_only before saving. Default timezone Europe/Berlin. Save as draft unless told to schedule."
    }
  ]
}

Now "switch to Announcer" is all it takes to go from building to telling people about it.

5 workflows you can copy

Announce a merge from Code mode

You just finished the feature and Roo still has every detail in context. No need to switch.

The export feature is merged. Announce it on X and LinkedIn tomorrow at 9:00 Europe/Berlin.
X: one sentence on what users can do now plus https://example.com/docs/export.
LinkedIn: 3 short paragraphs, problem then solution then how to try it.

Roo calls list_accounts, get_platform_rules, then create_post with a caption per account and the schedule. You get something like: "Scheduled for tomorrow 9:00: an X post and a LinkedIn post about the new export feature."

Plan a launch week in Architect mode

Architect mode is built for planning, which is what a launch week mostly is.

We release 2.0 next Tuesday. Plan posts from Monday to Friday next week:
a teaser on Monday, the announcement on Tuesday at 15:00 Europe/London on X, LinkedIn
and Threads, two feature posts on Wednesday and Thursday, a recap on Friday.
Write the copy, then validate the whole plan without saving and show me the result.

Roo writes the plan, then calls create_posts_bulk with validate_only set to true. That checks up to 50 posts against every network's rules and saves nothing. When you reply "save it", Roo runs the same call for real. Bulk calls cannot publish immediately, so every post in the plan gets a time.

Draft a Telegram post from the changelog in your announcer mode

Switch to the custom mode from the section above, then:

Draft a Telegram post from the newest section of CHANGELOG.md. Keep the
New, Improved and Fixed groups. Save it as a draft.

Roo reads the file (allowed by the read group) and calls create_post with draft status. It can't accidentally edit the changelog while doing so, because the mode has no edit access.

Make the announcement the last Orchestrator subtask

For bigger tasks, Orchestrator mode breaks work into subtasks for other modes. Tell it upfront that shipping includes telling people.

Implement the webhook retry settings described in docs/specs/webhook-retries.md.
When the code and tests are done, add a final subtask in Announcer mode:
draft an X post and a LinkedIn post about it, saved as drafts for my review.

The code subtasks run in Code mode as usual. The final subtask runs in your announcer mode, which calls list_accounts, get_platform_rules and create_post with draft status.

Check what's going out this week

A quick read-only check you can run from Ask mode or any other mode with MCP access.

What's scheduled this week? Group by day, show network and the first line of each post,
and flag anything that would break Instagram's or X's rules.

Roo calls list_posts for the date range, get_post for details and get_platform_rules to check limits. If you want fixes, follow up with "fix the flagged ones" and Roo calls update_post, asking before each edit.

Network limits Roo Code works within

NetworkCaption limitMedia rules
X (Twitter)280 charactersText-only allowed; up to 4 images or one video
LinkedIn3,000 charactersText-only allowed; up to 9 images or one video
Threads500 charactersText-only allowed; up to 10 images or one video
Telegram4,096 characters (1,024 with media)Text-only allowed; up to 10 images or one video
Instagram2,200 charactersMedia required: 1 to 10 images or one video (Reel); professional accounts only

Video must be MP4 or MOV, 3 to 300 seconds, in one of the aspect ratios 16:9, 9:16, 4:3, 3:4 or 1:1, and images and video can't be mixed in one post. PostAxis checks every post against these rules before saving, so problems come back to Roo as clear errors it can fix, not as failed posts on the morning of your launch.

Tips for better posts

  • Keep brand voice in Roo's rules, not in every prompt. Roo reads custom instructions from its settings and from rule files in your project (recent versions use a .roo/rules/ folder; check your version's docs). Put audience, tone and banned phrases there.
  • Restrict the posting mode. Give your announcer mode read and mcp only. It is the cheapest safety net you can add.
  • Validate before you save a plan. Ask for validate_only on any bulk schedule.
  • Always name the timezone. "15:00 Europe/London" every time, or set a default in the mode's instructions.
  • Draft first, schedule later. Have the mode save drafts until the output consistently sounds like you, then let it schedule.
  • Attach media you already have. PostAxis does not generate images or video. Roo can attach a screenshot from a public URL with upload_media_from_url, or a local file through create_upload_link.

Troubleshooting

Roo doesn't open a sign-in. Add an API key header to the postaxis entry instead. Keys need the API add-on and are created under Settings → API keys.

{
  "mcpServers": {
    "postaxis": {
      "type": "streamable-http",
      "url": "https://postaxis.io/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

My custom mode can't see PostAxis. Check that the mode includes the mcp tool group, and that PostAxis is enabled in the MCP panel.

Roo says no accounts are connected. Connect at least one account under Accounts in PostAxis. If you have several workspaces, say which one: "use my Acme workspace".

401 Unauthorized or "sign in again". The sign-in expired or was revoked. Reconnect from Roo, or check that your API key is still active.

A post was rejected before saving. PostAxis checks caption length, media count and video format first. Ask Roo to fix what the error describes and try again.

FAQ

Can Roo Code post to social media?

Yes. With the PostAxis MCP server configured, Roo Code can draft, schedule and publish posts to X, LinkedIn, Threads, Telegram, Instagram, TikTok, YouTube Shorts and Facebook Pages you connected in PostAxis.

Does PostAxis work in every Roo mode?

It works in any mode that has access to the MCP tool group, which includes the built-in modes. Custom modes need mcp in their groups.

Should I use global or project MCP settings?

Use global settings to have PostAxis in every project. Use .roo/mcp.json to share it with a team in one repository; each person still signs in to their own PostAxis account.

Is it free?

Roo Code is open source. PostAxis includes MCP access with OAuth in every plan, and every plan starts with a 7-day free trial. API keys need the API add-on.

Does Roo Code see my social media passwords?

No. Social accounts are connected inside PostAxis. Roo signs in to PostAxis with OAuth, and you can revoke it anytime under Settings → API keys → Connected agents.

Paste the config, create an announcer mode, and ask it to draft a post about what you shipped this week. The Roo Code agent page has the setup in short form, the MCP reference documents every tool, and the complete guide to AI agents for social media covers how to pick an agent. For similar setups, see the Cline guide and the Kiro guide. Ready? Start your free trial.

roo code social mediaroo code mcproo code custom modesautomate release announcementsschedule social posts from vs code

Ready to simplify your social media?

PostAxis helps builders and creators publish to all platforms from one dashboard with scheduling, cross-posting, and automation.

Join the waitlist →

Wide list of social channels
on one axis

Harness every network you need. Platforms orbit PostAxis; you stay at the center.

Browse all platform pages

Frequently asked questions

You get a 7-day free trial. A card is required to start. Cancel before the trial ends and you pay nothing. After that, you pick a Creator, Growth, or Pro plan.