MCP Server Tutorial: Social Media with AI Agents
The OmniSocials MCP server lets Claude and other AI agents post to 13 social platforms through natural language. Here's how to set it up and use it in 2026.

Managing social media through code has always required knowing the right endpoints, constructing the right payloads, and handling rate limits on a per-platform basis. In 2026, there is a faster path: give an AI agent access to your social accounts and describe what you want in plain language.
On this page
- What Is an MCP Server?
- Why Not Use Each Platform's Native API?
- Step 1: Get Your OmniSocials API Key
- Step 2: Install the OmniSocials MCP Server
- Option A: Run with npx (no install required)
- Option B: Configure in Claude Desktop
- Step 3: Give Claude a Natural Language Instruction
- What Claude Is Doing Behind the Scenes
- Building an AI Agent Workflow
- Available Tools in the OmniSocials MCP Server
- Common Pitfalls
- Frequently Asked Questions
- Sources
The OmniSocials MCP server makes this possible. It connects Claude and other AI agents directly to the OmniSocials API, so you can say "post this to LinkedIn and Instagram, scheduled for tomorrow at 9am" and it happens. No boilerplate. No OAuth flows. No platform-specific formatting.
This tutorial walks through exactly how to set it up.
What Is an MCP Server?
Model Context Protocol (MCP) is an open standard developed by Anthropic that lets AI agents connect to external tools and APIs. Think of it as a plugin system for AI: you register a server, tell the AI what tools it has access to, and the AI can call those tools during a conversation.
An MCP server exposes a set of functions. The AI model sees these as available actions and decides when and how to call them based on your instructions.
The OmniSocials MCP server exposes the full OmniSocials API as a set of tools Claude can call directly. That means post creation, scheduling, media upload, analytics retrieval, and inbox management, all accessible from a single conversation with Claude.
Why Not Use Each Platform's Native API?
To post to Instagram via the Graph API, you need a Facebook Developer app, a Business account, a Page linked to that account, a long-lived access token, and a two-step media creation flow before you can publish a single image. LinkedIn requires a separate OAuth app registration. TikTok still requires app review before you can post programmatically.
Each platform has its own auth model, rate limits, error codes, and endpoint structure. Building a system that posts across even three platforms natively means maintaining three separate integrations.
The OmniSocials API eliminates that. You connect your accounts once in the OmniSocials dashboard, and from that point on every platform is accessible through one API key and one endpoint. The MCP server takes that one step further, making the entire API available to AI agents without writing any integration code yourself.
Step 1: Get Your OmniSocials API Key
[Screenshot: OmniSocials dashboard Settings > API page showing API key generation]
Start at omnisocials.com. If you don't have an account, the 14-day free trial includes full API and MCP access.
Once you're in:
- Go to Settings > API in the left navigation
- Click Generate API Key
- Copy the key and store it somewhere safe. It won't be shown again.
Then connect the social accounts you want to manage. Go to Accounts, click Add Account, and authenticate each platform. OmniSocials handles the OAuth flow and stores the credentials. From this point, your API key is the only credential you need.
Step 2: Install the OmniSocials MCP Server
The OmniSocials MCP server runs as a local process that Claude Desktop connects to. You have two options. (Clients that take a remote MCP URL can also use the hosted server at https://mcp.omnisocials.com.)
Option A: Run with npx (no install required)
The server reads your API key from the OMNISOCIALS_API_KEY environment variable and stops with an error when it isn't set, so pass it on the command line:
OMNISOCIALS_API_KEY=omsk_live_your_key_here npx -y @omnisocials/mcp-server
Option B: Configure in Claude Desktop
This is the recommended approach for daily use. It registers the MCP server so it starts automatically when Claude Desktop opens.
Open your Claude Desktop config file. On Mac it's at:
~/Library/Application Support/Claude/claude_desktop_config.json
Add the OmniSocials server to the mcpServers object:
{
"mcpServers": {
"omnisocials": {
"command": "npx",
"args": ["-y", "@omnisocials/mcp-server"],
"env": {
"OMNISOCIALS_API_KEY": "omsk_live_your_key_here"
}
}
}
}
Restart Claude Desktop. You'll see a hammer icon in the interface confirming that MCP tools are active.
Note: Never commit your
claude_desktop_config.jsonto a public repository. It contains your live API key.
Step 3: Give Claude a Natural Language Instruction
With the MCP server running, Claude has access to the full OmniSocials API. No further setup needed.
Here are examples of what you can ask Claude to do:
Publish immediately:
"Post this to LinkedIn and Instagram: 'We just shipped a major update to our analytics dashboard. Full breakdown in the link below.' Add the image at /Users/me/Desktop/launch-screenshot.png."
Schedule a post:
"Schedule the following tweet for Thursday at 8am EST: 'Our API now supports 13 social platforms. One key, everything covered. Details at docs.omnisocials.com'"
Pull analytics:
"What was our best-performing post on Instagram this week? Show me the engagement metrics."
Check the inbox:
"Any unanswered comments on LinkedIn in the last 24 hours?"
Claude interprets your instruction, calls the appropriate OmniSocials API endpoint, and returns the result in plain language.
What Claude Is Doing Behind the Scenes
When you ask Claude to "post this to LinkedIn and Bluesky," it calls the OmniSocials /v1/posts endpoint with your instruction translated into a structured API request. The underlying call looks like this:
// What Claude calls on your behalf via the MCP server
const response = await fetch('https://api.omnisocials.com/v1/posts', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'We just shipped a major update to our analytics dashboard.',
accounts: ['linkedin', 'bluesky'],
schedule_at: '2027-03-02T08:00:00Z',
}),
});
const { data } = await response.json();
// { id: "1024", status: "scheduled", schedule_at: "2027-03-02T08:00:00.000Z",
// app_url: "https://app.omnisocials.com/create-post/1024", ... }
# Python equivalent
import requests
response = requests.post(
'https://api.omnisocials.com/v1/posts',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
json={
'content': 'We just shipped a major update to our analytics dashboard.',
'accounts': ['linkedin', 'bluesky'],
'schedule_at': '2027-03-02T08:00:00Z',
}
)
post = response.json()['data']
print(post['id'], post['status'])
The MCP server abstracts this entirely. You never write these calls yourself when using Claude. But the same endpoints are available directly if you want to build your own integration or automation script. Full reference at docs.omnisocials.com.
Building an AI Agent Workflow
The MCP server becomes especially useful when you combine it with broader Claude workflows.
Content repurposing pipeline:
"Take the transcript from today's podcast episode (attached), write three LinkedIn posts from the key insights, and schedule them across Monday, Wednesday, and Friday next week at 8am."
Social media brief to execution:
"Here's our weekly newsletter. Pull out three shareable stats, write short posts for LinkedIn and Bluesky, and schedule them for tomorrow morning."
Analytics review:
"Pull our Instagram and LinkedIn analytics from the past 30 days. Which post format (image, carousel, text) got the highest engagement rate? Give me a recommendation for what to focus on next month."
Claude handles the reasoning, content creation, and API calls in one conversation. You review and confirm before anything goes live.
Available Tools in the OmniSocials MCP Server
The MCP server exposes these tools to Claude:
| Tool | What It Does |
|---|---|
| Tool: create_post | What It Does: Create a draft or a scheduled post for one or more platforms |
| Tool: create_and_publish_post | What It Does: Create a post and publish it right away |
| Tool: get_post | What It Does: Retrieve a specific post by ID with platform-level status |
| Tool: list_posts | What It Does: List posts, filterable by status |
| Tool: delete_post | What It Does: Delete a post from OmniSocials (a published post stays live on the platform) |
| Tool: upload_media | What It Does: Upload an image, video, or PDF from a URL or base64 data, returns a media ID for use in posts |
| Tool: list_accounts | What It Does: List all connected social media accounts |
| Tool: get_analytics_overview | What It Does: Retrieve engagement metrics across platforms for a period |
All tools use the same OMNISOCIALS_API_KEY you configured in Step 1.
Common Pitfalls
API key not loading. If Claude says it can't connect to OmniSocials, check that the env block in your claude_desktop_config.json has the correct key and there are no trailing spaces. Restart Claude Desktop after any config change.
Account not connected. Claude can only post to accounts you've connected in the OmniSocials dashboard. If a platform isn't showing up, go to Settings > Accounts and verify the connection is active.
Scheduling in the wrong timezone. The OmniSocials API takes schedule_at as an ISO 8601 timestamp, in UTC (ending in Z) or with an explicit offset. When you tell Claude "schedule this for 9am tomorrow," specify your timezone ("9am EST" or "9am UTC+1") so it converts correctly.
Media uploads. The MCP server cannot read files on your computer by itself. The upload_media tool imports a file from a public URL, or takes small files (about 50 KB at most) as base64 data. For a file you attach in Claude, the tool returns an upload command that Claude runs in code execution. For large videos, host the file at a public URL first and pass that URL.
Rate limits. The OmniSocials API allows 100 requests per minute per API key. If you're scheduling large batches through Claude, you may hit this limit. There is no bulk endpoint, so for large batches use the API directly: loop over POST /v1/posts and pace the calls to stay under the limit.
Frequently Asked Questions
What is an MCP server?
An MCP (Model Context Protocol) server is a connector that gives AI agents like Claude access to external tools and APIs. Instead of writing code to call an API, you describe what you want in plain language and the AI agent handles the API call. OmniSocials provides an MCP server specifically for social media management.
Does the OmniSocials MCP server work with Claude?
Yes. The OmniSocials MCP server is compatible with Claude Desktop and any MCP-compatible AI agent runtime. You configure it once in your claude_desktop_config.json, provide your API key, and Claude gains full access to post, schedule, and read analytics across all 13 connected social platforms.
What can the OmniSocials MCP server do?
The OmniSocials MCP server lets AI agents create and publish posts, schedule content with a specific time, upload media, list connected accounts, retrieve analytics, and read the unified inbox. All of this works across 13 platforms including Instagram, LinkedIn, TikTok, Bluesky, and Threads, with the inbox on 7 of them.
Is the OmniSocials MCP server free?
MCP server access is included in the OmniSocials plan at $10/mo (annual). There is no separate API or MCP pricing tier. The 14-day free trial includes full API and MCP access so you can test it before committing.
What is the difference between using the OmniSocials API directly vs the MCP server?
The OmniSocials REST API is for code-based integrations where you write JavaScript or Python to call specific endpoints. The MCP server is for AI agent workflows where you describe what you want in natural language and the agent calls the API on your behalf. Both use the same underlying API and the same API key.
Sources
- Model Context Protocol Specification: Official MCP spec and documentation from Anthropic
- OmniSocials API Documentation: Full reference for all OmniSocials API endpoints, authentication, and rate limits
- Claude Desktop MCP Integration Guide: Official guide for configuring MCP servers in Claude Desktop
- Instagram Graph API Documentation: Instagram's native API requirements showing the complexity OmniSocials abstracts
- LinkedIn Marketing Developer Platform: LinkedIn's native API requirements and OAuth flow documentation
Try OmniSocials for 14 days
Plan, schedule and answer on 13 platforms from one calendar, or let your AI agent do it. The first charge comes when the trial ends.


