Skip to main content
PostSider exposes 19 tools through the Model Context Protocol. The tools cover channels, agency reports, scheduling, approvals, media, analytics, and notifications. This page documents each tool, its parameters, and when to use it.
Call postsider_list_channels first in any workflow. Almost every other tool needs a channel id, and that is where you get them.
All tool names are prefixed with postsider_ so they never collide with tools from other MCP servers your agent has loaded.

Read tools

These tools only read data. They never change anything in your organization.
Lists the social channels (integrations) connected to your PostSider organization.Parameters: noneReturns: an array of channels, each with its id, name, and platform. Use the id values for the scheduling and analytics tools.Example prompt:
Lists configured channel groups, which are sets of channels you publish to together.Parameters: noneReturns: an array of group objects.
Returns the next free scheduling time (UTC) for a channel, based on its configured posting queue. Use the returned value as the date for postsider_create_post when you want to drop a post into the queue.Parameters:
  • channelId - channel id, from postsider_list_channels
Returns: an object such as { "date": "2026-07-01T10:00:00" }. Use its date property when creating a post.
Lists posts scheduled or published within a date range. Useful for reviewing the content calendar before scheduling more.Parameters:
  • startDate - range start, ISO 8601 (for example 2026-06-01T00:00:00Z)
  • endDate - range end, ISO 8601 (for example 2026-06-30T23:59:59Z)
  • customer (optional) - customer id to filter by
Returns: an object such as { "posts": [...] }.
Returns the provider-flagged missing-media status for a post (content the platform reported as not yet available). It is not a general validator - it reports the missing-media case and returns an empty list otherwise.Parameters:
  • postId - the post id
Returns: a list of missing content entries, or an empty array.
Returns performance analytics for a single post over the last N days, where the platform supports it.Parameters:
  • postId - the post id
  • days (optional) - look-back window in days (default 7)
Returns: platform-specific metrics for that post.
Returns account-level analytics for a connected channel, where the platform supports it.Parameters:
  • channelId - channel id, from postsider_list_channels
  • date (optional) - provider-specific date or range parameter, if required
Returns: platform-specific account metrics.
Not every platform exposes analytics through its API. Channels on platforms without analytics support return no data.
Lists recent notifications for the organization, such as publish failures or channels that need reconnecting.Parameters: noneReturns: a paginated object with notifications, total, page, limit, and hasMore.
Reports whether publishing is active or paused for the organization. Use it before scheduling (a paused organization rejects new posts) and to confirm that an emergency pause is in effect.Parameters: noneReturns: an object such as { "state": "ACTIVE", "pausedAt": null, "pausedBy": null, "reason": null }.
Checks whether a post submitted with postsider_request_approval was approved, rejected (with the reviewer’s note when there is one), or is still pending. Returns NONE if the post was never sent for approval.Parameters:
  • postId - the post id to check
Returns: the post’s approval status.
Returns organization-wide operational counts and recent errors.Parameters: days (optional) - look-back window, default 30.Returns: counts and recent errors for the organization.
Returns a customer-scoped report for agency workflows.Parameters: customerId - customer or organization identifier; days (optional) - look-back window, default 30.Returns: customer-scoped counts and recent errors.
Returns one post and its group, channels, state, media, settings, and integration metadata.Parameters: postId - the post id.Returns: the post object.

Media tools

Downloads an image or video from a public URL and stores it in the PostSider media library. Run this before scheduling a post that needs media, then pass the returned media object to postsider_create_post.Parameters:
  • url - public URL of the image or video to import
Returns: a media object. Pass it (or an array of them) as images on a post.
The URL must be publicly reachable. Private or internal addresses are blocked.

Write tools

These tools create or change content. Use them once you have the channel ids and, for scheduling, a slot.
The main publishing tool. Creates a post across one or more channels.Parameters:
  • type - draft saves without publishing, schedule books the post for date, now publishes immediately (default schedule)
  • date - when to publish, ISO 8601 UTC (for example 2026-07-01T10:00:00Z); for now, use the current time
  • shortLink (optional) - whether to shorten links in the content (default false)
  • posts - one entry per channel, each with:
    • channelId - channel id to publish to
    • content - the post text or caption
    • firstComment (optional) - a first comment posted right after, where the platform supports it
    • images (optional) - media objects from postsider_upload_media_from_url
    • settings (optional) - provider-specific settings (advanced; usually omit)
  • tags (optional) - an array of { value, label } tags
  • idempotencyKey (optional) - stable key to safely retry the same create request without creating a duplicate
Example prompt:
Get channel ids from postsider_list_channels, and a free queue time from postsider_find_slot. Run postsider_get_post_missing_fields if a publish is rejected.
Changes the status of an existing post. Valid values are draft and schedule; schedule moves a draft into the publishing queue. Any other value is rejected.Parameters:
  • postId - the post id
  • status - the new status value (draft or schedule)
Permanently deletes a post and every other channel version of it. PostSider stores a multi-channel post as one group, so a single id deletes the whole group.Parameters:
  • postId - the post id to delete; any post in the group works
This permanently removes every channel version in the group. Read the post first with postsider_get_post and confirm with the user before calling this tool. It cannot be undone.
Pushes a draft post into the human approval queue for review instead of publishing or scheduling it directly. The post must already exist as a draft. Approval is optional in PostSider: most posts can also be scheduled directly.Parameters:
  • postId - draft post id to submit for approval
Immediately halts ALL publishing for the organization: no now or schedule posts can be created, and queued posts are held instead of going out. Use it when something is wrong, for example a post on the wrong channel or a runaway automation loop. Resume is human-only (dashboard, owner) and cannot be done through the API.Parameters:
  • reason (optional) - recorded in the audit trail and shown to the team
This is the organization-wide kill switch. Confirm with the user before calling it.

Typical agent workflow

Most publishing flows follow the same pattern:
1

Discover channels

Call postsider_list_channels to get the ids and names of connected channels.
2

Pick a time

Call postsider_find_slot for the target channel to get the next free queue slot, or choose your own date.
3

Prepare media (if needed)

Call postsider_upload_media_from_url to import an image or video, and keep the returned media object.
4

Create the post

Call postsider_create_post with the channel id, content, date, and any media. If it is rejected, call postsider_get_post_missing_fields to see what to fix.
5

Request approval (optional)

If the draft needs a human sign-off, call postsider_request_approval, and check the outcome later with postsider_get_approval_status.
6

Review later

Use postsider_list_posts, postsider_get_post_analytics, and postsider_get_notifications to check results.