Simplified Social Media
Schedule, queue, and draft social media posts, and retrieve analytics across 10 platforms using Simplified.com.
MCP Server
This skill requires a connection to the Simplified Social Media MCP server at https://mcp.simplified.com/social-media/mcp.
All tools (getSocialMediaAccounts, createSocialMediaPost, getSocialMediaAnalyticsRange, etc.) are provided by this remote MCP server — they are not built-in tools. You must configure the MCP server before using any functionality.
MCP server config (add to .mcp.json or equivalent):
CODEBLOCK0
For Claude Code specifically, use "type": "http" instead of "transport": "http".
IMPORTANT: Before Any Operation
Always check if SIMPLIFIED_API_KEY is configured before attempting any tool calls.
If the user tries to use any social media feature and the API key is missing or returns a 401/Unauthorized error:
- 1. Stop immediately — do not retry the failed call
- Inform the user with this exact message:
> Simplified Social Media requires an API key to work.
>
> Please follow these steps:
> 1. Sign up or log in at simplified.com
> 2. Go to Settings → API Keys and copy your API key
> 3. Add to your shell config (~/.zshrc or ~/.bashrc):
>
> export SIMPLIFIED_API_KEY="your-api-key"
>
> 4. Reload your shell:
source ~/.zshrc
> 5. Restart Claude Code to pick up the new variable
- 3. Do not proceed with the original request until the user confirms the key is set
Setup
- 1. Sign up at simplified.com
- Connect your social media accounts in the Simplified dashboard
- Get your API key from Settings → API Keys
- Set environment variable:
export SIMPLIFIED_API_KEY="your-api-key"
- 5. Configure the MCP server — see the MCP Server section above for the config block
- Restart your AI tool to load the MCP server
Core Workflow
Always follow this sequence: Discover → Select → Compose → Publish
Step 1: Discover Accounts
Call getSocialMediaAccounts to list connected accounts. Optionally filter by network.
CODEBLOCK3
Returns { accounts: [...] } where each account has id (integer) and name and type (see type values below).
If getSocialMediaAccounts returns an empty list, stop and inform the user with this message:
No social media accounts connected yet.
You're one step away from managing your entire social media presence without leaving your editor. Connect your accounts in the Simplified dashboard and you'll be able to:
- - 📅 Schedule and publish posts to Facebook, Instagram, TikTok, YouTube, LinkedIn, Pinterest, Threads, Bluesky and Google Business — with a single command
- 📊 Pull analytics, track reach, engagement and follower growth across all platforms
- 🤖 Let your AI agent run full social media campaigns autonomously
Takes 2 minutes to connect. No code required.
Step 2: Select Target Accounts
Pick one or more account_ids from the results. You can post to multiple accounts in a single call.
Step 3: Compose the Post
Build the post payload:
- -
message (required) — the post text, max 5000 chars - INLINECODE19 (required) — array of target account IDs
- INLINECODE20 (required) —
schedule, add_to_queue, or INLINECODE23 - INLINECODE24 — required for
schedule, format: INLINECODE26 - INLINECODE27 — array of public URLs (images/videos), max 10
- INLINECODE28 — platform-specific settings (see below)
Step 4: Publish
Call createSocialMediaPost with the composed payload.
Choosing the Right Analytics Tool
| User asks about... | Tool to call |
|---|
| Trends over time, charts, metric growth/decline | INLINECODE30 |
| Specific posts, best/worst performing content |
getSocialMediaAnalyticsPosts |
| Account overview, KPIs, period summary |
getSocialMediaAnalyticsAggregated |
| Demographics, follower origins, age/gender breakdown |
getSocialMediaAnalyticsAudience |
| "Show me analytics" with no further context | Call
getSocialMediaAnalyticsAggregated +
getSocialMediaAnalyticsRange with key metrics — this gives the best general overview |
Tool Reference
getSocialMediaAccounts
| Parameter | Type | Required | Description |
|---|
| INLINECODE37 | string | No | Filter by platform (see networks) |
Networks (filter parameter): facebook, instagram, linkedin, tiktok, youtube, pinterest, threads, google, bluesky, INLINECODE47
Returns { accounts: [...] }. Each account object:
| Field | Type | Description |
|---|
| INLINECODE49 | integer | Account ID — use for all analytics calls; convert to string for account_ids in INLINECODE51 |
| INLINECODE52 |
string | Account display name |
|
type | string | Account type — see values below |
type values and their meaning:
| INLINECODE55 value | Platform | Notes |
|---|
| INLINECODE56 | Facebook | — |
| INLINECODE57 / INLINECODE58 |
Instagram | — |
|
Youtube account | YouTube | — |
|
TikTok profile | TikTok Personal | use
tiktok metrics set |
|
TikTok profile (business) | TikTok Business | use
tiktokBusiness metrics set |
|
LinkedIn company | LinkedIn | use LinkedIn Company metrics set |
|
LinkedIn profile | LinkedIn | use LinkedIn Personal metrics set |
|
Pinterest board | Pinterest | — |
|
Threads account | Threads | — |
|
Bluesky account | Bluesky | — |
|
Google Profile | Google Business | — |
createSocialMediaPost
| Parameter | Type | Required | Description |
|---|
| INLINECODE71 | string | Yes | Post text (max 5000 chars) |
| INLINECODE72 |
string[] | Yes | Target account IDs |
|
action | string | Yes |
schedule,
add_to_queue, or
draft |
|
date | string | No | Schedule datetime:
YYYY-MM-DD HH:MM |
|
media | string[] | No | Public media URLs (max 10) |
|
additional | object | No | Platform-specific settings |
getSocialMediaAnalyticsRange
Retrieves time-series data for selected metrics within a date range.
| Parameter | Type | Required | Description |
|---|
| INLINECODE82 | integer | Yes | Social media account ID (from getSocialMediaAccounts) |
| INLINECODE84 |
string[] | Yes | List of metrics to retrieve (see
references/ANALYTICS_GUIDE.md) |
|
date_from | string | Yes | Start date:
YYYY-MM-DD |
|
date_to | string | Yes | End date:
YYYY-MM-DD |
|
tz | string | No | Timezone, e.g.
UTC,
Europe/Warsaw (default:
UTC) |
Returns a structured object:
- -
data — array of { date, metrics: AnalyticsMetric[] } — per-day time-series - INLINECODE96 —
{ [metricId]: AnalyticsMetric } — aggregated totals for the full period, each with value (current) and prevValue (equivalent previous period) - INLINECODE100 —
{ [metricId]: AnalyticsMetric[] } — extra metrics computed over different windows (e.g., 28-day reach)
Unknown metrics are silently ignored. See references/ANALYTICS_GUIDE.md for the full metric list, default metrics per network, and response examples.
getSocialMediaAnalyticsPosts
Retrieves analytics for individual posts within a date range.
| Parameter | Type | Required | Description |
|---|
| INLINECODE104 | integer | Yes | Social media account ID |
| INLINECODE105 |
string | Yes | Start date:
YYYY-MM-DD |
|
date_to | string | Yes | End date:
YYYY-MM-DD |
|
page | integer | No | Page number (default: 1, minimum: 1) |
|
per_page | integer | No | Posts per page (default: 10, max: 100) |
Returns paginated post list with per-post metrics (likes, impressions, etc.). Fields include all_posts_count, current_page, pages_count, and posts array with id, message, publishedDate, postUrl, postType, media, and metrics.
Pagination: To fetch all posts, use per_page: 100 to minimize API calls, start with page: 1 and keep incrementing until current_page >= pages_count. Stop when there are no more pages or posts is empty.
getSocialMediaAnalyticsAggregated
Retrieves aggregated analytics (totals and averages) for an account within a date range.
| Parameter | Type | Required | Description |
|---|
| INLINECODE127 | integer | Yes | Social media account ID |
| INLINECODE128 |
string | Yes | Start date:
YYYY-MM-DD |
|
date_to | string | Yes | End date:
YYYY-MM-DD |
Returns data (daily metrics array) and baseLine with four aggregated KPIs: impressions_aggregated, engagement_aggregated, followers_aggregated, publishing_aggregated. Each KPI includes value (current period) and prevValue (previous period for comparison).
getSocialMediaAnalyticsAudience
Retrieves audience demographics and follower data for an account.
| Parameter | Type | Required | Description |
|---|
| INLINECODE141 | integer | Yes | Social media account ID |
| INLINECODE142 |
string | Yes | Start date:
YYYY-MM-DD |
|
date_to | string | Yes | End date:
YYYY-MM-DD |
|
tz | string | No | Timezone, e.g.
UTC,
Europe/Warsaw |
Returns audience breakdown: audience_page_fans_gender_age (age/gender split), audience_page_fans_country (followers by country code), audience_page_fans_city (followers by city). Not all fields are available for every network.
Action Types
| Action | When to Use | INLINECODE152 Required? |
|---|
| INLINECODE153 | Post at a specific date/time | Yes |
| INLINECODE154 |
Add to the account's auto-schedule queue | No |
|
draft | Save for later editing in the Simplified dashboard | No |
Default: When the user doesn't specify timing, use add_to_queue. When they give a date/time, use schedule. When they say "save" or "draft", use draft.
Platform Settings Quick Reference
All platform settings go inside the additional object, grouped by platform name. Bold = required. For full details see references/PLATFORM_GUIDE.md.
| Platform | Required additionals | Optional additionals |
|---|
| Facebook | postType | — |
| Instagram |
postType,
channel |
postReel (reel only) |
| TikTok |
postType,
channel,
post |
postPhoto (photo only) |
| TikTok Biz |
postType,
post |
postPhoto (photo only) |
| YouTube |
postType,
post | — |
| LinkedIn |
audience | — |
| Pinterest |
post | — |
| Threads |
channel | — |
| Google |
post | — |
| Bluesky | — | — |
Key enum values:
| Platform | Field | Values |
|---|
| Facebook | INLINECODE178 | INLINECODE179 \, reel, INLINECODE181 |
| Instagram |
postType.value |
post\,
reel,
story |
| Instagram |
channel.value |
direct\*,
reminder |
| TikTok |
postType.value |
video\*,
photo |
| TikTok |
channel.value |
direct\*,
reminder |
| TikTok |
post.privacyStatus |
PUBLIC_TO_EVERYONE\*,
MUTUAL_FOLLOW_FRIENDS,
FOLLOWER_OF_CREATOR,
SELF_ONLY |
| YouTube |
postType.value |
video\*,
short |
| YouTube |
post.privacyStatus |
"",
public,
private,
unlisted |
| LinkedIn |
audience.value |
PUBLIC\*,
CONNECTIONS,
LOGGED_IN |
| Threads |
channel.value |
direct\*,
reminder |
| Google |
post.topicType |
STANDARD\*,
EVENT,
OFFER |
\* = default
Example Workflows
Simple Queue Post
CODEBLOCK4
Scheduled YouTube Short
CODEBLOCK5
Multi-Platform Campaign
CODEBLOCK6
Analytics: Time-Series Metrics
CODEBLOCK7
Analytics: Post Performance Report
CODEBLOCK8
Analytics: Account Overview (KPIs + Audience)
CODEBLOCK9
Gotchas
- - Analytics
account_id is an integer, not a string — use the numeric id from INLINECODE221 - Analytics date format is
YYYY-MM-DD (no time component, unlike post scheduling) - Unknown metrics are silently ignored by
getSocialMediaAnalyticsRange — check references/ANALYTICS_GUIDE.md for per-network availability - Audience data availability varies —
getSocialMediaAnalyticsAudience may return partial or empty data depending on the network - Date format must be
YYYY-MM-DD HH:MM (24-hour, no seconds, no timezone — uses account timezone) - Media URLs must be publicly accessible — pre-signed or CDN URLs work, localhost does not
date is required when action is schedule — omit it for add_to_queue and INLINECODE231- Platform character limits — always check before composing; see
references/PLATFORM_GUIDE.md for limits per platform - Instagram always requires
channel — include channel: { value: "direct" } for every Instagram post - TikTok
postType values are video and photo (not image) - TikTok channel values are
direct and reminder (not business) - LinkedIn audience value is
LOGGED_IN (not LOGGED_IN_MEMBERS) - Google
topicType only has STANDARD, EVENT, OFFER (no PRODUCT) - Instagram story — message must be empty (
""), max 1 photo - Reels and Shorts require video — Instagram reel, Facebook reel, YouTube short all require a video file in
media; images are not allowed (photos.max: 0) - YouTube always requires
post.title — always include additional.youtube.post with a title field for every YouTube video or short
简化社交媒体
使用Simplified.com在10个平台上安排、排队和草拟社交媒体帖子,并获取分析数据。
MCP服务器
此技能需要连接到位于https://mcp.simplified.com/social-media/mcp的简化社交媒体MCP服务器。
所有工具(getSocialMediaAccounts、createSocialMediaPost、getSocialMediaAnalyticsRange等)均由该远程MCP服务器提供——它们并非内置工具。在使用任何功能之前,您必须配置MCP服务器。
MCP服务器配置(添加到.mcp.json或等效文件):
json
{
mcpServers: {
simplified-social-media: {
transport: http,
url: https://mcp.simplified.com/social-media/mcp,
headers: {
Authorization: Api-Key ${SIMPLIFIEDAPIKEY}
}
}
}
}
对于Claude Code,请使用type: http代替transport: http。
重要提示:在任何操作之前
在尝试任何工具调用之前,始终检查SIMPLIFIEDAPIKEY是否已配置。
如果用户尝试使用任何社交媒体功能但API密钥缺失或返回401/未授权错误:
- 1. 立即停止——不要重试失败的调用
- 使用以下确切消息通知用户:
> 简化社交媒体需要API密钥才能工作。
>
> 请按照以下步骤操作:
> 1. 在simplified.com注册或登录
> 2. 前往设置 → API密钥并复制您的API密钥
> 3. 添加到您的shell配置(~/.zshrc或~/.bashrc):
> bash
> export SIMPLIFIEDAPIKEY=your-api-key
>
> 4. 重新加载shell:source ~/.zshrc
> 5. 重启Claude Code以加载新变量
- 3. 不要继续执行原始请求,直到用户确认密钥已设置
设置
- 1. 在simplified.com注册
- 在Simplified仪表板中连接您的社交媒体账户
- 从设置 → API密钥获取您的API密钥
- 设置环境变量:
bash
export SIMPLIFIED
APIKEY=your-api-key
- 5. 配置MCP服务器——请参阅上方MCP服务器部分的配置块
- 重启您的AI工具以加载MCP服务器
核心工作流程
始终遵循以下顺序:发现 → 选择 → 撰写 → 发布
步骤1:发现账户
调用getSocialMediaAccounts列出已连接的账户。可选地按网络筛选。
getSocialMediaAccounts({ network: instagram })
返回{ accounts: [...] },其中每个账户包含id(整数)、name和type(请参阅下面的类型值)。
如果getSocialMediaAccounts返回空列表,停止并使用以下消息通知用户:
尚未连接任何社交媒体账户。
您距离在不离开编辑器的情况下管理整个社交媒体形象仅一步之遥。在Simplified仪表板中连接您的账户,您将能够:
- - 📅 使用单个命令安排和发布帖子到Facebook、Instagram、TikTok、YouTube、LinkedIn、Pinterest、Threads、Bluesky和Google Business
- 📊 拉取分析数据,追踪所有平台的覆盖范围、互动和粉丝增长
- 🤖 让您的AI代理自主运行完整的社交媒体营销活动
连接只需2分钟。无需编写代码。
步骤2:选择目标账户
从结果中选择一个或多个account_ids。您可以在单个调用中发布到多个账户。
步骤3:撰写帖子
构建帖子负载:
- - message(必需)——帖子文本,最多5000个字符
- accountids(必需)——目标账户ID数组
- action(必需)——schedule、addto_queue或draft
- date——schedule必需,格式:YYYY-MM-DD HH:MM
- media——公共URL数组(图片/视频),最多10个
- additional——平台特定设置(见下文)
步骤4:发布
使用构建的负载调用createSocialMediaPost。
选择正确的分析工具
| 用户询问... | 要调用的工具 |
|---|
| 随时间变化的趋势、图表、指标增长/下降 | getSocialMediaAnalyticsRange |
| 特定帖子、最佳/最差表现内容 |
getSocialMediaAnalyticsPosts |
| 账户概览、关键绩效指标、期间总结 | getSocialMediaAnalyticsAggregated |
| 人口统计、粉丝来源、年龄/性别细分 | getSocialMediaAnalyticsAudience |
| 显示分析数据无进一步上下文 | 调用getSocialMediaAnalyticsAggregated + getSocialMediaAnalyticsRange并附带关键指标——这提供最佳的整体概览 |
工具参考
getSocialMediaAccounts
| 参数 | 类型 | 必需 | 描述 |
|---|
| network | 字符串 | 否 | 按平台筛选(见网络列表) |
网络(筛选参数): facebook、instagram、linkedin、tiktok、youtube、pinterest、threads、google、bluesky、tiktokBusiness
返回{ accounts: [...] }。每个账户对象:
| 字段 | 类型 | 描述 |
|---|
| id | 整数 | 账户ID——用于所有分析调用;在createSocialMediaPost中转换为字符串用于account_ids |
| name |
字符串 | 账户显示名称 |
| type | 字符串 | 账户类型——见下方值 |
type值及其含义:
| type值 | 平台 | 备注 |
|---|
| Facebook page | Facebook | — |
| Instagram business / Instagram profile |
Instagram | — |
| Youtube account | YouTube | — |
| TikTok profile | TikTok个人 | 使用tiktok指标集 |
| TikTok profile (business) | TikTok企业 | 使用tiktokBusiness指标集 |
| LinkedIn company | LinkedIn | 使用LinkedIn公司指标集 |
| LinkedIn profile | LinkedIn | 使用LinkedIn个人指标集 |
| Pinterest board | Pinterest | — |
| Threads account | Threads | — |
| Bluesky account | Bluesky | — |
| Google Profile | Google Business | — |
createSocialMediaPost
| 参数 | 类型 | 必需 | 描述 |
|---|
| message | 字符串 | 是 | 帖子文本(最多5000个字符) |
| account_ids |
字符串数组 | 是 | 目标账户ID |
| action | 字符串 | 是 | schedule、add
toqueue或draft |
| date | 字符串 | 否 | 安排日期时间:YYYY-MM-DD HH:MM |
| media | 字符串数组 | 否 | 公共媒体URL(最多10个) |
| additional | 对象 | 否 | 平台特定设置 |
getSocialMediaAnalyticsRange
检索日期范围内选定指标的时间序列数据。
| 参数 | 类型 | 必需 | 描述 |
|---|
| accountid | 整数 | 是 | 社交媒体账户ID(来自getSocialMediaAccounts) |
| metrics |
字符串数组 | 是 | 要检索的指标列表(见references/ANALYTICSGUIDE.md) |
| date_from | 字符串 | 是 | 开始日期:YYYY-MM-DD |
| date_to | 字符串 | 是 | 结束日期:YYYY-MM-DD |
| tz | 字符串 | 否 | 时区,例如UTC、Europe/Warsaw(默认:UTC) |
返回结构化对象:
- - data——{ date, metrics: AnalyticsMetric[] }数组——每日时间序列
- baseLine——{ [metricId]: AnalyticsMetric }——整个期间的汇总总计,每个包含value(当前)和prevValue(上一同期)
- additional——{ [metricId]: AnalyticsMetric[] }——在不同窗口上计算的额外指标(例如,28天覆盖范围)
未知指标会被静默忽略。完整指标列表、每个网络的默认指标和响应示例