All posts
·6 min read·Yom Akakpo

From script to six platforms in ninety seconds: the tutorial

A rendered video on disk, six connected platforms in Shortflow, Claude Code open. Here's the exact prompt sequence that turns all that into a scheduled multi-platform publication — without touching a UI.

tutorialmcpshortflowclaudepublishing

The episode sits in renders/ep02-pringles.mp4, sixty seconds, twelve hundred kilobytes. Six accounts connected in Shortflow: YouTube, TikTok, Instagram, Facebook Pages, Threads, LinkedIn. Claude Code open in the terminal. The Shortflow MCP server plugged in yesterday — you configured it once, you'll never configure it again.

What follows is the exact sequence I use to publish an episode, from the moment the render lands on disk to the moment the six platforms show "scheduled". Ninety seconds on the clock, excluding upload time. No dashboard screenshots. No drag-and-drop. Just a conversation.

The two-minute prerequisite

Before the publish sequence, two things must exist.

The Shortflow MCP server must be declared in Claude Code. This is done with one terminal command:

claude mcp add shortflow https://api.shortflow.leandre.io/mcp \
  --transport http \
  --scope local \
  --header "Authorization: Bearer sk_live_your_key"

Four arguments: the server name, its URL, the HTTP transport, the auth header carrying your Shortflow API key (retrievable from Settings → API keys in the dashboard, default lifetime unlimited). The command takes two seconds; the result persists indefinitely in Claude Code's local config.

The six platforms must be connected through the dashboard. Once, from the Shortflow UI, standard OAuth for each: YouTube via Google, TikTok via Login Kit, Instagram and Facebook via Meta (with their attached Page), Threads via Instagram, LinkedIn via Sign In with LinkedIn. Count roughly ten minutes total for the six. That's the one moment in your account's lifetime when you touch the UI — after that, everything goes through MCP.

Once those two steps are done, you're ready to publish without ever opening the browser again.

The sequence, in five prompts

What follows is what I actually type into Claude Code, in order. I've stripped only the details specific to my local layout.

Prompt 1 — Inventory connected accounts

List the social accounts connected to my Shortflow workspace. Give me handle, platform and status for each.

Claude calls list_accounts via MCP. Typical response:

6 connected accounts:

- YouTube     · @yom-akakpo      · ACTIVE
- TikTok      · @whyfactory      · ACTIVE
- Instagram   · @yom.akakpo      · ACTIVE
- Facebook    · WhyFactory Page  · ACTIVE
- Threads     · @yom.akakpo      · ACTIVE
- LinkedIn    · Yom Akakpo       · ACTIVE

No expired account. All tokens valid.

The purpose of this first prompt isn't the information — you know it. It's to validate the plumbing is alive. If a token has expired (Instagram every sixty days, LinkedIn likewise), it shows up here. Five seconds to verify nothing will break in the next sequence.

Prompt 2 — Upload the render

Upload the file renders/ep02-pringles.mp4 into the Shortflow media library and mark it READY once ingest finishes.

Claude reads the local file, calls prepare_upload to obtain a storage URL, transfers the binary, then finalize_upload to mark the media as ready. On a twelve-megabyte file over a fiber connection, the operation takes ten to twenty seconds. Response:

✓ Upload complete
  media_id : med_h7x2k9p4
  duration : 60.2 s
  size     : 12.4 MiB
  status   : READY

Media is ready for publication.

At this stage, the video exists in the Shortflow library, independent of the local file. You can delete the local file if you want — the rest of the sequence no longer needs it.

Prompt 3 — Per-platform captions

For media med_h7x2k9p4, I want to publish to all six connected platforms. Here are the per-platform captions:

  • YouTube Shorts: "Why the Pringles inventor rests in a Pringles can" #shorts #history #design
  • TikTok: "The Pringles inventor was buried inside a Pringles can. Promise." #history #strange #knowledge
  • Instagram: "The engineer who designed the Pringles tube was buried in one in 2008. His family honored the wish." #reels #strange #vintage
  • Facebook: "Fredric Baur spent two years, from 1956 to 1958, designing the Pringles tube. He was so proud of it that he asked to be cremated and buried in a Pringles can. His family honored that wish in 2008 — partially. [See main channel for the detail]"
  • Threads: "Fredric Baur, Procter & Gamble engineer. Designs the Pringles tube in 1958. Asks to be buried in one in 2008. Granted."
  • LinkedIn: "A note on attachment to one's work, for my engineering peers: Fredric Baur designed the Pringles tube in 1958, putting two years into it. He took enough pride in the work to ask, decades later, to be buried in a Pringles can at his death in 2008. His family partially honored that wish. A question to those listening: what is the artifact in your career you talk about with that level of pride?"

