Social Media MCP Server: What It Is and What to Check
A social media MCP server exposes social network actions (publish, comments, messages, analytics) as tools an AI agent like Claude can call. Check three things before connecting one: whose developer app it posts through, how it authenticates, and which tools can change data. Adeli's MCP server covers Instagram, Facebook, TikTok, YouTube, X, and Bluesky with one API key.
A social media MCP server is a service that turns a social network's API into tools an AI agent can call: publish a post, list comments, reply to a DM, pull last week's analytics. The agent (Claude, Codex, Cursor, or your own) decides when to call each tool, and the server makes the real API request on a real account. So what the server can do, and whose credentials it uses, matters more than where it sits in a directory listing.
What is a social media MCP server?
It is an adapter between an AI agent and one or more social network APIs. The Model Context Protocol (MCP) is an open standard for connecting AI applications to outside systems. A server lists its tools, the agent picks one, and the server runs it.
Think of a travel power adapter. The agent has one plug shape, and each MCP server reshapes a different service to fit it. A social media MCP server reshapes Instagram's, TikTok's, or X's API so "post this Reel at 9am" becomes a tool call.
The server gets no special access to any network. It can only do what that network's official API allows, through a developer app and tokens someone has to own. There are three common setups:
| Setup | Whose developer app? | Who passes platform review? | Networks per server |
|---|---|---|---|
| Open-source server you run (often from GitHub) | Yours | You | Usually one |
| A platform's own MCP | The platform's | Nobody, but scope is often narrow | One |
| Unified social media API with an MCP server (like Adeli) | The provider's | The provider | Many |
What tools should a social media MCP server expose?
At minimum: publish, read comments, read messages, and read analytics, with reads and writes clearly separated. A server that only posts leaves the agent blind to what happened next. Here's the tool set to look for, with Adeli's MCP tools as a reference:
| Job | What the agent needs | Adeli MCP tools |
|---|---|---|
| Find the right account | List the accounts it can act on | list_profiles, list_accounts |
| Publish and schedule | Create a post now or at a set time, then check async uploads | create_post, get_tiktok_post_status, get_youtube_post_status |
| Comments | List, reply, hide, delete | list_comments, reply_to_comment, update_comment, delete_comment |
| Messages | Read DM history and reply | list_messages, send_message |
| Analytics | Account and post metrics | get_instagram_insights, get_tiktok_video_insights, get_youtube_channel_insights |
| Connect new accounts | Send the account owner a sign-in link | start_connect, get_connect_session |
Two less obvious things separate a good server from a demo:
- Async status tools. TikTok and YouTube video publishing is asynchronous. Without a status tool, the agent reports "posted" before the platform has accepted the video.
- Partial results. A read across six accounts can succeed on five. Adeli returns
status: "partial"with anerrorslist instead of failing the whole call, so the agent can say exactly which account broke.
Can I use an MCP server as a social media scheduler?
Yes, if its publish tool accepts a scheduled time. On Adeli, create_post takes exactly the JSON body of POST /api/v1/posts, so sending a scheduled time instead of publishNow queues the post until it's due. A conversation like "draft five posts for next week and schedule them for 9am" becomes five create_post calls.
What MCP doesn't give you is a calendar view. If a person needs to review the queue visually, keep that in your own product and use the posting API underneath.
How do social media MCP servers authenticate?
There are two separate logins, and people often mix them up. One is the agent proving it may use the MCP server. The other is the social account owner granting access to their Instagram or TikTok.
Layer 1: agent to MCP server. The MCP authorization spec says authorization is optional. HTTP servers that use it should follow the spec's OAuth 2.1 flow, and local stdio servers should read credentials from the environment instead. Social media servers use one of three models:
| Model | How it works | Trade-off |
|---|---|---|
| API key in a header | The client sends Authorization: Bearer <key> on every request |
One step to set up. The key sits in a local config file, so treat it like a password. Clients that only support OAuth can't add it directly. |
| OAuth 2.1 | The client opens a browser sign-in and receives a scoped token | Works in OAuth-only clients. More moving parts for the server to run. |
| Environment variables (stdio) | A local server reads platform tokens from your shell | Fine on your own machine. Every token refresh is your job. |
Layer 2: MCP server to social network. The account owner always signs in on the network's own consent screen. With an open-source server, that's your app's OAuth flow and your token refresh job. With Adeli, start_connect returns an authUrl the account owner opens, and Adeli stores and refreshes the token.
What should I check before giving an agent posting rights?
Check what the agent can change, who it can change it for, and what it costs. MCP's tools spec says there should always be a human in the loop who can deny a tool call. It also says clients must treat tool annotations as untrusted unless the server is trusted.
Before you connect a server to accounts that matter:
- List the tools that change data. Run a
tools/listrequest and read every tool that isn't read-only. Anything that posts, deletes, sends a DM, or spends money needs your client's confirmation prompt left on. - Check the annotations. Adeli marks read-only tools with
readOnlyHint, anddisconnect_accountandads_set_statuswithdestructiveHint, so clients that ask before acting will ask. - Scope the credential. Give each machine or agent its own key, read it from an environment variable, and never commit the config file. On Adeli, deleting a key under Settings → API keys revokes it immediately.
- Know which tools cost money. Every X post is billed at X's price, and ad tools can start paid delivery. Adeli's
get_x_usagetool returns what this month's X calls have cost. - Check whose account each tool targets. On Adeli, nothing defaults to a profile: every tool takes a
profileIdor anaccountId, so an agent can't post to customer A while you meant customer B. - Test on a throwaway account first. A post an agent publishes by mistake can be seen before anyone deletes it.
Are there social media MCP servers on GitHub?
Yes, plenty, and most are single-network servers you run yourself. They're a good fit if you post to your own accounts and already hold an approved developer app. For anything multi-tenant, the code is free but the platform work isn't:
- Your own developer app on every network, and a review for each one. Instagram publishing to accounts you don't own needs Meta App Review and Business Verification.
- TikTok's audit. Per TikTok's docs, content from unaudited clients is restricted to private viewing.
- Token refresh for every connected account, on each network's schedule.
When we went through Meta's reviews for clients, each round took roughly 8–10 days, and getting every permission approved can take several rounds. If that's where you're stuck, an MCP server on a unified API skips it.
Which social media MCP server is best?
The best one is the one that covers your networks with an app you don't have to get approved. Use this checklist instead of a ranking:
| Question | Why it matters |
|---|---|
| Which networks are live? | One server per network means one setup, one key, and one review per network |
| Does it publish, or only read? | Data and social listening servers can't post |
| Whose developer app does it use? | If it's yours, you own every review and token |
| Can it reply to comments and DMs? | An agent that posts but can't reply leaves conversations hanging |
| Does it work in your client? | API-key servers and OAuth-only clients don't mix |
| How is it priced? | Per post, per seat, and per account models diverge fast at volume |
How does Adeli's MCP server work?
Adeli runs a hosted MCP server at https://app.tryadeli.com/mcp, over Streamable HTTP, authenticated with your Adeli API key. Each tool calls the same REST endpoint with the same validation and errors, so nothing is available over MCP that isn't available over REST.
-
Networks: Instagram, Facebook, TikTok, YouTube, X, and Bluesky are live. LinkedIn is coming soon, and it will show up as MCP tools the same way once it ships.
-
Who owns the platform work: Adeli maintains the developer app on every supported network, goes through each review, and refreshes tokens.
-
Clients: Claude Code, Claude Desktop, Codex, Cursor, and any client that can send an API key header to a remote MCP server. The Claude setup guide adds it in one command:
claude mcp add --transport http adeli https://app.tryadeli.com/mcp \ --header "Authorization: Bearer $ADELI_API_KEY" -
No OAuth sign-in. The server takes an API key, so OAuth-only clients such as claude.ai custom connectors can't add it directly. Desktop clients can bridge to it with
mcp-remote. -
Price: per connected account, and the first 3 are free. X's API usage fees are passed through at X's published rates. See pricing.
Setup guides for Claude, Codex, Cursor, n8n, Zapier, and more are on the Adeli for agents page. For a deeper look at Instagram and TikTok options specifically, see Instagram and TikTok MCP servers for Claude.