MCP-native social publishing
PostEmAll is one calendar for TikTok, YouTube, Instagram, Facebook and X. Schedule a post in the browser, or let your AI agent do it — every action is a Model Context Protocol tool. The worker uploads the file, publishes at the minute you asked for, and comes back the next morning with the numbers.
Mon
07:00
MathIt · fractions hook
Mon
18:30
ChordIQ · chord of the day
Tue
07:00
KidTeller · bedtime clip
Wed
12:15
PianoCompanion · scale drill
Thu
07:00
MathIt · carousel, 6 slides
Fri
16:00
ChordIQ · release note
5
platforms, one calendar
1
idea becomes 5 posts
60s
between due and published
0
files copied by hand
What it does
Publishing to five platforms is not creative work. It is file conversion, aspect ratios, token refreshes and a spreadsheet of post ids. All of that is what PostEmAll owns.
A cross-post group holds one idea and the version of it each platform wants — long form on Facebook, a single line on X, the slides on TikTok. They publish together and they are measured together.
A background process wakes every 60 seconds, takes what is due, uploads the media and publishes it. It retries what fails and marks what needs a human, so a missed slot is visible instead of silent.
A daily tick collects views, likes, comments, shares and saves for every post it published, keeps 14 days of history, and never reports a metric a platform did not send as a zero.
Everything is scheduled in America/New_York and stored in UTC. Daylight saving is handled at the edge, once, so a 7 a.m. slot is 7 a.m. in March and in November.
Upload once. The file is kept beside the post, mirrored to S3, and streamed back for preview — so publishing does not depend on the laptop that made the video still being awake.
Each tool takes a dry_run flag and it defaults to true. You see exactly which rows would change, then you repeat the call to make it real. Nothing is published because a prompt was ambiguous.
How it works
The whole flow, start to finish. This is also exactly what the demo video for a platform review shows.
01
Open Connections, pick a platform and sign in with that platform's own login. PostEmAll never sees your password — it receives an access token, scoped to the permissions listed below, and stores it encrypted. Disconnect at any time and the token is deleted.
02
Compose in the browser: choose the account, upload the video, image set or write the text, set a New York date and time, and save. Or hand the same job to an AI agent through MCP and let it fill a month of slots at once.
03
The worker picks the post up at its minute, uploads to the platform, records the id it hands back and links straight to the live post. The next morning the stats tick brings back how it did.
Built for agents
Most schedulers bolt an API onto a dashboard. PostEmAll was written the other way round: the Model Context Protocol surface is the product, and the browser console is a second client on top of it.
dry_run defaults to true, so the agent must show you the change and be told again before anything is real.> Schedule Thursday's fractions clip on TikTok at 7am.
schedule_post
project "mathit"
account "tiktok:@mathit.app"
format "short"
caption "Halves before quarters. Here is why."
media ["/data/media/mathit/08-21.mp4"]
scheduled_at "2026-08-21 07:00"
dry_run true
ok true
slot 2026-08-21 07:00 EDT (free)
caption 47 / 2200 characters
media 1 video, 8.4 MB, 1080x1920
Nothing was written. Repeat with dry_run: false to schedule it.Data & scopes
Every permission PostEmAll requests, and the reason it requests it. The list below is generated from the same constants the app sends to each provider, so it cannot drift from what actually happens.
| Platform | Permissions requested | Used for |
|---|---|---|
| TikTok | user.info.basicvideo.uploadvideo.list | Read the connected account's display name and avatar so you can tell two accounts apart; upload the video or photo you scheduled; read back the view, like, comment and share counts of the posts PostEmAll published. |
| YouTube | youtube.uploadyoutube.readonlyyoutube.force-ssl | Upload a video or short to the connected channel, read that channel's own video statistics, and read the comments people leave on those videos. YouTube grants comment access only through youtube.force-ssl, which is broader than reading — PostEmAll never writes, moderates or deletes anything on the channel. |
instagram_basicinstagram_content_publishinstagram_manage_insightspages_show_listbusiness_management | List the professional accounts you administer, publish a reel, image or carousel to the one you chose, and read its insights. | |
pages_manage_postspages_read_engagementpages_show_listread_insightsbusiness_management | List the Pages you administer, publish to the Page you chose, and read that Page's post insights. | |
| X | tweet.readtweet.writeusers.readmedia.writeoffline.access | Read the connected handle, upload media and post on its behalf. Offline access keeps the connection alive without a fresh login every two hours. |
The full account is in the Privacy Policy, and the rules of use are in the Terms & Conditions.
Questions
Connect an account, schedule one post and watch it go out by itself. That is the whole evaluation.