Tools

posts

Posts

MCP toolcan change or delete

Everything about a post, from draft to taken down.

Actions

draft

draft title body variants[] [link_url]

Create a draft with one variant per channel. Returns brandIssues per variant; issues block publishing until fixed.

RESTPOST/posts·CLItracee posts create

update

update post_id [title] [body] [link_url] [variants[]]

Edit a post that hasn't gone out. Undoes any approval or schedule; it becomes a draft again. variants replaces the channels entirely.

RESTPATCH/posts/{postId}·CLItracee api PATCH /posts/<postId>

publish

publish post_id

Publish now (or file an approval request if the workspace requires one).

RESTPOST/posts/{postId}/publish·CLItracee posts publish <postId>

schedule

schedule post_id scheduled_for

Publish later, same approval rules.

RESTPOST/posts/{postId}/publish·CLItracee posts publish <postId>

submit_for_approval

submit_for_approval post_id [scheduled_for] [note]

Send to a person's inbox explicitly.

RESTPOST/posts/{post_id}/submit-for-approval·CLItracee posts submit <post_id>

reschedule

reschedule post_id scheduled_for

Move a scheduled post (keeps its approval).

RESTPOST/posts/{post_id}/reschedule·CLItracee posts reschedule <post_id>

unschedule

unschedule post_id

Cancel a scheduled post; it stays approved.

RESTPOST/posts/{post_id}/unschedule·CLItracee posts unschedule <post_id>

delete

delete post_id|post_ids[] [note]

Delete posts that never went out (asks a person); several at once answer per post.

RESTDEL/posts/{postId}·CLItracee posts delete <postId>

RESTPOST/batch/posts/delete·CLItracee posts delete-many

unpublish

unpublish post_id [variant_ids] [note]

Take a live post down from its platforms (asks a person).

RESTPOST/posts/{post_id}/unpublish·CLItracee posts unpublish <post_id>

get

get post_id|post_ids[]

Posts with variants, statuses and publish results.

RESTGET/posts/{postId}·CLItracee posts get <postId>

RESTGET/batch/posts·CLItracee posts get-many

list

list [from] [to] [status[]] [platforms[]] [channel_ids[]] [customer_id] [query] [limit]

Posts newest first; from/to (dates or ISO times) pick by when a post goes out, went out or is planned for, like the calendar; status filters by draft, pending_approval, approved, scheduled, published, failed…; platforms keeps posts with a variant on those networks; query matches title and copy.

RESTGET/posts·CLItracee posts list

RESTGET/calendar·CLItracee posts search

update_settings

update_settings post_id channel_id settings={…} [replace_settings]

Change one channel's platform settings (channels action=rules lists them, channels action=options their live choices) on a post that hasn't gone out, keeping its copy, media and time. A scheduled or approved post is scheduled again for the same time (and goes back for approval if the workspace requires it).

RESTPATCH/posts/{post_id}/channels/{channel_id}/settings·CLItracee posts settings <post_id> <channel_id>

comments

comments post_id

The team's comments on a post. action=comment post_id comment: add a note for the team on the post (agents can't approve; nothing is published).

RESTGET/posts/{post_id}/comments·CLItracee posts comments <post_id>

duplicate

duplicate post_id

Copy any post (even a published one) as a new draft.

RESTPOST/posts/{post_id}/duplicate·CLItracee posts duplicate <post_id>

send_to_tasks

send_to_tasks post_id [task_app] [place_ids[]] [note]

Make a task (card, issue, item, record) for the post in a connected task app (asana, trello, clickup, monday, jira, linear, todoist, googletasks, airtable, notion) with its copy, channels, its time as the due date and a link back; task_app defaults to the one the team used last, the place to that app's saved one. A person approves it before it's made.

RESTPOST/posts/{post_id}/send-to-tasks·CLItracee posts send-to-tasks <post_id>

task_places

task_places [task_app] [place_ids[]]

Where a task can go, one level at a time (workspace, project, board, list, table…); add an id to place_ids and ask again until every level is chosen.

RESTGET/task-places·CLItracee posts task-places

next_slot

next_slot channel_ids[]

The next posting time free on all those channels (their posting times, else 9:00/12:00/17:00).

RESTGET/schedule/next-slot·CLItracee posts next-slot

saved

saved [platform] [limit]

Saved (on Radar), the posts the team saved from LinkedIn, X, TikTok and other networks with the Tracee browser extension (text, author, counts, link). Use them as ideas to write the workspace's own posts: borrow the idea, never the words.

RESTGET/saved-posts·CLItracee posts saved

replies

replies post_text [post_author] [platform] [angle]

Three comments worth posting under someone else's post, in the brand's voice (an insight, a question, another angle). They appear to the person as cards to copy, or to put straight into the comment box when they use the Tracee browser extension, so never list or restate them in your answer.

