{"ok":true,"site":{"host":"lockshot-nu.vercel.app","url":"https://lockshot-nu.vercel.app/","type":"live","desc":"iOS App Store screenshot localization desk with WebMCP","tools":[{"name":"get_page_state","kind":"answer","impl":"imperative","description":"Get the current page state including project info, locale, all slide overlays, locked status, overflow flags, and comments","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_locale","kind":"act","impl":"imperative","description":"Add a new locale to the project. Use BCP 47 codes (e.g., en, de, es, ja, fr, pt-BR, zh-Hans). ChatGPT should then translate via set_overlay.","inputSchema":{"type":"object","properties":{"locale":{"type":"string","description":"BCP 47 locale code (e.g., de, es, ja, fr, pt-BR, zh-Hans)"}},"required":["locale"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_template","kind":"act","impl":"imperative","description":"Set the template for all unlocked slides or a specific slide. Templates: full_bleed_caption_bottom (default, screenshot fills frame with caption at bottom), caption_top (caption bar at top), framed_on_gradient (phone frame on gradient), gradient_only (gradient background only)","inputSchema":{"type":"object","properties":{"template":{"type":"string","enum":["full_bleed_caption_bottom","caption_top","framed_on_gradient","gradient_only"],"description":"Template ID to apply"},"slide":{"type":"number","description":"Optional slide ID (1-5). If omitted, applies to all unlocked slides."}},"required":["template"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_locale","kind":"act","impl":"imperative","description":"Switch to a different locale from available locales","inputSchema":{"type":"object","properties":{"locale":{"type":"string","description":"Target locale code from available locales"}},"required":["locale"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_overlay","kind":"act","impl":"imperative","description":"Set headline and/or subhead for a specific slide in the current locale. Supports campaign slide (id=0) and product slides (id=1-5). Does not affect locked slides. Overflow is automatically measured.","inputSchema":{"type":"object","properties":{"slide":{"type":"number","description":"Slide ID (0 for campaign, 1-5 for product slides)"},"headline":{"type":"string","description":"New headline text (optional)"},"subhead":{"type":"string","description":"New subhead text (optional)"}},"required":["slide"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"check_overflow","kind":"answer","impl":"imperative","description":"Check overflow status for all slides in the current locale","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"rewrite_overlay","kind":"act","impl":"imperative","description":"Rewrite headline and/or subhead for a specific slide with an instruction. Does not affect locked slides. ChatGPT should generate the new text based on the instruction.","inputSchema":{"type":"object","properties":{"slide":{"type":"number","description":"Slide ID (1-5)"},"instruction":{"type":"string","description":"Instruction for rewriting (e.g., 'make it shorter', 'fix overflow')"}},"required":["slide","instruction"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"apply_locale_pass","kind":"act","impl":"imperative","description":"Identify all unlocked overflowing slides for a specific locale. ChatGPT should then rewrite them via set_overlay.","inputSchema":{"type":"object","properties":{"locale":{"type":"string","description":"Target locale code"}},"required":["locale"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"comment_on_slide","kind":"act","impl":"imperative","description":"Add a comment to a specific slide that will be visible to the human","inputSchema":{"type":"object","properties":{"slide":{"type":"number","description":"Slide ID (1-5)"},"text":{"type":"string","description":"Comment text"}},"required":["slide","text"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"reset_project","kind":"transact","impl":"imperative","description":"Clear the current project and start over with a fresh empty state (equivalent to 'Start Over' button). Wipes localStorage, clears images, resets to empty drop zone.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_slide_colors","kind":"act","impl":"imperative","description":"Set custom colors for a slide's Kova template (full_bleed_caption_bottom). Overrides auto-sampled colors. Does not affect locked slides. Use RGB hex format (#RRGGBB).","inputSchema":{"type":"object","properties":{"slide":{"type":"number","description":"Slide ID (1-5)"},"text":{"type":"string","description":"Text color (hex, e.g. #6d28d9). Used for headline and subhead."},"background":{"type":"string","description":"Background color (hex, e.g. #f3e8ff). Light variant for canvas fill."},"accent":{"type":"string","description":"Accent color (hex, e.g. #c4b5fd). Dark variant for organic blobs."}},"required":["slide"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"export_zip","kind":"act","impl":"imperative","description":"Export the current locale's slides as a ZIP of 1320x2868 PNG files (no alpha channel, sRGB)","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","apiSurface":"spec","toolCount":12}}