New to Postdom? Try it free for 7 days. Get 30% off when you first open the plans. Get started

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