The social media MCP server
One command gives any Model Context Protocol client — Claude, Cursor, ChatGPT, your own agent — a typed toolkit for publishing to seven social networks. Scheduling, retries, token health and image generation included.
{
"mcpServers": {
"postmcpai": {
"command": "npx",
"args": ["-y", "@postmcpai/server"],
"env": {
"POSTMCPAI_API_KEY": "pmcp_sec_•••"
}
}
}
}Two transports, one binary
Local desktop and IDE clients
The client spawns the server as a subprocess and speaks over stdin/stdout. Nothing is exposed to the network, and the key stays in your local config. This is the mode Claude Desktop and Cursor use.
Remote and web connectors
Setting a port switches the same binary into HTTP mode with an OAuth 2.0 / RFC 9728 discovery surface — what Claude.ai and other remote connectors expect. Host it anywhere and hand over the URL.
Sixteen tools, split by what they can break
Read-only · safe to run unattended
get_user_infoPlan tier, credit balance, AI tokens, active workspace and role.
list_workspacesEvery workspace on the key, with ids, roles and connected platforms.
get_connected_accountsConnected profiles and the profileId needed to target them.
get_account_healthConnections whose token expired or is close to it.
list_brandingsBrand kits — tone, audience, keywords, style images.
list_postsThe queue, newest first, with per-profile status and counts.
get_postOne post in full: deliveries, live URLs, per-profile errors.
Mutating · gated behind approval
preflight_postDry run: limits, unconnected profiles, missing media, credit cost.
create_postDraft, schedule or publish to named profiles. One post per profile.
publish_post_nowPublish early, or retry a failure, skipping delivered profiles.
update_postChange copy, targets, schedule, media or status.
reschedule_postMove to a new slot, keeping copy and targets.
reset_stuck_postRelease a post caught mid-publish so it can retry.
delete_postCancel and delete a scheduled or failed post.
generate_imageGenerate an image and return a hosted URL for mediaUrl.
multicallRun up to 20 of the above in one request, validated before execution.
Three separate credentials, and the AI holds none of them
- 1Your social OAuth tokens
Encrypted in the backend vault. Never sent to the MCP server, let alone the model. Reconnecting a network mints a new one; nothing is ever handed out.
- 2Your PostMCP API key
Lives in the MCP server process — an env var, a query parameter or a header. It authenticates calls to the backend. The model never receives it as tool output.
- 3The conversation
The model sees tool names, the arguments it chose, and the results. That is the whole surface: enough to publish a post, not enough to exfiltrate an account.
MCP server FAQ
- What is an MCP server?
- Model Context Protocol is an open standard for exposing tools to AI assistants. An MCP server advertises a set of typed tools; a client such as Claude Desktop, Claude.ai, Cursor or a custom agent discovers them and can call them during a conversation. PostMCP’s server exposes social publishing as 16 such tools.
- How do I install the PostMCP MCP server?
- You do not install anything permanently — npx -y @postmcpai/server fetches and runs it. Point your client at that command, set POSTMCPAI_API_KEY to a key from your dashboard, and the tools appear in the client’s tool list.
- What is the difference between stdio and HTTP mode?
- Stdio is the local mode: the client spawns the server as a subprocess and talks over standard input and output. It is what Claude Desktop and Cursor use. Setting a PORT switches the same binary into streamable HTTP mode, which is what remote connectors like Claude.ai need — you host it and hand over a URL.
- Does my API key get sent to the AI model?
- No. The key lives in the server process — in an environment variable, a URL query parameter or a header — and is used to call the PostMCP backend. The model sees tool names, arguments and results, never the credential. Your social OAuth tokens never leave the backend vault at all.
- Can the server work with multiple workspaces?
- Yes. An API key is bound to the workspace it was issued from, so a bare key is enough for single-workspace use. To act elsewhere, pass workspaceId on a call, set projectId on the connection, or set POSTMCPAI_PROJECT_ID for the process.
- Is it open source?
- Yes — MIT licensed and published on npm as @postmcpai/server. You can read exactly what each tool sends, fork it, or self-host the HTTP mode on your own infrastructure.