Current configured agent contract

Configured agent contract

Postdom is an AI social media tool that turns your website into short videos, slideshows and posts, then publishes them.

A human creates the workspace key in Connected apps → For developers. These 17 tools let the connected agent take setup from there.

Postdom shows the exact pinned MCP configuration once when the key is created. The public package is @postdom/mcp@0.4.0.

VERIFIED · 26 AUGUST 2026 · 17 CONFIGURED TOOLS

HUMAN OAUTHYour agent starts setup. You authorize the account.

Paste the configuration from Connected apps → For developers. The agent checks workspace status, returns the social authorization link, discovers connected account IDs, and reads the Workspace Brief.

Quickstart

Publish a post for a website

  1. get_workspace_status() - the first call. It shows connected accounts and whether connections are open.
  2. list_accounts() - find the destination's providerAccountId (for example the TikTok account). Missing? connect_account({ platform: "tiktok" }) returns connect_url: give it to the person to approve, then list_accounts again.
  3. get_brief() for the brand's voice and rules, then the media to post. Read the website's pages yourself, write 3 to 6 short slides, and call create_slideshow({ size: "9:16", slides: [{ template: "cover", headline: "..." }, { template: "list", items: ["...", "...", "..."] }, { template: "end_card", cta: "...", handle: "@..." }] }): Postdom draws them on the workspace brand kit and returns media_ids. Your own video or image: upload_media, then get_media until stored.
  4. publish_video({ account_ids: ["<providerAccountId>"], media: [{ media_handle: "<media_id 1>" }, { media_handle: "<media_id 2>" }], caption: "...", intent: "Publish the acme-bakery.com post the user asked for" }) - the media array takes image or video handles in order, and TikTok publishes several images as a photo post; one video goes as media_handle or video_url instead. Use the hosted server: the 0.4.0 package has no media array. A TikTok post goes out public with comments, duet and stitch off, and the AI-made label is off by default; tell the person. It returns the post id and status.
  5. get_publish({ post_id: <id from publish_video> }) - each destination's state, and its public URL once published. Statuses requires_approval or draft mean a person approves it in Postdom first; tell them.

Errors are application/problem+json with code, detail, fix (what to do next) and doc_url (the docs entry for that code). Every code: https://postdom.com/docs/reference/errors.md

Callable surface

17 configured tools

get_workspace_statusStart here: read setup progress, the connection gate, accounts, policy, brief, and activity counts.

No inputs

list_accountsRead the workspace's connected destination IDs and current connection state.

No inputs

connect_accountOpen a platform authorization flow for a human to complete when workspace connections are unlocked.

platform: instagram | tiktok | youtube | linkedin | facebook | snapchat | twitter | threads

get_briefRead the current workspace-owned brand guidance before planning or writing content.

No inputs

get_digestRead the latest completed workspace week with populations, cadence endings, and coverage gaps.

No inputs

get_learningReads the saved account observations and exploratory advice for a learning scope. Advice that is missing or invalidated is not evidence of growth. It cannot apply, fund, approve or publish anything, and never returns a private draft.

scopeId?

upload_mediaCreate a short-lived direct PUT contract for finished video or image bytes.

content_type · size_bytes · width_pixels · height_pixels · duration_seconds · platforms?

get_mediaVerify an uploaded media handle before publishing it.

media_handle

submit_planPropose a bounded publication plan for human approval.

account_ids · title · objective · starts_at · ends_at · max_posts · intent · brief_version? · agent_identity? · idempotency_key?

get_planRead approval status and structured human feedback.

plan_id

publish_videoSubmit finished media now or at an exact UTC time; approval depends on trust and plan authorization.

account_ids · exactly one of video_url, media_handle or media[] (ordered image or video handles) · caption · intent · agent_identity? · surface? · title? · description? · publish_at? · plan_id? · idempotency_key?

get_publishRead publication and destination state.

post_id

list_postsList this workspace's posts to answer what is scheduled without already holding a post ID.

status? · from? · to? · account? · limit: 1 to 50, default 20

get_performanceRead normalized post or account measurements.

Exactly one of post_id or account_id · account window: 7d | 30d

get_best_postsRank account posts by one evidence-backed metric; nulls remain excluded with reasons.

account_id · metric · window: 7d | 30d

create_slideshowRender carousel slides on the workspace brand kit; returns image media ids in order for publish_video.

size: 4:5 | 9:16 | 1:1 · slides: 1 to 20 × template and its fields · idempotency_key?

account_musicRead or set who adds the music on each connected account: Postdom, or (TikTok only) the creator's TikTok inbox to add a trending sound. Also reads each post's inbox or 'Post it myself' state.

account_id? · music?: postdom | trending · post_ids?

First hour

Status before action

Call get_workspace_status first. If connections are locked, return the exact gate detail. If unlocked, use connect_account only to create a human authorization handoff, then call list_accounts until the connected destination appears.

Never guess an account ID or enter a human's social credentials.

Workspace guidance

Read before writing

Call get_brief before planning or writing content. Before submit_plan, read get_digest and the prior plan outcome when one exists. These describe what happened; they do not recommend what to do.

Follow the brief and attach its version as brief_version. Hard schedules, caps, and publishing windows remain in Policy.

Scheduling boundary

Scheduling capability

upload_media returns a short-lived direct PUT contract; get_media verifies the handle before publish_video schedules it inside account policy or an approved plan.

Agents provide exactly one video_url, stored media_handle or ordered media list (a slideshow), attach the approved plan’s id when required, and never guess a timezone or unsupported platform setting.

Authority boundary

Human authority

The agent cannot promote itself.

Human: create workspace · create or revoke agent keys · complete social authorization · approve plans · set trust · pause · handle exceptions

Agent: read setup status · initiate authorization handoff · discover destination IDs · read workspace guidance · upload finished media · propose plans · submit supported work · read state · read measurements

Never: expose credentials or signed upload URLs · enter social credentials · approve itself · expand trust · invent schema fields