{"protocolVersion":"0.3.0","name":"Percify Brand OS","version":"3.0.0","description":"Distribution for brands: reads a brand from its website, deals daily short video ideas built on posts that already performed, presents them with the owner’s own face and voice, and schedules the approved ones to up to 10 platforms.","url":"https://mcp.percify.io/mcp","documentationUrl":"https://docs.percify.io/api-reference/introduction","provider":{"organization":"Percify","url":"https://percify.ai"},"supportedInterfaces":[{"url":"https://mcp.percify.io/mcp","transport":"streamable-http","preferredTransport":"streamable-http"},{"url":"https://api.percify.io/v3/playground/v1","transport":"http+json"}],"capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"defaultInputModes":["text/plain","application/json"],"defaultOutputModes":["application/json"],"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"API key prefixed pk_live_, or an OAuth token; see auth.md."}},"security":[{"bearer":[]}],"skills":[{"id":"list_models","name":"List models","description":"List Percify generation models (image / video / audio) with their id, output type, credit cost, and required inputs.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_model","name":"Get model","description":"Get the full input JSON Schema, pricing, and a worked example for one model id.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"estimate_cost","name":"Estimate cost","description":"Price a generation BEFORE running it — exact server-side pricing including quality/resolution multipliers and per-second audio billing (the server probes audio duration itself).","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"wait_for_generation","name":"Wait for generation","description":"Long-poll a generation server-side: returns as soon as it finishes (or after ~45s with stillRunning=true — just call again).","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"generate","name":"Generate","description":"Start a generation.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_generation","name":"Get generation","description":"Poll a generation by id.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"upload_media","name":"upload_media","description":"Upload a file of the user's own (a portrait, a voice recording, a clip) so a model can use it.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"check_usage","name":"Check credits and usage","description":"Return this account's REMAINING credit balance plus the current month's usage (credits spent, runs, API runs) and the top-up URL.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"whoami","name":"whoami","description":"Which Percify account this connector is signed into: email, account id, plan, and the credit balance.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"list_assets","name":"list_assets","description":"Everything in this account’s LIBRARY, newest first, whatever made it: uploads, generated videos, avatar images and renders.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_asset","name":"get_asset","description":"One library asset in full: its url, poster, kind, source, model, duration and creation time.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"list_generations","name":"List past generations","description":"List this account’s most recent generations, newest first: id, model, status, output urls, credits spent and the start of the prompt.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"wait_for_job","name":"Wait for a job","description":"Wait server-side for a long job instead of polling: returns as soon as the job reaches a final state, or after ~45s with stillRunning=true (just call again).","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"analyze_video","name":"Analyze a video","description":"Video intelligence: break a short-form video (TikTok / YouTube Shorts / Reels URL, or any direct https video URL) into a shot-level replication blueprint — per-clip generation prompts, per-second a…","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_video_analysis","name":"Get video analysis","description":"Poll a video analysis by id.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"replicate_video","name":"Replicate a video","description":"Generate an AI replica from a ready video analysis: each blueprint clip renders through the chosen model, clips are stitched, and a branded side-by-side compare video is produced.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_replication","name":"Get replication","description":"Poll a replication run by id.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"compare_models","name":"Render a model comparison","description":"Render a branded, post-ready \"Model A vs Model B\" MARKETING cut (9:16 or 16:9) from two of your finished generations — the shareable side-by-side ad.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_compare","name":"Get model comparison","description":"Poll a compare_models render.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"create_avatar","name":"Create avatar persona","description":"Save a reusable Avatar Persona: a named character with up to 12 reference images and a voice.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"list_avatars","name":"List avatar personas","description":"List the user’s saved Avatar Personas: name, how many reference images each holds, and whether a voice is attached.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"add_persona_images","name":"Add persona reference images","description":"Add reference images to a saved persona, up to 12 in total including its frame.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"edit_persona_images","name":"Remove or promote persona images","description":"Remove reference images from a persona and/or choose which one leads the set.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"batch_generate","name":"Run a batch","description":"Run one model over many prompts as a SERVER-SIDE batch: start it, hang up, poll get_batch.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_batch","name":"Get batch","description":"Poll a batch.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"list_batches","name":"List batches","description":"The account’s recent batches with status, model, persona and credits spent.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"stop_batch","name":"Stop a batch","description":"Stop submitting new prompts in a batch.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"list_say_models","name":"List voice and lip-sync models","description":"Which models can run each half of avatar_say — voice cloning and lip-sync — with their credit cost and which one we recommend.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"estimate_say","name":"Estimate an avatar line","description":"Price an avatar_say before running it, for the chosen models.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"avatar_say","name":"Make an avatar speak","description":"Make a saved Avatar Persona speak a script: the persona’s voice is cloned saying the text, then its LEAD image is lip-sync animated to it.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_avatar_job","name":"Get avatar job","description":"Poll an avatar_say job.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"delete_avatar","name":"Delete avatar persona","description":"Permanently delete a saved Avatar Persona (its stored frame/voice references and say-job history).","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"make_video","name":"Make a short video","description":"Make a fully-edited short-form \"mascot\" video from a topic: writes a spoken script, generates an AI presenter + voice, lip-syncs, then applies the retention three-act edit (b-roll hook, seam captio…","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"reedit_video","name":"Recut a video","description":"Re-cut a finished make_video job with a different retention flow, WITHOUT re-rendering its lip-sync.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_mascot","name":"Get video job","description":"Poll a make_video job.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"read_brand","name":"Read a brand from its website","description":"Brand OS: read a brand from its website.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"list_brands","name":"List brands","description":"Brand OS: this account’s brands, with id, name, domain and status.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_brand","name":"Get brand","description":"Brand OS: one brand in full.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"list_plays","name":"List plays","description":"Brand OS: the whole play library, unfiltered.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"write_take","name":"Write a take on a play","description":"Brand OS: write a brand’s words into a play, the text for each of its slots from one angle.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"render_play","name":"Render a play","description":"Brand OS: render a brand’s version of a play to an MP4 from the play’s current take (write_take first).","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_render","name":"Get render","description":"Brand OS: a render_play job: running, done with videoUrl, or failed.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"todays_round","name":"Today's rounds for a brand","description":"Brand OS: a brand’s plays for today, dealt the way the Percify app deals them: rounds of a few cards, as many rounds as the plan gives a day, picked by the brand’s taste, its settings and what earn…","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"reveal_round","name":"Reveal a round","description":"Brand OS: turn one of today’s rounds over.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"approve_play","name":"Approve a play","description":"Brand OS: approve a play for a brand, as the Approve button in the app does.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"undo_approve","name":"Undo an approval","description":"Brand OS: take back an approval made with approve_play or in the app.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"pass_play","name":"Pass on a card","description":"Brand OS: pass on one card in today’s rounds.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"shuffle_round","name":"Shuffle a round","description":"Brand OS: reroll every card in a round that is not approved.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"list_library","name":"List the Library","description":"Brand OS: a brand’s Library shelf, the same one the app shows: plays saved, approved or scheduled, newest first, minus any the owner took off.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"save_to_library","name":"Save to the Library","description":"Brand OS: save a play to a brand’s Library shelf now, without rendering it.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"remove_from_library","name":"Remove from the Library","description":"Brand OS: take a play off a brand’s Library shelf, as Remove does in the app.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"download_library","name":"Download the Library","description":"Brand OS: a video file for each play on a brand’s Library shelf, newest first.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_autopilot","name":"Get autopilot","description":"Brand OS: a brand’s autopilot.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"set_autopilot","name":"Set autopilot","description":"Brand OS: turn a brand’s autopilot on or off, or change when and where it posts.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"run_autopilot","name":"Run autopilot now","description":"Brand OS: fill a brand’s empty autopilot slots now instead of at the next 15 minute pass.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_brand_performance","name":"Get brand performance","description":"Brand OS: what performs for a brand, from its own published posts with numbers over the last 120 days.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"list_social_accounts","name":"List social accounts","description":"Brand OS: the social accounts connected to this Percify account, or those for one brand plus any unassigned: id, platform, username, the brand each speaks for, whether it can post and whether it ne…","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"schedule_post","name":"Publish or schedule a post","description":"Brand OS: publish, schedule or draft a post on connected social accounts.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_post","name":"Get post","description":"Brand OS: a post made with schedule_post.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"list_referral_links","name":"List my referral links","description":"Creators: your referral links (your main code plus campaign links), each with its share URL and live clicks, signups, purchases and earnings.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"create_referral_link","name":"Create a referral link","description":"Creators: make a campaign referral link (approved creators, up to 25).","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"update_referral_link","name":"Edit a referral link","description":"Creators: rename a campaign link or switch it off/on.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"get_referral_stats","name":"Get my referral stats","description":"Creators: live referral numbers: all time, the last N days, today (UTC), per link and per day.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"list_resources","name":"List creator resources","description":"Creators: Percify's own marketing assets to post with your referral link (video ads, ad images, app screens, brand assets, memes...).","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"search_resources","name":"Search creator resources","description":"Creators: search Percify's marketing assets by words in the title, description or category, e.g.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]},{"id":"list_referral_events","name":"List my latest referral events","description":"Creators: the latest referral events, newest first (click, signup, conversion) with the link and time, for following activity in real time.","tags":["distribution","social media","short video"],"inputModes":["text/plain","application/json"],"outputModes":["application/json"]}],"additionalInterfaces":{"mcpServerCard":"https://percify.ai/.well-known/mcp/server-card.json","apiCatalog":"https://percify.ai/.well-known/api-catalog","authGuide":"https://percify.ai/auth.md","agentSkills":"https://percify.ai/.well-known/agent-skills/index.json"}}