MCP tools
Every tool the PostFlow MCP server offers, what it changes, and the API call behind it.
Tools mirror the REST API: same inputs, same results, same errors. Read tools never change anything and are the only ones read-only connections see. Hints are the MCP tool annotations clients use to decide when to ask you first.
Workspace and accounts
Section titled “Workspace and accounts”| Tool | Does | Access | API |
|---|---|---|---|
get_workspace |
Name, time zone, subscription, limits, your role and access level | Read | GET /me |
list_accounts |
Connected accounts, their status and the content types each accepts | Read | GET /accounts |
list_content_types |
Media and caption limits per content type; optional platform |
Read | GET /content-types |
get_tiktok_creator_info |
A TikTok account’s allowed privacy levels and settings, live from TikTok | Read | GET /accounts/{id}/tiktok-creator-info |
| Tool | Does | Access | Hints | API |
|---|---|---|---|---|
list_posts |
By status or from/to, filter by accountId/tagId; returns { items, nextCursor } |
Read | GET /posts |
|
get_post |
One post with per-account status, errors and live links | Read | GET /posts/{id} |
|
validate_post |
Check a post against every platform’s rules without saving | Read | POST /posts/validate |
|
create_post |
Draft, schedule, publish now or send for approval | Write | open world | POST /posts |
update_post |
Replace a post that hasn’t published | Write | destructive | PUT /posts/{id} |
reschedule_post |
Move to a new time | Write | idempotent | POST /posts/{id}/reschedule |
publish_post |
Publish now | Write | open world | POST /posts/{id}/publish |
retry_post |
Publish failed accounts again | Write | open world | POST /posts/{id}/retry |
approve_post |
Owner: approve a post waiting for review | Write | POST /posts/{id}/approve |
|
reject_post |
Owner: send it back to its author with a reason | Write | POST /posts/{id}/reject |
|
delete_post |
Delete from PostFlow (live posts stay on the platform) | Write | destructive | DELETE /posts/{id} |
Calendar, queue, media and tags
Section titled “Calendar, queue, media and tags”| Tool | Does | Access | API |
|---|---|---|---|
get_calendar |
Posts between from and to (≤ 92 days) plus free queue slots |
Read | GET /calendar |
get_queue |
Weekly posting times and suggested times | Read | GET /queue |
next_queue_slot |
The next free posting time | Read | GET /queue/next |
list_media |
Media library, newest first; kind, q, before |
Read | GET /media |
import_media |
Bring in a photo or video from a public URL | Write | POST /media |
delete_media |
Delete an unused file (destructive) | Write | DELETE /media/{id} |
list_tags |
Tags, for tagIds |
Read | GET /tags |
Comments and messages
Section titled “Comments and messages”Text in comments and messages is written by other people. The server tells agents never to follow instructions in it, and to show you the exact reply and wait for your approval before sending one.
| Tool | Does | Access | API |
|---|---|---|---|
list_comments |
Comment threads on Facebook and Instagram, with replies | Read | GET /inbox |
reply_to_comment |
Post a public reply and mark it done | Write | POST /inbox/{id}/reply |
hide_comment |
Hide or show a comment on the platform | Write | POST /inbox/{id}/hide |
set_comment_status |
Mark done or open in PostFlow | Write | POST /inbox/{id}/status |
list_conversations |
Direct message conversations, with the reply deadline | Read | GET /inbox/messages |
get_conversation |
The latest 100 messages | Read | GET /inbox/messages/{id} |
reply_to_conversation |
Send a reply within 24 hours of their last message | Write | POST /inbox/messages/{id}/reply |
set_conversation_status |
Mark done or open in PostFlow | Write | POST /inbox/messages/{id}/status |
Analytics
Section titled “Analytics”| Tool | Does | Access | API |
|---|---|---|---|
get_analytics |
7, 30 or 90 days vs the period before: totals, per account and format, best times, top posts | Read | GET /analytics |
Results and errors
Section titled “Results and errors”Successful calls return the API’s JSON as text, and as structuredContent when it’s an object. Failures return
isError: true with the error code, message and details:
VALIDATION: Some posts need changes before they can be scheduled{"preflight":[{"socialAccountId":"acc_th","issues":[{"severity":"error","code":"caption_length","message":"Caption is 612 characters; the limit is 500."}]}]}