{"name":"com.aioproductos/mcp-studio","slug":"aioproductos-mcp-studio","title":"AIOProductOS Studio","description":"Turn your AI host into a product videographer: scripted app demos, voice-over, captions, MP4/GIF.","url":"https://mcp.market/server/aioproductos-mcp-studio","rating":null,"grade":"A","score":89,"certified":false,"status":"active","category":"ecommerce","tags":["ecommerce"],"presence":{"score":27,"stars":3,"forks":1,"downloads_week":52,"last_push_at":"2026-07-21T10:20:49.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/AIOProductOS/studio-mcp","website":"https://aioproductos.com/mcp","version":"0.2.3","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@aioproductoscom/mcp-studio","version":"0.2.3","transport":{"type":"stdio"}}],"tools":[{"name":"studio_cancel","description":"Abandon the current recording session: closes the browser and discards the tape. Nothing is written except screenshots already saved. Safe to call when no session is active (no-op).","write_action":true,"price_micros":0,"input_schema":null},{"name":"studio_caption","description":"Show (or replace) the bottom-left storyline caption — an eyebrow kicker plus one sentence that narrates the current beat. Keep it under ~12 words and leave it up 2–4s (studio_hold) so it reads. Pass clear=true to fade it out before a scene change. The caption_text is ALSO recorded as the voice-over script: if you call studio_finish with voiceover:true it's spoken aloud (locally) timed to this mome","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_click","description":"Glide the visible cursor to a target and click it, slow enough to read as a deliberate action on camera. Use for every button / link / menu interaction in the walkthrough. Precondition: the target must be on screen — studio_goto or studio_scroll to it first if it isn't. Prefer a stable CSS selector; fall back to visible text. After clicking it waits for the page to settle and re-applies the theme ","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_end_card","description":"Show the closing card — a centred glass card over the (still visible) product: title, optional subtitle and URL. The classic outro: what they saw + where to get it. Hold ~2.5s after this, then studio_finish.","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_finish","description":"Stop recording and produce the final files: closes the browser, strips residual dark frames (ffmpeg blackdetect → trim), transcodes to a share-ready MP4 (H.264, faststart), then — optionally — narrates the caption lines with a LOCAL voice (no cloud/keys), lays down a music bed, writes/burns subtitles, and exports vertical/square social crops, plus a GIF. Voice-over timing is auto-corrected for the","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_goto","description":"Navigate to a URL behind a designed transition card (eyebrow + big title on the theme background) — the viewer never sees a loading flash or half-hydrated page. Use for the opening shot AND every surface change; give each a short title so the cut reads as a chapter. Waits for real content (network settle + optional wait_for selector + skeleton loaders cleared) before lifting the card.","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_highlight","description":"Draw an accent ring around a target (CSS selector or visible text), optionally with a label card beside it — the 'look here' callout. Side effects: scrolls the target into view, then overlays a ring (and card) in the theme accent; rings stack until cleared. Returns 'highlighted <target>' when the element is found, or errors 'target not found: <target>' when it isn't — retry with a studio_screensho","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_hold","description":"Hold the shot for a moment — glides to a target (optional) and keeps micro-drift so the recorder keeps emitting frames (a dead-static hold gets its tail frames dropped). Use after captions, highlights, and zooms: 2000–3000ms is a good beat.","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_narrate","description":"Record a line of voice-over WITHOUT putting a caption on screen — narration spoken over the action. The line is synthesized locally at studio_finish (needs voiceover:true). Holds the shot afterward so there's footage under the line; set hold_ms to roughly the length of the sentence when spoken (~400ms/word).","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_screenshot","description":"Take a high-DPI (2x) screenshot of the current frame and save it as a PNG in the output directory. Works any time during a session — element-only via selector, or full_page for the whole scroll height. Returns the file path. Clear captions/rings first unless you want them in the shot.","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_scroll","description":"Cubic-eased scroll to an absolute Y offset or until a target element is in view — never a jump cut. Use between story beats to bring the next area on camera. Side effect: changes only the page scroll position (no click, no navigation). Pass exactly ONE of to_y or to_target. Returns 'scrolled' on completion. To reveal an off-screen element before studio_click or studio_highlight, scroll to it first","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_start","description":"Start a recording session: launches a themed headless browser and begins capturing video. Returns the session config and the output directory. One session at a time — studio_finish or studio_cancel ends it. Set theme to the PRODUCT'S brand (bg = its app background — wrong bg causes visible flashes on page loads); use storage_state_path (a Playwright storageState JSON) to record logged-in areas wit","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_type","description":"Glide to an input and type text at a human pace (keystroke by keystroke — it reads as real usage, not a paste). Use realistic demo content; whatever you type is on tape.","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_zoom","description":"Camera punch-in: smoothly zoom the page toward a target (CSS selector or visible text) — the money shot for a metric, button, or result. Captions stay screen-fixed; the content scales under them. ALWAYS studio_zoom with reset=true before navigating or showing the end card, or the next scene inherits the zoom.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":89,"grade":"A","scanned_at":"2026-09-25T17:22:56.538Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T17:22:56.535Z","components":{"code":{"score":25,"max":25,"notes":["5 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 66 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","website matches verified namespace"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@aioproductoscom/mcp-studio","version":"0.2.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-07-17T07:47:58.789Z","repositoryUrl":"git+https://github.com/AIOProductOS/studio-mcp.git","weeklyDownloads":52}],"repo":{"found":true,"owner":"AIOProductOS","repo":"studio-mcp","archived":false,"pushedAt":"2026-07-21T10:20:49Z","stars":3,"forks":1,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/302251294?v=4","ownerCreatedAt":"2026-07-10T18:45:58Z","license":"MIT"},"icon":{"url":"https://aioproductos.com/brand/mark.png","source":"registry","width":149,"height":149},"presence":{"stars":3,"forks":1,"downloadsWeek":52,"license":"MIT","lastPushAt":"2026-07-21T10:20:49.000Z","score":27}}}},"grade_history":[],"reviews":[]}