MCP server · CLI · API
Let your AI agent make and post your short videos
Claude Code
Codex
Hermes AgentOpenClaw
Grok Bot
dots
Muse
Three ways in
MCP server
Sign in from your agent’s app, or give it a key in the Authorization header.
Streamable HTTP
https://mcp.outshot.ai/mcpCommand line and skill
For agents with a terminal, like Claude Code, Codex and Hermes. Needs Node 22 or later. On GitHub.
Install
npm i -g outshotAdd the skill
npx skills add TangaApp/outshot-cliAPI
Every operation over HTTPS, for your own scripts and tools. API reference.
Base URL
https://api.outshot.ai/v1Connect Claude Code or Codex
OUTSHOT_API_KEY, then add the server.Claude Code
claude mcp add --transport http outshot https://mcp.outshot.ai/mcp \
--header "Authorization: Bearer $OUTSHOT_API_KEY"Codex
# ~/.codex/config.toml
[mcp_servers.outshot]
url = "https://mcp.outshot.ai/mcp"
bearer_token_env_var = "OUTSHOT_API_KEY"Claude Code: the skill
/plugin marketplace add TangaApp/outshot-cli
/plugin install outshot@outshotOther MCP clients
URL: https://mcp.outshot.ai/mcp (streamable HTTP)
Header: Authorization: Bearer osk_your_keyThe full guide, with keys, credits and errors, is in the API docs.
What your agent can do
See
See videos and brand: every key can.
get_brandWhat Outshot knows about the brand: product, audience, content themes, tone.
get_weekly_batchThe brand's weekly batch: whether next week's videos are made by themselves, the day they're ready, the week's goal of kept videos, the email when it's ready, and the next batch (about how many videos, the most credits it can use, whether it's skipped).
list_videosThe videos waiting for a decision, oldest first. With a key that can make changes, reading it also asks for new videos when fewer than the target are waiting, as opening the app does (10 credits each, 15 for a Demo video, 20 for a talking head, 25 for a Creator video).
get_videoOne video as it is now. Use it to follow a change until its state is ready.
list_calendarKept and posted videos, by posting day, with their links once posted (each platform's in `platforms`): those still to come, and those of the last 30 days (past_days to go further back).
list_contentEvery video the brand kept, posted or skipped, each in its group: ready (kept with no day yet; or `missed`: its time passed without posting, or its send stopped midway), scheduled, posted, skipped (kept 30 days, until `deletes_on`).
get_creditsThe credit balance, the plan, and what each thing uses.
get_postingThe posting days, the time and time zone videos post at, whether kept videos take the next open day by themselves (auto_schedule), whether they post to TikTok by themselves, and which platforms they post to (TikTok, Instagram, YouTube: each connected one, unless switched off).
list_trendsThe Library: trending TikToks the brand's videos are made from (how each is built, its reach), saved ones first. `makes`: what make_video_from_trend would make from it.
list_demosThe product demos (screen recordings) that Demo videos are made with.
list_make_asThe formats a video can be made again as (make_video_as), with what each costs.
get_video_settingsThe brand's formats (each on or off, and why one can't be made), how often videos name the brand, where a talking head's host stands, the voice and the look.
Make and change
Make changes: Edits, remakes and skips videos, makes one from a trend, changes posting. Uses credits.
update_weekly_batchTurn the weekly batch on or off, choose its day, the week's goal or the email, or skip the next batch. A batch uses credits as every video does, within the week's share of the plan.
answer_deck_weekAnswer the deck when it asks (its week's goal of kept videos reached, or the week's credits used), or start it again: keep (keep swiping), stop (nothing new for now), automate (next week's videos are made by themselves) or keep_going (go past this week's credits).
update_brandChange the brand's goal, tone, audience, words to avoid, or content themes. New videos follow the changes.
skip_videoPass on a waiting video. A new one is made in its place (10 credits each, 15 for a Demo video, 20 for a talking head, 25 for a Creator video).
undo_videoTake back a decision: a skipped or kept video goes back to waiting.
edit_video0-15 creditsChange a video's words. Changing the caption or hashtags is free and immediate; changing words on screen remakes the video. A voiced video (Narrated, Website tour, talking head) changes its spoken words (`spoken`): a new voice-over, and for a talking head a new take.
swap_media2-15 creditsSwap one picture, clip, section, background, host or track in a video for the next pick, and remake it (a talking head's new host is a new take).
change_look1 creditChange how a voiced video looks: its captions (word or card), emoji, graphics, transitions, sound effects or music (each on or off), or a talking head's layout (split screen or cut-out). Re-rendered with the same voice-over and take.
make_video_as8-15 creditsMake a video again in another format (one of list_make_as), with the same idea. It keeps its format until the new one is made.
regenerate_video8-15 creditsMake a video again from the same trend, with new words and media (a talking head: a new take).
remove_closer1 creditRemake a Demo video without its closing reaction.
set_posting_daysChoose the days that get a video (one video a day). Kept videos stay on their day.
update_postingChange the posting days, auto-schedule, the time or the time zone. Kept videos keep their day; a new time moves the ones still to come to it.
answer_missedSay whether a `missed` video (list_content) is on TikTok: its time passed without posting (posted by hand?), or its send stopped midway. Yes: it's marked posted; no: it waits in ready for a new day. With `platform` (instagram or youtube): whether its post there is live, when that platform's mark says needs_answer (no: it can be tried again).
create_demo_uploadAdd a product demo: a 5 to 20 second screen recording. Gives back where to upload it.
complete_demo_uploadSay a demo's video is uploaded. It's checked and made ready in the background. The brand's first demo then gets a Demo video made with it (15 credits).
set_demo_lineSay what a demo shows. Demo videos made with it follow the line. With the brand's first demo, a Demo video is then made with it (15 credits).
make_video_from_trend10-25 creditsMake a video now from a trend in the Library: it's first in the deck (list_videos) in about half a minute. `format`: one of the trend's can_make (list_trends), its own when not given; a trend built around a hook becomes a Demo video when the brand has a demo or its website filmed.
update_video_settingsSwitch formats on or off, choose how often videos name the brand, the host's layout, the voice or the look. Videos planned after the change follow it.
set_demo_rhythmHow many Demo videos a week (0 to 3).
delete_demoDelete a product demo. It can't be undone.
Keep and post
Post your videos: Approves videos so they post to your TikTok, Instagram and YouTube on their day, or posts them right away.
approve_videoKeep a video: it takes the next free posting day (with auto_schedule off, it waits in ready with no day). It then posts by itself on that day to the brand's connected platforms: TikTok with the brand's saved TikTok choices, Instagram and YouTube (not slideshows). With a key that can also make changes, a new video is made in its place (10 credits each, 15 for a Demo video, 20 for a talking head, 25 for a Creator video).
schedule_videoSet a kept video, made before TikTok was connected, to post to TikTok by itself on its day, with the brand's saved TikTok choices. Only one waiting to be posted by hand whose time is still ahead: one whose time has passed may already be on TikTok.
place_videoGive a kept, skipped or unposted video a day, or move one to another day (one video a day; swap to trade days with the video there). No day: the next open posting day. With a platform connected it then posts by itself (TikTok with the brand's saved TikTok choices, Instagram, YouTube).
post_video_nowPost a kept, skipped or unposted video now (it goes out within 15 minutes) to every platform the brand posts to: TikTok with the brand's saved TikTok choices, Instagram and YouTube (not slideshows). One of them must be connected.
retry_platformSend a video's Instagram or YouTube post again (within 15 minutes): one turned down there, or whose time passed without it going out (its platform mark says can_retry). Never one that's live there, or whose send may have posted.
Questions about agents and MCP
What is an MCP server?
MCP (Model Context Protocol) is the open standard AI agents use to call tools. Outshot’s MCP server gives an agent like Claude Code or Codex tools to see your videos, make new ones from trends, change them, and give them a day to post on TikTok, Instagram and YouTube.
Is there an MCP server that makes and posts TikTok videos?
Yes: Outshot’s, at https://mcp.outshot.ai/mcp. It makes short-form videos for your brand and posts them to TikTok, Instagram Reels and YouTube Shorts. TikTok’s own MCP server is for ads (campaigns and reporting), not for making or posting videos.
How do I connect Claude Code to Outshot?
Make a key in Outshot (API, in the app), put it in your shell as OUTSHOT_API_KEY, then run: claude mcp add --transport http outshot https://mcp.outshot.ai/mcp --header "Authorization: Bearer $OUTSHOT_API_KEY". Or add the command line’s skill with /plugin marketplace add TangaApp/outshot-cli.
Can my agent post without asking me?
Only if you let it. Each key works for one brand and only for what you allowed when you made it: see, make changes, or post. The command line keeps or posts a video only with --yes, and its skill tells the agent to ask you first.
What can’t an agent do?
Connecting TikTok, Instagram and YouTube, plans and payments, and making keys stay in the app, with you. When a video posts to TikTok, it uses the choices you made in Outshot (who can see it, comments, duets); an agent can’t change them.
Does using an agent cost extra?
No. An agent uses the same credits you do: 10 for a new video, 1 or 2 for most changes. A key that can only read never uses any.