Social0|Docs
Integrations

MCP tools reference

Complete reference for all 13 Social0 MCP tools.

Overview

The Social0 MCP server exposes 13 tools. Each tool maps to one or more /v1 REST API calls. Users can pass platform names (e.g. linkedin, twitter_x) or account UUIDs in platforms[].

Platform names

User saysPass as
LinkedInlinkedin
X / Twittertwitter_x
Instagraminstagram
Facebookfacebook
Threadsthreads
TikToktiktok
YouTubeyoutube
Pinterestpinterest
Blueskybluesky

Aliases: x, twittertwitter_x; iginstagram; fbfacebook; ytyoutube.

If multiple accounts exist on one platform, pass the account UUID from list_accounts.

Post status filters (list_posts)

draft | scheduled | publishing | published | partial | failed

Datetime format

Schedule fields use ISO 8601. Prefer UTC (2026-07-12T09:00:00.000Z) or the REST API +default suffix for dashboard timezone. See Schedule guide.


list_accounts

Description: List all connected social accounts for the authenticated user.

When to use: Before publishing — confirm which platforms are connected and get account UUIDs.

Parameters: None

Returns: Array of accounts with id, platform, username, is_active, token_status.

Example user prompt: "Show my connected Social0 accounts."

REST API called: GET /v1/accounts

Errors:

ErrorFix
401 UnauthorizedCheck API key — create a new key
Empty listConnect accounts in the dashboard first

create_post

Description: Create a draft post without publishing.

When to use: "Draft a LinkedIn post about X" — save for later editing or publishing.

Parameters

NameTypeRequiredDescription
contentstringYesPost text
platformsstring[]YesPlatform names or account UUIDs
mediastring[]NoMedia IDs from upload_media

Returns: { post_id }

Example user prompt: "Draft a LinkedIn post about AI trends in 2026."

Example flow:

  1. list_accounts → confirm LinkedIn connected
  2. create_post({ content: "...", platforms: ["linkedin"] })post_id
  3. Optionally publish_post({ post_id }) later

REST API called: POST /v1/posts

Errors:

ErrorFix
No connected linkedin accountConnect LinkedIn in Connections
Multiple twitter_x accountsUse account UUID from list_accounts

update_post

Description: Update an existing draft or scheduled post.

When to use: "Edit my draft" or change content/platforms before publishing.

Parameters

NameTypeRequiredDescription
post_idstringYesPost UUID
contentstringNoUpdated text
platformsstring[]NoUpdated platform list
mediastring[]NoUpdated media IDs

Returns: Updated post object.

Example user prompt: "Update my draft to mention the product launch date."

REST API called: PATCH /v1/posts/:id


delete_post

Description: Delete a draft or scheduled post.

When to use: "Delete yesterday's draft."

Parameters

NameTypeRequiredDescription
post_idstringYesPost UUID

Returns: Success confirmation.

Example user prompt: "Delete my latest draft."

REST API called: DELETE /v1/posts/:id


list_posts

Description: List posts with optional filters.

When to use: "Show scheduled posts" or "List my drafts."

Parameters

NameTypeRequiredDescription
statusstringNodraft, scheduled, published, failed, etc.
platformstringNoFilter by platform
searchstringNoSearch post content
limitnumberNoMax results (default 20)

Returns: Paginated list of posts.

Example user prompt: "Show all scheduled posts."

REST API called: GET /v1/posts


get_post

Description: Get full post details including per-platform publication status.

When to use: After publish completes — see final URLs and per-platform errors.

Parameters

NameTypeRequiredDescription
post_idstringYesPost UUID

Returns: Post with platforms[] showing status, error, platform_post_url per account.

Example user prompt: "Open post details for my last publish."

REST API called: GET /v1/posts/:id

Note: Use this for final truth after get_publish_status shows a terminal job status.


publish_post

Description: Publish an existing draft or scheduled post immediately.

When to use: "Publish my draft now."

Parameters

NameTypeRequiredDescription
post_idstringYesPost UUID
platformsstring[]NoOverride target platforms

Returns: { tracking_id, status: "queued" }

Example user prompt: "Publish my latest draft to LinkedIn and X."

Example flow:

  1. publish_post({ post_id })tracking_id
  2. get_publish_status({ tracking_id }) → poll until terminal
  3. get_post({ post_id }) → final per-platform results

REST API called: POST /v1/posts/:id/publish

Multi-platform publishes fan out in parallel. Poll get_publish_status every 2–5 seconds.


schedule_post

Description: Schedule an existing post for future delivery.

When to use: "Schedule my draft for tomorrow at 9 AM."

