Social media MCP server
Social media MCP server for Claude, Cursor and ChatGPT
https://api.socifyr.com/api/mcp over Streamable HTTP. Add the URL and your API key as a Bearer header, and the assistant gets 20 tools for posting text, images and video to 18 platforms, scheduling, checking status, reading analytics and renewing expired accounts. Your assistant holds one Socifyr key. It never sees an Instagram, X or LinkedIn token.claude mcp add --transport http socifyr https://api.socifyr.com/api/mcp \
--header "Authorization: Bearer sk_your_key_here"- 20
- MCP tools
- 18
- platforms, one key
- 3
- connected accounts on Free
- 30
- free uploads per month
What you get
Remote server, nothing to install
Works anywhere remote MCP is supported: claude.ai, Claude Desktop, Claude Code, ChatGPT, Cursor, VS Code, Windsurf and Gemini CLI.20 tools, one per real task
Post text, images and video. Schedule one post or up to 500 in a single call. Edit drafts, retry failures, read analytics.Slugs instead of tokens
The assistant targets accounts by slug such asinstagram-mybrand. Platform credentials stay on the Socifyr side.Self-healing connections
refresh_connectionrenews a token without the owner.reconnect_connectionreturns a one-time link when the platform cannot refresh.
Connect Socifyr to Claude Code as an MCP server
- 1
Create an API key
Create a workspace API key in the Socifyr dashboard under API keys. It starts with sk_. - 2
Add the server
Run: claude mcp add --transport http socifyr https://api.socifyr.com/api/mcp --header "Authorization: Bearer sk_your_key_here". - 3
Verify
Run claude mcp list, then ask the assistant to list your Socifyr connections.
How do I connect Socifyr to Claude, Cursor or ChatGPT?
Create an API key at app.socifyr.com/dashboard/api-keys. Each key belongs to one workspace, so the connector acts on that workspace. Then pick your client.
| Client | Where to configure | URL field |
|---|---|---|
| claude.ai, Claude Desktop | Settings, Connectors, Add custom connector | URL plus Request headers |
| Claude Code | claude mcp add --transport http | command flag |
| ChatGPT | Settings, Connectors (developer mode) | URL plus headers |
| Cursor | ~/.cursor/mcp.json | url plus headers |
| VS Code (Copilot agent) | .vscode/mcp.json | url plus headers, type: "http" |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | serverUrl plus headers |
| Gemini CLI | ~/.gemini/settings.json | httpUrl plus headers |
claude mcp add --transport http socifyr https://api.socifyr.com/api/mcp \
--header "Authorization: Bearer sk_your_key_here"{
"mcpServers": {
"socifyr": {
"url": "https://api.socifyr.com/api/mcp",
"headers": {
"Authorization": "Bearer ${env:SOCIFYR_API_KEY}"
}
}
}
}- claude.ai: open Settings, Connectors, Add custom connector. Enter
https://api.socifyr.com/api/mcp, expand Advanced, add the headerAuthorization: Bearer sk_your_key_here, and leave sign-in set to "No sign-in required". The header is the authentication. - ChatGPT: needs a plan with Connectors and developer mode (Plus, Pro, Team or Enterprise). Create a connector with the same URL and the same Authorization header.
Which tools does the Socifyr MCP server expose?
| Tool | What it does |
|---|---|
list_connections | Lists connected accounts and their slugs, with a health flag. Call it first. |
post_text | Publishes text to one or more slugs now. Optional firstComment. |
post_image | Publishes one or more images, from public URLs or media library IDs. |
post_video | Publishes a video from a public URL or media library ID. |
schedule_post | Schedules a text post for an ISO 8601 time. |
schedule_posts | Schedules 1 to 500 text posts in one call and reports per-row errors. |
check_post_status | Returns the status and per-platform result of a post. |
list_posts | Lists drafts, scheduled and published posts with their IDs. |
update_post | Edits a draft or not-yet-published scheduled post. connections replaces the full target set. |
publish_draft | Publishes a saved draft immediately. |
retry_post | Retries the channels that failed on a post. |
refresh_connection | Renews an account token without the owner, when the platform supports refresh. |
reconnect_connection | Returns a single-use link for the owner to re-authorize an expired account. |
get_post_analytics | Per-platform engagement metrics for one post. |
get_follower_growth | Follower change per connected account over a window. |
compare_accounts | Side-by-side followers, posts published and engagement. |
get_usage | Shows posts, accounts and storage used against your plan. |
list_media | Lists media library files and IDs you can reuse in posts. |
delete_media | Deletes media library items by ID. |
generate_caption | Drafts captions from a description, URL or brief, tuned per platform. |
What can I ask my assistant to do?
Once the connector is enabled, plain language is enough. The assistant picks the tool and fills the arguments.
- "List my Socifyr connections." (calls
list_connectionsand reads back your slugs) - "Post 'just shipped a new feature' to LinkedIn and X." (calls
post_textwith both slugs) - "Schedule these five posts for next week at 9am on linkedin-mybrand." (calls
schedule_posts) - "Did my last post go out everywhere? Retry anything that failed." (calls
check_post_status, thenretry_post) - "Which accounts are about to expire? Renew them." (calls
list_connections, thenrefresh_connection)
Scheduling requires a paid plan. Free workspaces can publish immediately but not schedule. See how scheduling works.
What happens when an account token expires?
list_connections flags accounts as expiring or needing reconnect, and a failed post reports reconnect_required. The assistant can handle both without you opening the dashboard. It calls refresh_connection first. If the platform cannot refresh, it calls reconnect_connection, which returns a link that works once and expires after 10 minutes. The owner opens it and approves the same account, and the slug and any scheduled posts keep working.
{ "connection": "instagram-mybrand" }The full walkthrough is in OAuth token expiry and how to refresh or reconnect accounts.
Is it safe to give an AI agent a posting key?
Keys can carry guardrails: a daily post cap, a monthly X spend cap, and a mode that routes every post into an approval queue for a human. A key with any guardrail cannot manage keys, members, webhooks or connections, so it cannot lift its own limits. Read how to give an AI agent safe access to social accounts.
Frequently asked questions
What is a social media MCP server?
What is the Socifyr MCP server URL?
https://api.socifyr.com/api/mcp. It uses the Streamable HTTP transport and authenticates with an Authorization: Bearer sk_... header. Self-hosted installs use {API_URL}/api/mcp.Does the MCP server work with ChatGPT?
Does the agent get my Instagram or X password or token?
Can the MCP server schedule media posts?
schedule_post and schedule_posts schedule text posts. For scheduled media, save a draft and publish it at the target time from code, or schedule through the REST API or SDK.Is there a local stdio option?
@socifyr/mcp globally and register the socifyr-mcp command in your client with SOCIFYR_API_KEY and SOCIFYR_WORKSPACE_ID set. Use it when a client cannot reach a remote URL.Related
Put social media mcp server to work
One key, 18 platforms, flat pricing from $9.99. The free plan needs no card.