io.github.Perufitlife/postwire-mcp

PostWire

Writes a native post per network from one idea and publishes it: TikTok, Instagram, YouTube & more

Endpointhttps://postwire.io/api/mcp (streamable-http)
Registry version0.4.0
Now26 tools · grade D (51) · pin ts_ee74dd90dab05607a374497f5e372207 · protocol 2025-06-18
First / last listed2026-10-28 04:27 UTC / 2026-10-28 04:27 UTC
Grade over time2026-10-28: D (51), 26 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-10-28 04:27 UTC
26 tools, grade D (51)

Tools: list_platforms my_account generate_posts post_to_social schedule_post list_scheduled_posts cancel_scheduled_post get_post_status create_connect_link plan_week bulk_schedule create_recurring_post list_brands create_brand create_client_link list_clients invite_teammate client_report create_upload_link make_video_from_text check_video_quality get_uploaded_file get_upgrade_link get_x_credits get_post_performance replicate_top_post

Current tools (26)

list_platformsLists the social platforms and destinations PostWire can publish to and, for each, whether it connects with OAuth or with credentials (fields, plus optional_fields), and kind "article" for the blogs (WordPress, Dev.to, Hashnode), where a post is an article with a title. Does not need a PostWire account.
params: none
my_accountShows the signed-in PostWire account: plan, usage against each plan limit (posts this month, brands, AI drafts today, networks per post, scheduled posts waiting), brands, and which social accounts are connected, each with its brand and the handle, display name and picture the network reports for it. When a limit is at least 80 % used, the result includes the plan that raises it, its monthly price
params: none
generate_postsWrites one draft per platform from a single idea, adapted to each network's rules (character limit, hashtags, title and tags for YouTube, hook-first caption for TikTok and Reels, link placement for LinkedIn, Slack formatting, plain text for Nostr). For the blogs (wordpress, devto, hashnode) the draft is a full article: title (<= 70 characters), summary (120-160 characters), a Markdown body with H2
params: prompt*, platforms*, media_url, brand_voice
post_to_socialPublishes a post immediately and publicly to the listed platforms through the social accounts connected to the user's PostWire account. A published post cannot be withdrawn from PostWire. Accepts one text for all platforms or a separate per_platform draft for each. YouTube requires video_url; TikTok requires video_url or photos (photo_url or media); Instagram requires a photo or video, and two or
params: platforms*, text, per_platform, title, video_url, photo_url, media, privacy, brand_id, upload_method, idempotency_key
schedule_postQueues a post to be published at a future time (run_at, ISO 8601 with timezone, up to 365 days ahead), or in the brand's next free queue slot (run_at "next_slot": the earliest weekly slot all its platforms share that no other waiting post of the brand uses; the result gives the time chosen) through the connected accounts. Takes the same content fields as publishing now. Every platform must already
params: run_at*, timezone, platforms*, text, per_platform, title, privacy, video_url, photo_url, media, brand_id, upload_method, label
list_scheduled_postsLists the account's scheduled posts (queued, held, pending_approval = waiting for a person to approve it, publishing, processing = sent and Instagram is still processing the video, done, failed, rejected = not approved, or canceled) with their id, time, platforms and status. Optional from/to limit the time range.
params: from, to
cancel_scheduled_postCancels a queued or held post, or withdraws one waiting for approval, so it is never published (a withdrawn post's approval links stop working). Only works before it starts publishing. Takes the id of the scheduled post.
params: id*
get_post_statusReturns the status and link of a published post, by platform and the post id returned when it was published, plus `verification`: PostWire's own independent read-back of the post from the network (state live / processing / accepted / not_public / gone / failed / unverifiable, with what the network answered and when), separate from the API response the publish got. PostWire re-reads every post 10 m
params: platform, id*, brand_id
create_connect_linkCreates a one-hour link the user opens in a browser to connect social accounts (TikTok, Instagram, YouTube, Facebook Pages, LinkedIn, Bluesky…) to their PostWire account: the page shows each network as a button, signs in to it on the network's own page, and then offers the next one, so several networks can be connected from one link. Nothing is connected until the user completes it on the page. Wi
params: platform, brand_id
plan_weekWrites one post per day for 1 to 7 days from a single topic, each day from a different angle and each platform in its own native format, and queues them to be published publicly at the given hour on each day starting tomorrow, through the connected accounts. Text only: platforms that require a video or photo (TikTok, YouTube, Instagram) are refused. Every platform must already be connected. The wh
params: topic*, platforms*, days, hour, timezone, brand_voice, brand_id
bulk_scheduleChecks, and on request schedules, many posts at once: a CSV file's text (csv) or a list of rows (rows), each row one post with the columns date ("2026-10-12 09:00" in the row's or the upload's timezone, an ISO time with offset, or "next_slot"), networks ("linkedin, x"), text, optional text_<network> (each network its own text), media_urls (https links; video: or document: prefix), alt_text, first_
params: csv, rows, timezone, brand_id, dry_run, fit_long_text, date_format, allow_duplicate
create_recurring_postSets up a post that repeats on a schedule: daily, weekly on some weekdays, or monthly on some days of the month (31 falls on the last day of shorter months; -1 = the last day), every N days, weeks or months, at 1-4 times a day in a timezone (daylight saving handled), from a start date until an end date or for a number of times. variants (a list of texts) are used in turn, so the same text does not
params: platforms*, text, variants, rule*, guard_days, photo_url, video_url, label, brand_id
list_brandsLists the account's brands (one business each) with the social accounts connected to each: platform, the handle, display name, picture and profile link the network reports, when it was connected, and whether posts to it need only text, a video, or a photo or video. Also returns the plan's brand limit.
params: none
create_brandCreates a new, empty brand (a separate business with its own connected social accounts) on the PostWire account and returns its id. The plan limits the number of brands; at the limit nothing is created and the response names the plan that includes more brands, its monthly price and a checkout link.
params: name*
create_client_linkFor agencies and freelancers posting for clients: one brand per client. Creates a private page for one brand, good for 30 days, that the client opens without a PostWire account to connect that brand's own social accounts (each network is signed in on its own page, so no password is shared with the agency), approve or ask for changes on the brand's posts waiting for approval (Pro and above; on Star
params: brand_id, brand_name
list_clientsLists the account's brands (one per client) with, for each: the social accounts connected to it, its active client links (url, expiry, how many times opened and when last), and how many of its posts wait for approval. Also says whether the plan includes client links and how many brands have no social account connected yet.
params: none
invite_teammateInvites a person by email to work in this PostWire workspace with a role: admin (Everything except billing and ownership: members, brands, connections, approval rules, keys); editor (Writes, schedules and publishes posts, within each brand's approval rules); contributor (Drafts and schedules posts; every one waits for approval before it goes out); approver (Only the approvals inbox: sees the previ
params: email*, role, brand_ids
client_reportReturns one brand's report for last month (or the month given): what was published on each network, the numbers each network returned, clicks on tracked links and approvals, and client_link: the client's private page opened on its Last month tab, when the brand has an active client link. Pro and above brand it for the client; on Free and Starter it is a preview under PostWire's mark and its note n
params: brand_id, brand_name, month
create_upload_linkCreates a single-use link, valid for 24 hours, to a PostWire page where the user picks one photo or video from any device (JPG, PNG, WebP, GIF, MP4, MOV or WebM, up to 1 GB; big videos upload in parts automatically). The file stays in the account's PostWire media storage while a scheduled post needs it, is deleted the day after that post is published, and 7 days after upload if no post uses it (2
params: none
make_video_from_textMakes a short vertical video from the words of a post, for networks that take only video (YouTube) or video or photos (TikTok): an MP4 of 1080x1920, 8 to 12 seconds, H.264 with AAC sound. The first line appears as a large heading and up to two more sentences appear one after another over a softly moving plain background, with royalty-free background music or silence; an optional footer line (for e
params: text*, style, music, footer
check_video_qualityReads the header of a video file at a public https URL (an upload's media_url works) and says what TikTok will do with it: codec and profile, width x height, fps, average bitrate (kbps), duration, HDR/10-bit, audio codec, and a verdict — keeps_quality (TikTok leaves it looking the same), recompressed (TikTok visibly re-encodes it: HEVC/AV1, HDR or 10-bit, above 1080x1920, above 30 fps, above 16 Mb
params: url*
get_uploaded_fileReturns the status of a file uploaded through a PostWire upload link, by upload_id: "waiting" until the file has arrived, then "done" with its media_url (an https URL valid for 6 hours, renewed when the post goes out, that works as video_url or photo_url), kind (photo or video), size and content type.
params: upload_id*
get_upgrade_linkReturns PostWire's paid plans with their monthly price and what each includes (posts a month, brands, AI drafts a day, networks per post, scheduled posts at a time), the account's current plan, and a checkout link for one plan (the next plan up when none is given). The link opens a Stripe payment page in the browser and nothing is charged unless the user pays there; for an account that already has
params: plan, interval
get_x_creditsShows what posting to X (Twitter) costs this account and what it has left. X is a pay-per-use add-on of the paid plans (Starter, Pro, Agency, Scale; not Free, not during a trial): 1 X credit = 1 plain X post, a post with a link uses 10, each image or video adds 1. Returns mode (paid, free, trial or internal), the plan's monthly X credits, used and left, top-up credits, X posts today against the da
params: text, images, video, thread, reply
get_post_performanceReturns what the account's own numbers say works, over the last 90 days, computed from the numbers each network reports (no estimates): the published posts ranked against the median of the same social account on the same network, each with its network, brand, link, excerpt, metric (views where the network reports them, otherwise likes + reposts + replies), value, that median, n (posts in the media
params: brand_id, platform, timezone
replicate_top_postWrites new drafts, one per platform, that reuse the structure, opening type, length, format and tone of one of the account's published posts, on a new topic or a new angle; the reference post's sentences are not reused. Nothing is published or scheduled. Takes the id of a published post of the account (the ids that the account's post performance results list). Counts toward the account's daily AI
params: post_id*, platforms, topic, brand_voice

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.