No API call here — it's just a structured prompt setting up the next one. Claude keeps those six variants in context. Notice I write the captions ahead of time, in the same IDE where I wrote the script — not in Claude. Faster, more consistent.

Prompt 4 — Create the publication

Create the multi-platform publication for med_h7x2k9p4 with the captions above. Schedule: tomorrow at 9 UTC for YouTube, TikTok, Threads; 11 UTC for Instagram; 14 UTC for Facebook; 8 UTC for LinkedIn. Mode: approval required (I confirm before actual publication).

Claude calls create_publication once per target, or a grouped call depending on the server version. Response:

✓ Publication created: post_p4t9z2

Six scheduled targets:

- YouTube      · 2026-06-11 09:00 UTC · PENDING_APPROVAL
- TikTok       · 2026-06-11 09:00 UTC · PENDING_APPROVAL
- Threads      · 2026-06-11 09:00 UTC · PENDING_APPROVAL
- Instagram    · 2026-06-11 11:00 UTC · PENDING_APPROVAL
- Facebook     · 2026-06-11 14:00 UTC · PENDING_APPROVAL
- LinkedIn     · 2026-06-11 08:00 UTC · PENDING_APPROVAL

All targets await your approval from /dashboard/library.

The six publications are queued, separately scheduled (following the staggered grid described in the cross-publication playbook), and held pending approval. That's Shortflow's default posture — you keep control over the exact moment a publication ships, even when everything else is automated.

Prompt 5 — Approve

Approve all six targets of post_p4t9z2.

Claude calls approve_publication. Response:

✓ post_p4t9z2: 6 targets approved
  Each target will flip from SCHEDULED to PUBLISHING at the planned time,
  then to PUBLISHED once the platform confirms.

You can track progress with `get_publication_status post_p4t9z2`.

At this point, everything is in place. The queue takes over. You close Claude Code, you move on, and the next morning the six platforms show the video at the scheduled times.

The three prompts worth the round-trip the next day

Once publication is live, three observation prompts are worth the detour.

First, the morning of D+1, verify publication went through:

Give me the detailed status of post_p4t9z2 — each target, its public URL if available, and any error.

You retrieve the six public URLs (e.g. https://youtube.com/shorts/xyz, https://tiktok.com/@whyfactory/video/123), useful for sharing and for visually verifying no target skipped.

Second, twenty-four hours later, first look at metrics:

Give me views, likes and comments on post_p4t9z2 for each target, aggregated since publication.

Claude calls get_post_metrics and summarizes. Five seconds. Lets you identify immediately which targets are taking off and which are dragging.

Third, at week's end, overview:

Across episodes published this week, which target (platform) performs best on average? Give me a ranking.

There, Claude iterates over the recent window, aggregates, ranks. Useful for adjusting editorial trade-offs (e.g. "this week LinkedIn over-performed, maybe I should adapt my captions to that tone").

Why this approach changes the picture

The tutorial above isn't a gadget demo. It's a way of working whose cumulative effect, across eighty monthly episodes, is measured in human-days saved. Six platforms × five minutes of UI work × eighty episodes equals forty hours per month spent pushing a file into browsers. With the MCP sequence above, we're at about twelve hours per month — and most of that is caption writing, not tooling.

But the real gain sits elsewhere. By pulling the publication step out of the UI circuit, you make it composable. The same prompt that creates a publication can be called by a script watching your renders/ folder. The same prompt that pulls metrics can feed a weekly report generated without intervention. The publication layer is no longer an isolated stage in the pipeline; it becomes a primitive you orchestrate like any other.

That's exactly the MCP promise: delegating to an AI agent the business operations that, just yesterday, required a human in front of an interface.


To start, creating a Shortflow account opens a seven-day free trial with MCP enabled by default and a valid API key. The Claude Code configuration takes two minutes; the sequence above runs the moment the first platform is connected.