Supapost
v1.0.3Generate AI images and video, build TikTok slideshows, manage AI influencers, and schedule posts to TikTok / Instagram / YouTube / X through the Supapost MCP...
Supapost
Supapost is an end-to-end studio for AI-native content creators. This skill teaches your agent how to drive Supapost via its MCP server.
Installing this skill
Use the vercel-labs/skills CLI to drop the SKILL.md into your coding agent's skills folder (Claude Code, Cursor, OpenCode, OpenClaw, etc.):
npx skills add supapost-dev/skills
Or download the raw file from https://supapost.so/skill.md.
Connecting the MCP
Installing the skill only teaches the agent how to use Supapost. To actually call tools, connect the Supapost MCP. Create an API key at https://supapost.so/settings/developer (keys start with sp_), then pick the install for your client.
Claude Code (CLI):
claude mcp add --transport http supapost \
https://mcp.supapost.so \
--header "Authorization: Bearer sp_..."
Cursor / Windsurf / VS Code / any MCP client — add to ~/.cursor/mcp.json (or .mcp.json in the project root):
{
"mcpServers": {
"supapost": {
"url": "https://mcp.supapost.so",
"headers": { "Authorization": "Bearer sp_..." }
}
}
}
Verify the connection. After registering, call list_models once. A valid key returns a JSON list. A 401 Invalid API key means the key is wrong, expired, or missing the sp_ prefix — regenerate it at https://supapost.so/settings/developer.
Local stdio (MCP developers only): if you need to run the server locally against a custom SUPAPOST_API_URL, use the stdio package: claude mcp add supapost --env SUPAPOST_API_KEY=sp_... -- npx -y @supapost/mcp.
Tools at a glance
Reads: list_models, list_influencers, list_products, list_projects, get_project, list_scheduled_posts, list_assets, list_social_accounts, list_stores.
Writes: generate_image, generate_video, generate_slides, create_influencer, update_influencer, delete_influencer, upsert_project, delete_project, schedule_post, update_scheduled_post, delete_scheduled_post, publish_tiktok, delete_asset.
Core concepts
- Influencer = identity anchor. An influencer has a first-generation image that locks the face. Pass
influencer_idtogenerate_image/generate_videoto keep the character consistent across scenes. - Projects are containers — a slide deck, an influencer workspace, or a video. Use
upsert_projectto create or update;generate_slidescreates a slides project in one call. - Assets are generated or uploaded media. Generation tools are async — results appear as assets when the job completes.
- Scheduled posts are queued with
scheduled_atas an ISO 8601 future datetime. Delivery is handled by Cloudflare Queues.
Canonical workflows
1. Build a TikTok deck from a prompt
generate_slideswith{ prompt: "<topic + angle + tone>" }.- The response contains a project with slides. Review with the user.
- Optional:
upsert_projectto tweak metadata (name, status) only.
Don't use
upsert_projectto author slide content from scratch. The editor stores slides as positionedlayerswith full typography and positioning metadata.generate_slidesproduces that shape correctly. Hand-rolling JSON throughupsert_projectwill save but the editor may render blank slides.
2. Create a consistent AI influencer
generate_imagewith the character description. Pick the best output.create_influencerwith that image URL inimages[]. The first image becomes the identity anchor.- For every new scene, call
generate_imagewithinfluencer_idset. Do not restate the character in the prompt — describe scene, pose, outfit, lighting only.
3. Animate a still into video
- Find or generate a source image URL (from
list_assetsorgenerate_image). generate_videowith{ prompt, reference_images: [url], model: "kling-2.5-turbo-pro", duration: 5 }.- Keep prompts under ~40 words: camera move → subject action → environment.
4. Schedule a TikTok slideshow for next Tuesday 9am
list_social_accounts→ find the TikTok account id.schedule_postwithplatform: "tiktok",social_account_id,scheduled_at(ISO 8601, future), and either aproject_id(existing slide deck) orimage_urls[].
5. Publish to TikTok drafts right now
publish_tiktok with { account_id, image_urls, title }. This creates a TikTok draft the user reviews in the TikTok app before going live.
Rules
- Never paste the user's
SUPAPOST_API_KEYinto logs, files, prompts, or tool args. It lives only in the MCP env. - Always list before writing when the user references something by name ("my Emma influencer", "the summer sale project") — call
list_influencers/list_projects/list_storesto resolve the id first. - Always confirm destructive actions (
delete_*) with the user before calling. - Scheduled posts: verify
scheduled_atis in the future and in ISO 8601 with timezone (e.g.2026-05-01T09:00:00Z). - Images must be URLs, not base64. If the user pastes a local file, upload it first through the web app and use the resulting URL.
- Generation is async.
generate_image/generate_videoreturn a job id. Surface that to the user rather than pretending the asset is ready. - Models: prefer the team default (leave
modelunset) unless the user asks for a specific one. Uselist_modelsto show options.
Errors
The API returns { message: "..." } on failure with an HTTP status. Common cases:
401 Invalid API key— key is wrong, expired, or missing thesp_prefix.403 No team found— key isn't linked to a team; user needs to recreate it.404 Not found— bad id, or the resource belongs to a different team.400— validation error; surface the message verbatim.
Docs
- Product: https://supapost.so
- Developer portal: https://developers.supapost.so
- API keys: https://supapost.so/settings/developer
