Tools
All tools exposed by the Onepostly MCP server with the full parameter reference and examples.
The server exposes 9 tools covering the full publishing lifecycle. Write tools accept the same fields as the REST API. Each platform guide documents the required destination fields.
Tool catalog
| Tool | Description |
|---|---|
list_connections | List connected social accounts. Filter by platform |
publish_post | Publish immediately to one or more accounts |
schedule_post | Schedule a post for later with wall time and timezone |
list_posts | List recent posts, newest first |
get_post_status | Get a single post with destination statuses and external URLs |
get_analytics | Get normalized metrics for a published post |
delete_post | Remote-delete a published destination on the platform |
get_pinterest_boards | List Pinterest boards before choosing the required boardId |
get_tiktok_creator_info | Get TikTok privacy options and interaction restrictions before publishing |
Tool reference
list_connections
Lists every connected account with id, platform, displayName, handle, status, and authHealth.
| Parameter | Type | Required | Description |
|---|---|---|---|
platform | string | No | Filter to x, instagram, facebook, threads, linkedin, youtube, tiktok, pinterest, bluesky |
publish_post
Publish immediately to one or more connections. Requires text, mediaKind, and at least one destination.
| Parameter | Type | Required | Description |
|---|---|---|---|
text | string | Yes | Post content, max 5000 chars. For X threads this is tweet 1 |
mediaKind | string | Yes | text, image, multi-image, video, or stories |
destinations | array | Yes | 1–50 destinations, one per account. Each needs accountId |
mediaUrls | string[] | No | Media URLs from the Media API, max 35 |
thread | string[] | No | X or Bluesky thread segments 2–25 (Bluesky max 300 chars each) |
Destination fields
Only accountId is required. Platform-specific fields are validated per destination
| Field | Platforms | Description |
|---|---|---|
accountId | All | Account id from list_connections |
text | All | Per-destination override of root text |
quoteTweetId | X, Bluesky | Quote id to attach (Bluesky uses at:// URI) |
privacyStatus | YouTube | public, private, or unlisted. Default public |
description | YouTube, TikTok, Pinterest | Video or pin description |
privacyLevel | TikTok | Required. Get allowed values via get_tiktok_creator_info |
disableComment | TikTok | Turns comments off |
disableDuet | TikTok | Videos only |
disableStitch | TikTok | Videos only |
brandOrganicToggle | TikTok | Declares the content promotes the creator's own brand |
brandContentToggle | TikTok | Declares a paid partnership with a third-party business |
aiGenerated | TikTok | Disclose AI-generated content |
boardId | Required. List via get_pinterest_boards | |
link | Pinterest, Bluesky | Destination link URL |
schedule_post
Same fields as publish_post, plus scheduling parameters.
| Parameter | Type | Required | Description |
|---|---|---|---|
scheduledFor | string | Yes | Local wall time YYYY-MM-DDTHH:mm[:ss], no Z or offset, at least 60s in the future |
timezone | string | Yes | IANA timezone, e.g. America/New_York, Europe/Istanbul |
list_posts
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | 1–100, default 20 |
offset | number | No | Default 0 |
get_post_status
| Parameter | Type | Required | Description |
|---|---|---|---|
postId | string | Yes | Post id (uuid) |
get_analytics
Returns normalized analytics for a post. Posts younger than 30 days refresh about hourly, older posts about weekly. Pass post as described in Analytics.
| Parameter | Type | Required | Description |
|---|---|---|---|
post | string | Yes | Internal post id or native post id. Native ids require accountId |
accountId | string | No | Required for native post ids. Also narrows internal posts with several destinations |
destinationId | string | No | Internal only. Narrows one destination inside an internal post |
sync_external
Fetches an account's latest external posts on demand. Pass accountId plus url or postId to verify one submitted post. Omit both to refresh and return the account's recent posts. Stored posts return immediately, live fetches are debounced per account.
| Parameter | Type | Required | Description |
|---|---|---|---|
accountId | string | Yes | Connected social account id from list_connections |
url | string | No | Post URL to locate. Omit for bulk refresh |
postId | string | No | Platform-native post id to locate, as an alternative to url |
delete_post
Remote-deletes a published destination on the platform. For X threads, deletes all thread tweets.
| Parameter | Type | Required | Description |
|---|---|---|---|
postId | string | Yes | Post id |
destinationId | string | Yes | Destination id of the published item |
get_pinterest_boards
| Parameter | Type | Required | Description |
|---|---|---|---|
accountId | string | No | Pinterest account id. Omit to list for all Pinterest connections |
get_tiktok_creator_info
| Parameter | Type | Required | Description |
|---|---|---|---|
accountId | string | No | TikTok account id. Omit to list for all TikTok connections |
Returns privacyLevelOptions and whether comments, duets, and stitches are blocked for the account.
Examples
List connections
tool: list_connectionsPublish a text post
{
"tool": "publish_post",
"arguments": {
"text": "Hello from Onepostly",
"mediaKind": "text",
"destinations": [{ "accountId": "YOUR_ACCOUNT_ID" }]
}
}Schedule a post
{
"tool": "schedule_post",
"arguments": {
"text": "Hello tomorrow",
"mediaKind": "text",
"scheduledFor": "2026-09-10T09:00:00",
"timezone": "America/New_York",
"destinations": [{ "accountId": "YOUR_ACCOUNT_ID" }]
}
}