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.platform (PLATFORM_ENUM)
platform (PLATFORM_ENUM)
TWITTER, INSTAGRAM, LINKEDIN, FACEBOOK, TIKTOK, YOUTUBE, THREADS, DRIBBBLE,
PINTEREST, WHATSAPP, LINKEDIN_PAGEstatus (STATUS_ENUM)
status (STATUS_ENUM)
POSTED, SCHEDULED, PENDING, FAILED, PENDING_APPROVAL, REJECTEDpostType (POST_TYPE_ENUM)
postType (POST_TYPE_ENUM)
TEXT, IMAGE, MULTIPLE_IMAGES, VIDEO, CAROUSEL, REEL, STORYPagination 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 besidetext, 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)
Biolinks (19 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.
TWITTER,INSTAGRAM,LINKEDIN,LINKEDIN_PAGE,FACEBOOK,TIKTOK,YOUTUBE,THREADS,WHATSAPP,DRIBBBLE,PINTEREST