Skip to main content
The Social media studio MCP server exposes 205 tools, grouped below by area. Every tool listed below is registered on the standard MCP endpoint (https://api.so-me.studio/mcp) and is callable by any authenticated agent using its X-API-Key.
All 205 tools are available on the single public MCP endpoint — there is no separate admin MCP surface. Tools such as create_tenant, delete_tenant, and list_tenants are regular workspace tools scoped to the authenticated user.The admin/mcp-tool-costs and api-access/mcp controllers are JWT-protected dashboard routes used to view/edit per-tool credit costs and usage logs — they do not expose additional MCP tools.
Every tool call consumes plan credits and counts toward your per-minute rate limit. Inspect costs at runtime with list_mcp_tools and your remaining balance with get_mcp_usage. Credit tiers: 1 read/list/get, 2 write/mutate/delete, 3 analytics, 5 AI text, 8 AI image, 10 compound AI actions.

Common enums

These enum values are reused across many tools.
TWITTER, INSTAGRAM, LINKEDIN, LINKEDIN_PAGE, FACEBOOK, TIKTOK, YOUTUBE, THREADS, WHATSAPP, DRIBBBLE, PINTEREST
TWITTER, INSTAGRAM, LINKEDIN, FACEBOOK, TIKTOK, YOUTUBE, THREADS, DRIBBBLE, PINTEREST, WHATSAPP, LINKEDIN_PAGE
POSTED, SCHEDULED, PENDING, FAILED, PENDING_APPROVAL, REJECTED
TEXT, IMAGE, MULTIPLE_IMAGES, VIDEO, CAROUSEL, REEL, STORY
Pagination defaults are consistent across list tools: page defaults to 1, limit defaults to 20 (max 100), unless a tool documents a different scheme (e.g. cursor- or offset-based).

Posts (11 tools)

Posting workflow

The write tools accept three optional fields beside text, fileIds and scheduledAt: threadParts, firstComment and tiktok. The tool descriptions state what each field does; this section is the recommended order of operations for an agent that posts on a user’s behalf.
1

Check media first

When the media was generated, edited or picked by the agent, call validate_post_media with the intended targets before create_post or schedule_post. It returns, per destination, the measured width, height, duration, codec and frame rate, the configured limits, and a fix string for every mismatch. Apply the fix and validate again when the agent produced the file; show the report and let the user decide when the user supplied it. Send measured values only — every omitted property comes back as needs_review rather than a pass. get_media_rules returns the full per-platform table, which is the cheapest way to generate media at the right size to begin with.
2

Confirm uploads

presign_media_upload reserves library files and returns PUT URLs. The upload is complete only after the bytes are stored: call get_media_file with verifyUpload: true before attaching the file to a post.
3

TikTok: ask the creator, never guess

TikTok rejects any post without a privacy level, and only the creator may choose it. Call get_tiktok_creator_info for the target account, offer the user only the values it returns in privacy_level_options (a private account cannot choose PUBLIC_TO_EVERYONE), suggest PUBLIC_TO_EVERYONE for a public account, ask whether comments are allowed, then send { privacyLevel, allowComments, allowDuet, allowStitch } in the tiktok object. A post without tiktok.privacyLevel is rejected with TIKTOK_PRIVACY_LEVEL_REQUIRED; a level the creator cannot use returns TIKTOK_PRIVACY_LEVEL_NOT_ALLOWED. A TIKTOK_SETTING_FORCED warning means the creator disabled comments, duet or stitch account-wide — repeat it to the user.
4

Chains and first comments

threadParts builds a multi-post chain on X, Threads, Bluesky and Mastodon only: text is the head and threadParts[0] is the first reply. Publishing past the head is best effort; report metaData.threadPartWarning if it is set and never republish the head. firstComment posts one comment under the post (under the last part of a chain) on Facebook, Instagram, X, LinkedIn, LinkedIn Page, Threads and YouTube. Check capabilities.firstComment on list_accounts before promising it — an unsupported target still publishes and returns a FIRST_COMMENT_UNSUPPORTED warning. Read firstCommentStatus on the post before calling the comment live.

Post Comments (5 tools)

Drafts (6 tools)

Accounts (3 tools)

Media (13 tools)

Inbox (18 tools)

Approvals (4 tools)

Teams (6 tools)

AI Content (10 tools)

AI Video / UGC (9 tools)

Analytics (26 tools)

Cross-platform & per-post

Per-platform analytics

days defaults to 7 (lookback window) on every analytics tool.

Best Time to Post (3 tools)

Notifications (5 tools)

Knowledge / RAG (6 tools)

For create_knowledge, fileId is required for pdf/image/text_file source types, and body is required for note.

Canva (4 tools)

Templates (3 tools)

Help & Support (5 tools)

WhatsApp (6 tools)

Integration Helpers (9 tools)

Resolve platform-specific targets (boards, channels, subreddits, locations) before publishing.

Webhooks (10 tools)

Webhook categories accept: post, inbox, account, subscription, ai, team, support. Delivery status filter accepts: pending, success, retrying, failed.

Plans, Billing & Usage (6 tools)

Referrals (2 tools)

API Keys (3 tools)

Tenants / Workspaces (4 tools)

Profile & Preferences (5 tools)

Organization (2 tools)

MCP Introspection (2 tools)

Usage examples