Agents and MCP

How MCP servers let Claude post to social media

A Model Context Protocol (MCP) server exposes actions as named tools that an AI client such as Claude can call. For social media, the server wraps a publishing API: Claude calls post_text with account slugs and a caption, the server publishes, and the result comes back as text Claude can read. Socifyr runs a remote MCP server at https://api.socifyr.com/api/mcp with 20 tools.
Published 4 min read

What is an MCP server, in plain terms?

MCP is an open protocol that standardizes how AI assistants discover and call external tools. A server lists its tools with names, descriptions and typed arguments. The assistant reads that list and decides when a tool fits the request. You do not write glue code. You add the server URL to the client once and ask for what you want in plain language.

Without MCP, an assistant that "posts to Instagram" either needs you to paste tokens into a script or drives a browser. With MCP it makes a structured call, gets a structured answer, and has nothing to scrape.

What actually happens when I ask Claude to post?

Say you ask: "Post 'just shipped a new feature' to LinkedIn and X." A typical sequence looks like this.

  1. Claude calls list_connections to learn your slugs, for example linkedin-myhandle and x-myhandle. The tool description tells it to call this first.
  2. Claude calls post_text with { "caption": "just shipped a new feature", "connections": ["linkedin-myhandle", "x-myhandle"] }.
  3. The server returns "Post submitted successfully" with a post ID and a request ID.
  4. Claude calls check_post_status with that ID and reads a per-platform result, such as a success with a URL for LinkedIn and a failure reason for X.
  5. If something failed, Claude explains why and, with your go-ahead, calls retry_post.

Every tool returns plain text, and failures come back flagged as errors with a message. That is what lets the assistant recover instead of guessing. A rate-limited X post surfaces as an error reason it can relay, rather than a silent nothing.

How does the connection and authentication work?

Socifyr's server uses the Streamable HTTP transport. Your client sends an Authorization: Bearer sk_... header with a Socifyr API key. The key is scoped to one workspace, so the connector acts on that workspace. The remote transport is stateless: each request is independent, there is no long-lived session, and tools return once the API responds, typically in under 5 seconds. A large upload blocks until it finishes.

bash
claude mcp add --transport http socifyr https://api.socifyr.com/api/mcp \
  --header "Authorization: Bearer sk_your_key_here"

Setup for claude.ai, Claude Desktop, ChatGPT, Cursor, VS Code, Windsurf and Gemini CLI is on the MCP server page. If a client can only run local stdio servers, install @socifyr/mcp and register socifyr-mcp with SOCIFYR_API_KEY and SOCIFYR_WORKSPACE_ID.

Why use slugs instead of giving Claude my accounts?

The assistant never holds your platform tokens. It holds one Socifyr key and names accounts by stable slugs such as instagram-mybrand. Slugs are human-readable, so Claude can map "my Instagram" to the right slug after list_connections. They also survive reconnection: when a token expires and you re-authorize, the slug stays the same.

What can go wrong, and how does the agent recover?

Common failures and the tool that fixes each
SituationWhat the assistant does
An account token expiredrefresh_connection, then reconnect_connection for a one-time owner link if the platform cannot refresh
One platform failed on a multi-account postcheck_post_status shows which, retry_post re-queues only the failures
Wrong accounts targeted on a scheduled postupdate_post, where connections replaces the full set
Plan or cap reachedget_usage to see where it stands

One detail matters for edits: update_post treats connections as a full replacement, not a delta. To add one account you pass the complete desired set, which is why the tool description tells the assistant to call list_posts or list_connections first. Expired accounts are covered in OAuth token expiry and how to refresh or reconnect accounts.

How do I keep this safe?

  • Give the assistant its own API key and revoke that key if needed.
  • Set a dailyPostLimit so a runaway loop stops at a known number.
  • Turn on requireApproval so posts wait for a person to approve.
  • On X, set a monthlyXSpendCentsCap, because X is metered.
  • Remember a guarded key cannot change its own limits, manage connections, or create reconnect links.

The reasoning and exact behavior are in how to give an AI agent safe access to social accounts.

What else can the assistant do beyond posting?

The same 20 tools cover scheduling one post (schedule_post) or up to 500 (schedule_posts), editing drafts, publishing a saved draft, reading per-post analytics (get_post_analytics), follower growth (get_follower_growth), side-by-side account comparison (compare_accounts), managing the media library, and drafting captions with generate_caption. The full list with one-line descriptions is on the MCP page.

Frequently asked questions

Can Claude post to social media?

Yes, through an MCP server that wraps a publishing API. Add the Socifyr connector to claude.ai, Claude Desktop or Claude Code and ask it to post, schedule or check status.

Does Claude see my social media passwords?

No. Claude holds a Socifyr API key for one workspace and uses account slugs. Platform tokens stay in Socifyr.

Which AI clients support the Socifyr MCP server?

claude.ai, Claude Desktop, Claude Code, ChatGPT (developer mode), Cursor, VS Code Copilot agent mode, Windsurf and Gemini CLI, plus any client that supports remote MCP over Streamable HTTP with custom headers.

Can the assistant schedule posts?

Yes, text posts through schedule_post and schedule_posts, on Pro or Business plans.

What if my client only supports local MCP servers?

Install @socifyr/mcp globally and run the socifyr-mcp command with your key and workspace ID in the environment.

Related pages

Try it with your own accounts

One API key, 18 platforms, and your agent never sees a platform token. The free plan needs no card.