Social Media MCP Server: Connect Any MCP Client to PostAxis
Any agent that speaks the Model Context Protocol can schedule social media posts through PostAxis: point it at https://postaxis.io/api/mcp, approve the sign-in, and it gets 11 tools for listing accounts, uploading media and creating, scheduling, editing and deleting posts across eight networks. PostAxis is a standard remote MCP server over Streamable HTTP with OAuth 2.1, so a client we have never heard of works the same way as the ones with dedicated guides. This guide is for developers wiring PostAxis into an editor, a custom framework or an in-house agent, and for anyone who wants to understand what their agent is actually doing.
What you can automate with any MCP client
Once connected, the client can do anything the 11 tools allow. In practice that means:
- Scheduling from wherever the content starts: an editor, a support tool, a CMS hook, a script.
- Multi-network posts with a separate caption per account in a single post.
- Bulk plans of up to 50 posts per call, with a dry run that saves nothing.
- Queue management: listing, inspecting, editing and deleting posts before they go out.
- Reporting loops: checking what published or failed this week and rescheduling the failures.
What you need
- A PostAxis account. Every plan starts with a 7-day free trial and includes MCP access with OAuth sign-in.
- At least one social account connected under Accounts in PostAxis.
- An MCP client that supports remote servers, or a stdio-only client plus the
mcp-remotebridge. - The API add-on, only if your client cannot do OAuth and needs an API key.
How the PostAxis MCP server works
Endpoint. One URL for everything: https://postaxis.io/api/mcp.
Transport. Streamable HTTP in stateless mode with JSON responses. There is no session to keep alive, so serverless functions, short-lived scripts and long-running agents all behave the same way. PostAxis does not offer a stdio server; it is remote only.
Auth, option one: OAuth 2.1. This is the default and works on every plan. PostAxis supports dynamic client registration, so a compliant client registers itself, opens the PostAxis sign-in in a browser, and receives a token after you approve. Discovery documents are served at /.well-known/oauth-protected-resource, which is where a client starts. No keys are copied or stored by you.
Auth, option two: API key. For headless or OAuth-less clients. Create a key under Settings → API keys (this needs the API add-on) and send it as a header:
Authorization: Bearer YOUR_API_KEY
Clients that only accept a URL can put the key in the query string instead: https://postaxis.io/api/mcp?key=YOUR_API_KEY. That URL is then a secret, so use the header whenever your client allows it.
Revocation. OAuth clients appear under Settings → API keys → Connected agents. Revoke one there, or revoke an API key, and access stops immediately.
Limits. Each account can create up to 300 posts per 24 hours through MCP. create_posts_bulk takes up to 50 posts per call, supports validate_only=true, and does not allow publish="now".
The 11 tools
| Tool | What it does |
|---|---|
list_workspaces | Lists your PostAxis workspaces |
list_accounts | Lists connected social accounts per workspace |
get_platform_rules | Returns caption limits and media rules per network |
upload_media_from_url | Pulls an image or video from a public URL into your media library |
create_upload_link | Returns a one-time link for uploading a local file |
create_post | Drafts, schedules or publishes one post |
create_posts_bulk | Schedules up to 50 posts in one call |
list_posts | Lists posts by status or date range |
get_post | Returns one post with its per-network status |
update_post | Edits text, media or time before the post goes out |
delete_post | Removes a draft or scheduled post |
A few things are worth knowing as an integrator. One post can target several accounts, and captions can be overridden per account, but media is shared by the whole post. PostAxis does not generate images or video: media comes from a public URL through upload_media_from_url, or from a local file through a create_upload_link link. And every post is checked against each network's rules before it is saved.
How to connect your MCP client (step by step)
-
Create your PostAxis account at app.postaxis.io.
-
Connect your social accounts. Open Accounts in PostAxis and connect Instagram, TikTok, YouTube, X, LinkedIn, Facebook, Threads or Telegram. Your agent can only post to accounts connected here, and it never sees your social media passwords.
-
Add the server to your client. Most clients use an
mcpServersblock like this. Some call the URL fieldserverUrlorhttpUrlinstead ofurl; check your client's docs for the exact key.
{
"mcpServers": {
"postaxis": {
"type": "http",
"url": "https://postaxis.io/api/mcp"
}
}
}
-
Sign in. On first use the client opens the PostAxis sign-in in your browser. Log in and approve.
-
Check it works. Your client should list 11 PostAxis tools, from
list_workspacestodelete_post. Then ask:
List my PostAxis accounts.
If you get real account names back, the connection, auth and tool calls all work.
If your client only supports stdio
Bridge it with mcp-remote. The bridge runs locally as a stdio server, talks to PostAxis over HTTP and handles the OAuth sign-in in your browser.
{
"mcpServers": {
"postaxis": {
"command": "npx",
"args": ["mcp-remote", "https://postaxis.io/api/mcp"]
}
}
}
The command on its own is npx mcp-remote https://postaxis.io/api/mcp, which is handy for testing in a terminal. You need Node.js installed for npx.
If your client can't do OAuth
Send the API key as a header. The field name for headers varies by client; the shape is usually:
{
"mcpServers": {
"postaxis": {
"type": "http",
"url": "https://postaxis.io/api/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Keep config files that contain a key out of version control.
4 workflows you can copy
Say hello to every account
The smallest real test: one post, every account, a fixed time.
Schedule "hello from my agent" to all my accounts tomorrow at 09:00 UTC.
Skip any network that requires an image or video, and tell me which ones you skipped.
What the agent does: list_accounts, get_platform_rules, then one create_post targeting the text-friendly accounts. Instagram, TikTok and YouTube require media, so a good agent skips them instead of letting the call fail. You get something like: "Scheduled to 4 accounts for 9:00 tomorrow: X, LinkedIn, Threads and Telegram."
Plan a month, validate, then save
The pattern every bulk workflow should follow.
Plan 30 days of posts for X and LinkedIn, one per day at 10:00 Europe/Paris,
about practical tips for small online shops. Run create_posts_bulk with
validate_only=true and report every error. Fix the errors, validate again,
and only save when the whole plan passes.
What the agent does: 30 posts, each carrying an X caption and a LinkedIn caption, fit in a single create_posts_bulk call (the limit is 50 posts per call). It validates, fixes, validates again and saves. Nothing touches your calendar until the plan is clean.
Put a photo out tonight
Here's today's product shot: https://example.com/shot.jpg
Post it to Instagram and Threads at 18:00 America/New_York. Two-line caption,
no more than three hashtags.
What the agent does: upload_media_from_url, then create_post with the media attached to both accounts and a caption per network.
Review the week and recover failures
Tell me which posts published this week and which failed. For each failure,
show me the reason. Reschedule the failed ones for tomorrow at 12:00 UTC
after fixing whatever caused the failure.
What the agent does: list_posts by date range and status, get_post on each failure to read the per-network status, then update_post with the fix and the new time.
Network limits your agent works within
| Network | Caption limit | Media rules |
|---|---|---|
| X (Twitter) | 280 characters | Optional; up to 4 images or one video |
| Threads | 500 characters | Optional; up to 10 images or one video |
| 3,000 characters | Optional; up to 9 images or one video | |
| Telegram | 4,096 characters, 1,024 with media | Optional; up to 10 images or one video; channels |
| 63,206 characters | Optional; up to 10 images or one video; Pages only | |
| 2,200 characters | Required; 1 to 10 images or one video; professional accounts | |
| TikTok | 2,200 characters | Required; photo posts JPEG or WebP only; first 150 characters become the title |
| YouTube | 5,000 characters | Exactly one video (Shorts); title from youtube_title or the first line, max 100 |
Video must be MP4 or MOV, 3 to 300 seconds, in 16:9, 9:16, 4:3, 3:4 or 1:1. One video per post, never mixed with images.
These rules are enforced server-side, before anything is saved. That means a client with weak validation, a small model or a buggy prompt cannot put a broken post into your queue. It gets an error describing what to change, which is exactly the feedback an agent needs to retry.
Safe patterns for production agents
- Call
get_platform_rulesbefore writing. Rules live on the server, so your agent never has to hardcode limits. - Validate first. Use
validate_only=trueon every bulk call before the real one. It checks everything and saves nothing. - Default to drafts for new automations. Drafts appear under Drafts in PostAxis and can be scheduled by a person from the calendar.
- Always pass a timezone. "09:00 Europe/Paris", never bare times. Without one the agent falls back to whatever timezone it was told, or UTC.
- One credential per agent. Separate OAuth connections or separate keys mean you can revoke one agent without breaking the others.
- Name the workspace. If you have several, say which one in your instructions so the agent does not guess.
Troubleshooting
My client only supports stdio servers. Use npx mcp-remote https://postaxis.io/api/mcp as the server command.
My client can't do OAuth. Send Authorization: Bearer YOUR_API_KEY. Keys are created under Settings → API keys and need the API add-on.
401 Unauthorized or "sign in again". The sign-in expired or was revoked. Reconnect so the client opens the sign-in again, or check that your key is still active.
The agent says no accounts are connected. Connect an account under Accounts in PostAxis, and name the workspace if you have more than one.
Posts are scheduled at the wrong time. Include the timezone in every request and fix existing posts with update_post.
FAQ
What is a social media MCP server?
It is a server that exposes social media actions as tools an AI agent can call over the Model Context Protocol. The PostAxis MCP server at https://postaxis.io/api/mcp gives agents 11 tools to list accounts, upload media and create, schedule, edit and delete posts.
Does PostAxis support stdio?
Not directly; it is a remote server. Bridge a stdio-only client with npx mcp-remote https://postaxis.io/api/mcp.
Is there a rate limit?
Each account can create up to 300 posts per 24 hours through MCP, and a bulk call takes up to 50 posts.
Which transport does the server use?
Streamable HTTP in stateless mode with JSON responses. Discovery documents are served at /.well-known/oauth-protected-resource.
Is it free?
MCP access with OAuth is included in every PostAxis plan, and every plan starts with a 7-day free trial. API keys need the API add-on.
What stops an agent from posting something wrong?
Every post is checked against each network's rules before it is saved, bulk plans can be validated without saving, everything appears in your calendar, and you can revoke an agent at any time under Settings → API keys.
If your client speaks MCP, it can run your social calendar. The any MCP client page has the config at a glance, the MCP reference documents each tool, and the complete guide to AI agents for social media explains how to choose an agent. For automation-style setups, see the guides for n8n and OpenClaw. Start your free trial and connect your first client.
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 →