Parameters

NameTypeRequiredDescription
post_idstringYesPost UUID
scheduled_atstringYesISO 8601 datetime
platformsstring[]NoOverride target platforms

Returns: Scheduled post object.

Example user prompt: "Schedule my draft for 2026-07-15T09:00:00+default."

REST API called: POST /v1/posts/:id/schedule


upload_media

Description: Upload an image or video file from the local filesystem.

When to use: "Upload logo.png" before creating a post with media.

Parameters

NameTypeRequiredDescription
file_pathstringYesAbsolute or relative path to file

Returns: { media_id, url }

Example user prompt: "Upload ./assets/logo.png."

Example flow:

  1. upload_media({ file_path: "./logo.png" })media_id
  2. create_post or publish_now with media: [media_id]

REST API called: POST /v1/media/presign → PUT → POST /v1/media/confirm

Limits: JPG, PNG, GIF, WebP ≤ 50 MB; MP4, MOV, WebM ≤ 500 MB.


publish_now

Description: Create and publish a post in one step.

When to use: "Post this to LinkedIn now" — fastest path for immediate publishing.

Parameters

NameTypeRequiredDescription
contentstringYesPost text
platformsstring[]YesPlatform names or account UUIDs
mediastring[]NoMedia IDs

Returns: { post_id, tracking_id, status: "queued" }

Example user prompt: "Post 'Just shipped v2!' to LinkedIn and X right now."

REST API called: POST /v1/posts/publish


schedule_content

Description: Create and schedule a new post in one step.

When to use: "Schedule a post for tomorrow at 9 AM on LinkedIn."

Parameters

NameTypeRequiredDescription
contentstringYesPost text
platformsstring[]YesPlatform names or account UUIDs
scheduled_atstringYesISO 8601 datetime
mediastring[]NoMedia IDs

Returns: Created scheduled post.

Example user prompt: "Schedule tomorrow's product launch at 9 AM on LinkedIn and X."

REST API called: POST /v1/posts/schedule


get_publish_status

Description: Poll publish job progress after publish_post or publish_now.

When to use: After any publish — "Did my post publish?" or "Check tracking ID …"

Parameters

NameTypeRequiredDescription
tracking_idstringYesUUID from publish response

Returns:

MCP fieldAPI fieldDescription
overall_statusstatusqueued, processing, completed, failed, partial
progress.totaltotalPlatforms in job
progress.completedcompletedSucceeded count
progress.failedfailedFailed count
platform_statusesplatform_statusesPer-platform phase and message
errorserrorsFailed platform details
failure_reasonfailure_reasonFirst failure (terminal jobs only)

Example user prompt: "Did my post publish? Check tracking ID abc-123."

Example flow (LinkedIn + X):

  1. First poll: overall_status: processing, one platform_uploading, one platform_queued
  2. Final poll: partial if X fails, completed if both succeed

Polling guidance:

  • Poll every 2–5 seconds while overall_status is processing
  • Stop when overall_status is completed, failed, or partial
  • Video posts may take 1–5+ minutes
  • completed_at is set only when the job is terminal

Terminal outcomes:

Outcomeoverall_statusUser message
All okcompletedPublished to all platforms
All failedfailedCheck errors[], reconnect accounts
MixedpartialPublished to some platforms — list failures

Platform phase values:

PhaseMeaning
platform_queuedPlatform job accepted
platform_uploadingUpload/publish in progress
platform_successPublished on that platform
platform_failedFailed — read error / message

REST API called: GET /v1/jobs/:trackingId

Optional: Integrators can use SSE at GET /v1/jobs/:trackingId/stream (not exposed as an MCP tool today). See Jobs reference.


suggest_best_platforms

Description: Recommend platforms based on content length, media type, and connected accounts.

When to use: "Where should I post this?" or "Which platforms fit this caption?"

Parameters

NameTypeRequiredDescription
contentstringYesPost text
has_mediabooleanNoWhether post includes media
media_is_videobooleanNoWhether media is video

Returns: Ranked platform recommendations with reasoning.

Example user prompt: "Which platforms should I publish 'Just shipped v2!' to?"

REST API called: Client-side heuristic (optionally uses GET /v1/accounts for connected platforms)


Post status vs job status

ConceptValuesWhere
Publish job (tracking_id)queued, processing, completed, failed, partialget_publish_status
Post (post_id)draft, scheduled, publishing, published, partial, failedget_post, list_posts, dashboard

During publish, the post is usually publishing. When all platforms finish: all success → published; all failure → failed; mixed → partial.

On this page