RESTPOST/reply-suggestions·CLItracee posts replies

export

export post_id app [target_id] [subject] [field_map]

Copy a post into an email app as a newsletter draft (mailchimp, kit, beehiiv, mailerlite, brevo, klaviyo) or into a website as a draft (webflow, contentful, wordpress_com). Never sends or publishes: a person does that in the app from the returned url. Without target_id it uses the list or collection used last, else returns the choices; a target_id that has more inside (a Webflow site, a Contentful space) returns those. subject defaults to the post's first line. field_map (websites) overrides which field gets title, slug, body, summary or image. Sending the same post to the same place again updates that draft.

RESTPOST/posts/{post_id}/export·CLItracee posts export <post_id>

draft/update also take thread[] (follow-up parts: replies on X and Threads, comments on LinkedIn, Facebook, Instagram, YouTube, Reddit; e.g. the link in the first comment), repeat {every_days, until} (publish again every N days after it goes out; null stops), and per-variant settings and thread. "@Name" for a saved mention contact becomes each platform's handle.

Inputs

Every call takes action and the fields that action names above.

  • actionstringrequired

    What to do: draft, update, publish, schedule, submit_for_approval, reschedule, unschedule, delete, unpublish, get, list, duplicate, next_slot, saved, replies, update_settings, comments, comment, export, send_to_tasks or task_places. Each is described in the tool description.

    Available options:draftupdatepublishschedulesubmit_for_approvalrescheduleunscheduledeleteunpublishget

  • post_idstring

    The post, from posts action=list (or the id posts action=draft returns)

    uuid

  • post_idsstring[]

    get and delete: several posts at once, from posts action=list

    1–50 itemseach uuid

  • platformsstring[]

    list: only posts with a variant on these networks, e.g. ["linkedin", "x"]

    up to 40 itemseach up to 30 characters

  • fromstring

    list: from this date or time

    up to 40 characters

  • tostring

    list: up to this date (inclusive) or time

    up to 40 characters

  • statusstring[]

    list: only these statuses

    up to 9 items

    Available options:draftpending_approvalapprovedrejectedscheduledpublishedpartially_publishedfailedremoved

  • customer_idstring

    list: only posts on this client's channels. From channels action=customers.

    uuid

  • querystring

    list: words in the title or copy

    up to 200 characters

  • channel_idstring

    update_settings: the channel whose version to change. From channels action=list.

    uuid

  • settingsobject

    update_settings: platform settings to set, e.g. {"visibility": "CONNECTIONS"}

    any keys

  • replace_settingsboolean

    update_settings: replace all settings instead of merging

  • commentstring

    comment: the text

    1–5,000 characters

  • threadobject[]

    Follow-up parts every channel sends

    up to 25 items

  • repeatobject | null

    Publish again every N days once it goes out; null stops repeating

  • channel_idsstring[]

    next_slot: the channels to find a time for. From channels action=list.

    each uuid

  • titlestring

    Internal name for the post

    1–200 characters

  • bodystring

    Default copy for every variant

    at least 1 character

  • link_urlstring | null

    Landing page; UTM tags are added for you. null removes it (update).

    uri

  • variantsobject[]

    For draft, update and get: the variants. From channels action=list (one {channel_id} per channel).

    at least 1 item

  • scheduled_forstring

    ISO 8601 with offset

    date-time

  • variant_idsstring[]

    unpublish only these variants. From posts action=get post_id=<post_id> (variants[].id).

    each uuid

  • notestring

    Context for the approver

    up to 500 characters

  • limitinteger

    For list and saved: the limit.

    1–100

  • platformstring

    saved: one network, e.g. linkedin, x, tiktok. replies: the post's network

    up to 40 characters

  • post_textstring

    replies: the text of the post to reply to

    1–20,000 characters

  • post_authorstring

    replies: who wrote it

    up to 200 characters

  • task_appstring

    send_to_tasks, task_places: the task app, e.g. asana; the last one used if left out

    up to 40 characters

  • place_idsstring[]

    send_to_tasks, task_places: one id per level of where the task goes, outermost first; the app's saved place if left out. From posts action=task_places task_app=<task_app>.

    up to 4 itemseach 1–300 characters

  • anglestring

    replies: what the person wants to say, in a few words

    up to 600 characters

  • appstring

    export: where the draft goes: mailchimp, kit, beehiiv, mailerlite, brevo, klaviyo, webflow, contentful, wordpress_com

    up to 40 characters

  • target_idstring

    export: the list, publication or collection (posts action=export without it lists them)

    up to 500 characters

  • subjectstring

    export: the email subject or page title (default: the post's first line)

    up to 250 characters

  • field_mapobject

    export, websites: which field gets each part, e.g. {"body": "post-body", "image": ""}

    any keys