MCP

Social media MCP server for AI agents

A social media MCP server lets an AI agent publish, schedule and analyze posts on your accounts through one set of tools. Chat33 hosts one at https://chat33.io/api/mcp/mcp with 23 tools for Instagram, Facebook, Threads, TikTok, YouTube, X (Twitter), LinkedIn and Bluesky, built on each platform's official API, not browser automation. It works on every plan, including Free.

Claude can write a post. Chat33 lets it publish one — and answer the DMs it brings in.

MCP endpoint
https://chat33.io/api/mcp/mcp
Connect your agentSee pricing

Pick a platform

Connect your client

Claude Code

Browser sign-in

claude mcp add --transport http --scope user chat33 https://chat33.io/api/mcp/mcp

Claude Desktop & claude.ai

Browser sign-in

Settings → Connectors → Add custom connector
Name: Chat33
URL: https://chat33.io/api/mcp/mcp

ChatGPT

Browser sign-in

ChatGPT → Settings → Developer mode → Create plugin → paste the URL

Cursor

Browser sign-in or API key

{
  "mcpServers": {
    "chat33": {
      "url": "https://chat33.io/api/mcp/mcp"
    }
  }
}

Codex

Browser sign-in

codex mcp add chat33 --url https://chat33.io/api/mcp/mcp

Grok

API key

Paste the setup prompt and an API key; Grok adds the connector itself

Any other MCP client

OAuth if supported, else API key

Header x-api-key: sk_live_... or Authorization: Bearer sk_live_...

n8n

API key

Community node n8n-nodes-chat33

Prefer OAuth sign-in wherever your client supports it: pick chat33 in its connector/MCP menu, choose Authenticate (or the equivalent login button), and approve in the browser tab that opens. No client should ever ask you to paste an API key for this step, and Chat33 never prints an OAuth URL for you to copy — the browser handles it.

Without OAuth, use the API-key fallback: create a key in Settings → API Keys, then send it as an x-api-key header or an Authorization: Bearer header on the connection.

Tools

The exact tools your agent gets. You don't call them yourself; the agent picks them from what you ask.

Account

  • list_accounts — List connected social accounts (channels), optionally filtered by platform
  • whoami — Show the workspace, plan, granted scopes, and connected accounts behind this connection

Publishing

  • create_post — Create and queue (or schedule) a post across one or more connected accounts
  • validate_post — Dry run a post: checks media & platform compatibility without publishing
  • list_posts — List posts, filterable by status, platform, or channel; paginated
  • get_post — Get a single post by ID, including its live status and engagement stats
  • delete_post — Cancel a queued or scheduled post before it publishes
  • get_post_logs — Get delivery/publish log entries for a post, for debugging failures
  • request_approval — Send posts to the workspace approvers; they are scheduled only once a person approves
  • list_approvals — List posts sent for approval with their state: waiting, changes requested, approved
  • add_post_note — Add a note to a post thread; internal to the team unless you say the client may see it

Media

  • upload_media — Ingest a media file from a public https URL, returns a hosted URL to post with
  • create_upload_url — Get a presigned URL to PUT a local file to, for files with no public URL, or over 4.5MB

Analytics

  • get_analytics — Aggregate engagement analytics (views, likes, comments, shares) across published posts

Automations

  • list_flows — List all DM-automation flows, newest-updated first, with triggers and status
  • get_flow — Get a single flow by ID, including its full node/edge graph and synced triggers
  • create_flow — Create a DM-automation flow (trigger + action node graph) in DRAFT status
  • set_flow_status — Change a flow's status: ACTIVE, PAUSED, ARCHIVED, or DRAFT

Inbox

  • list_conversations — List Instagram and Facebook Messenger DM conversations, newest activity first
  • get_messages — Read a DM conversation's messages, oldest to newest
  • reply_to_conversation — Send a DM reply; tells the assistant to get your approval first, since it messages a real person

Comments

  • list_post_comments — Read comments (with replies) on a post, live from Meta
  • reply_to_comment — Reply to a comment publicly or privately; tells the assistant to get your approval first

Auth & scopes

Browser sign-in is the default. For a client that can't sign in, create an API key in Settings → API Keys and send it as a header. In Claude Code:

Claude Code with an API key
claude mcp add --transport http --scope user chat33 https://chat33.io/api/mcp/mcp --header "x-api-key: sk_live_..."

Every tool is authorized like the REST call behind it, so an API key needs the matching scope. whoami works with any valid key.

accounts:readlist_accounts
posts:readlist_posts, get_post, get_post_logs, get_analytics, list_approvals
posts:writecreate_post, validate_post, delete_post, request_approval, add_post_note
media:writeupload_media, create_upload_url
flows:readlist_flows, get_flow
flows:writecreate_flow, set_flow_status
inbox:readlist_conversations, get_messages
inbox:writereply_to_conversation
comments:readlist_post_comments
comments:writereply_to_comment

Flow authoring: create_flow's description carries the full node/edge schema, so an agent can build a valid flow from a plain-English request. New flows are created as DRAFT; call set_flow_status with ACTIVE to turn one on.

Try asking

MCP or REST?

Use MCP when a model decides what to publish. Use the REST API when your own code does. Same account, same plan limits.

Limits, plainly

Troubleshooting

401 Unauthorized

The connection isn't signed in, or an API key is missing, invalid, or wasn't sent as a header at all. Re-run the client's sign-in step, or re-check the connector config / header flag.

403 Insufficient scope

The connection is missing a scope the tool needs. Flow tools need flows:read/flows:write, and inbox/comment tools need inbox:read/inbox:write/comments:read/comments:write: an API key created before those tools shipped won't have them. Add the scope in Settings → API Keys. For a browser sign-in connection, disconnect it under Connected AI apps and sign in again.

Tool call fails with a platform error

Run validate_post first — it surfaces missing media, unsupported formats, and channel mismatches without publishing anything.

Questions

Is it free?
Yes. The MCP connection works on every Chat33 plan, including Free. Your plan's limits on posts and connected accounts still apply.
Which clients does it work with?
Claude Code, Claude Desktop, claude.ai, ChatGPT, Cursor, Codex and Grok have dedicated setup pages. Any other MCP client can connect with the endpoint https://chat33.io/api/mcp/mcp, over OAuth if it supports it, or an API key.
Do I need an API key?
No. Most clients sign in to Chat33 in your browser and approve access. An API key (x-api-key or Authorization: Bearer) is a fallback for clients that can't do browser sign-in.
Which platforms can my agent publish to?
Instagram, Facebook, Threads, TikTok, YouTube, X (Twitter), LinkedIn and Bluesky, each on that platform's official API, not browser automation.