apply_image_template
ChatGPTUse this when the user wants a DesignerBox template applied, for example "apply the Fragrance Story template to my photo": DesignerBox generates the images and saves them to the user's library. Find the template id with list_image_templates. Generates BY REFERENCE: you pass the template id/slug only — the prompt + recipe are loaded server-side and never returned to you. Pass referenceImages (e.g. the user's photo, from import_chat_image or upload_asset) to apply the template image-to-image (keep your subject); omit them for a text-to-image render of the look. Cost is the template model's per-image price × number of images (returned as creditsCharged). Requires available AI credits. Pass clientRequestId for safe retries within 30 minutes.
cancel_avatar_task
ChatGPTCancel a pending or in-flight avatar generation task. Refunds previously-charged credits via the service's refund path. Terminal-state tasks (completed/failed) cannot be cancelled — the call surfaces a structured error.
cancel_video_task
ChatGPTCancel a video generation task that is still waiting to start: it is cancelled and its credits are given back. Once the video is being generated it can no longer be cancelled — it will finish and stay charged (error video_already_generating, with that sentence). Finished, failed or cancelled tasks answer task_not_cancellable.
create_brand_profile
ChatGPTCreate a brand profile in the active team: name plus optional voice, themes, content goals/types, niche and industry. It becomes the team default when there is none yet (or when makeDefault is true), which is the profile update_brand_profile edits. No AI credit cost.
create_design
ChatGPTCreate (save) a Studio design from explicit Fabric canvasJSON in the active team — single-page (canvasJSON) or multi-page (pages, up to 20). Returns the design id (usable as a render-design node's designId, and openable/editable in the Studio editor). Does not render anything.
create_pipeline
ChatGPTCreate (save) a new pipeline / workflow canvas in the active team from a node + edge graph. Returns the new pipeline id. Does not run the graph — use run_pipeline for that.
create_video_project
ChatGPTAuthor a layered video composition as a real Video Studio project: multi-track clips (base + picture-in-picture lanes) with 11 transitions (crossfade/fade-black/blur/glitch/wipes…), timed text overlays (fonts/box/outline/animations + dynamic timecode counters), graphic elements (corner brackets, logo bugs from your library), full-frame tints (end-card dim, flash frames), audio layers, 25 LUT looks + blur/vignette. Layer order: clips → grade/LUT → tints → elements → text. Returns the project id — render with render_video_project, or open in the Video Studio editor. Does not render or charge credits by itself.
delete_asset
ChatGPTPermanently delete an image or video from the active team's library (the file and its record) and free its storage. Cannot be undone. Confirm with the user before calling.
delete_design
ChatGPTPermanently delete a Studio design in the active team. Cannot be undone. Confirm with the user before calling.
delete_pipeline
ChatGPTDelete a pipeline (workflow) in the active team. It disappears from list_pipelines and the app. Confirm with the user before calling.
delete_video_project
ChatGPTDelete a Video Studio project in the active team. It disappears from the Video Studio. Confirm with the user before calling.
fashion_video
ChatGPTCreate a fashion video from a single image: a cinematic runway/spin/fabric-flow/etc. motion while preserving the exact outfit. Async — returns a taskUUID; poll get_video_status. Credit cost = model + duration. Requires available AI credits.
flat_lay
ChatGPTCreate a professional flat-lay composition from multiple product images. Cost = image model per-image credits. Requires available AI credits. Pass clientRequestId for safe retries within 30 minutes.
generate_cinema_studio
ChatGPTGenerate cinematic AI image(s) from a scene description using camera-body / lens / focal-length / aperture combinations. Costs 14 AI credits per image (returned as creditsCharged). Requires available AI credits. To EDIT an existing image (image-to-image), use the edit_image tool instead. Pass clientRequestId for idempotent retries within 5 minutes.
generate_design
ChatGPTGenerate a gallery design by applying a skill to a source image (image-to-image). Synchronous ~30-45s. Costs 5 AI credits (returned as creditsCharged). Requires available AI credits. Pass clientRequestId for safe retries within 30 minutes. Use list_skills to discover available skill IDs.
generate_image
ChatGPTUse this when the user asks DesignerBox for a new image from a text description, with no template and no photo of theirs: DesignerBox generates it and saves it to the user's library. For a template or the user's own photo, use apply_image_template instead. Generates one or more AI images synchronously (~30s). Cost is the SELECTED model's per-image price — the default model charges 14 credits/image and prices range roughly 4–22; call list_image_models to compare costs and pick a cheaper model. Total = perImage × numberResults, returned as creditsCharged. Requires available AI credits. Pass clientRequestId for safe retries within 30 minutes.
generate_video
ChatGPTSubmit an AI video generation task. Returns a taskUUID immediately; the task is processed asynchronously (BullMQ-backed). Use get_video_status to poll for completion. Credit cost is calculated from model + duration. Requires available AI credits. Supports BOTH text-to-video (default) and image-to-video — for image-to-video set type:'image-to-video' and pass inputImage (a public image URL).
get_app_run
ChatGPTPoll a workflow App run by its runId. Returns status, progress (completed/total/percent), any error, and the final result images. Only runs owned by your team are visible.
get_asset
ChatGPTRetrieve full detail for a single asset by ID. Cross-team access is rejected by the underlying service.
get_avatar
ChatGPTRetrieve full detail for a single avatar task by taskUUID. Returns task state including generated images when complete. Cross-team access is rejected when teamId is resolved.
get_avatar_status
ChatGPTPoll an avatar task's progress. Returns a slim status snapshot (status + progress + message). Use get_avatar to retrieve full detail including generated images once complete.
get_brand_asset
ChatGPTRetrieve full detail for a single brand asset by ID. Cross-team access is rejected with a generic not-found (no existence-leak). Use list_brand_assets to enumerate IDs.
get_brand_profile
ChatGPTRetrieve full detail for a single brand profile by ID. Cross-team access is rejected with a generic not-found (no existence-leak). Use list_brand_profiles to enumerate IDs.
get_conversation
ChatGPTRetrieve a single AI Assistant conversation including its full message history. Cross-user/cross-team access is rejected by the underlying service.
get_design
ChatGPTRetrieve full detail for a single design by ID. Returns null-safe fields; throws if cross-team access is attempted.
get_image_template
ChatGPTFetch one curated AI-image template by id or slug. Returns preview images, title/description, hashtags and the NON-SECRET generation params (model, aspect ratio, dimensions). The prompt is intentionally withheld — apply the template by reference with apply_image_template (it loads the prompt server-side).
get_photo_pack
ChatGPTRetrieve a single photo-pack category including its images. Catalog-shaped (no team scoping). Optional language code; falls back to English if the requested locale is missing.
get_pipeline
ChatGPTRetrieve a pipeline (workflow canvas) by ID, scoped to the active team. Returns the full node + edge graph.
get_plan
ChatGPTReturn the user's plan name, billing cycle, renewal date, trial end, status, currency, and seat count. Use for 'when does my plan renew?' / 'am I on the yearly or monthly plan?' / 'when does my trial end?'. Pairs with get_plan_limits (which returns quota usage). Available on every plan (no AI credit cost).
get_plan_limits
ChatGPTReturn the user's current subscription tier and per-tier quotas (storage, AI credits). aiCredits now includes purchasedBalance (one-off credit packs) alongside the monthly subscription bucket. Available on every plan (no AI credit cost). Call when the user asks 'what plan am I on?' or 'what are my limits?', or proactively before suggesting an action that might be blocked.
get_talking_avatar_status
ChatGPTPoll a talking_avatar lipsync job. Returns status plus the finished video's durable CDN URL when done (the clip is persisted to storage on completion).
get_video_render_status
ChatGPTPoll a Video Studio project's render (started by render_video_project). Returns the final MP4's durable CDN URL when done, or the render error when failed. For generate_video TASKS use get_video_status instead — this tool is for video-project composition renders.
get_video_status
ChatGPTPoll a video generation task's progress. Returns full task state including the final video URL when complete. Backed by a BullMQ queue (real async).
get_whiteboard
ChatGPTRetrieve a single whiteboard by ID, including its full content blob. Whiteboards are user-scoped (creator-only) — cross-user access is rejected with a generic not-found.
import_chat_image
ChatGPTUse this when the user attached images to their message and wants DesignerBox to work on them: it saves them to their DesignerBox asset library and returns each image's url, to pass as referenceImages[].imageUrl to apply_image_template or as the image input of another DesignerBox image tool. Call it when the attached images can be passed to this tool as file inputs (each arrives as a file object with a download_url); otherwise call upload_asset so the user can pick the file. Images only (JPEG, PNG, WebP, GIF), up to 30MB each, at most 4 per call; uses the workspace's storage.
list_assets
ChatGPTList assets (uploaded images/videos/files) for the active team. Optionally filter by folder or MIME-type prefix. Use get_asset for full detail.
list_avatars
ChatGPTList avatar generation tasks for the current user (user-scoped, NOT team-scoped — service signature predates team scoping). Optionally filter by status. Use get_avatar for full detail.
list_brand_assets
ChatGPTList brand assets (logos, fonts, palette swatches, etc.) for the active team. Optional filters by brand profile, file type, category, tags, or free-text search. Distinct from brand profiles — these are the binary asset library.
list_brand_profiles
ChatGPTList all brand profiles for the active team. The active profile is the one applied to AI-driven content generation. Use update_brand_profile to patch the active one.
list_conversations
ChatGPTList the user's AI Assistant chat conversations for the active team. Optional status filter (active/archived) and tag filter. Use get_conversation for full message history.
list_designs
ChatGPTList designs for the active team, paginated. Optionally filter by search term. Use get_design for full detail on a specific item.
list_folders
ChatGPTList all folders for the active team. Folders organise designs into a hierarchy. Returns flat list; parentId links to parent folder.
list_galleries
ChatGPTList the active team+user's AI gallery assets (generated via generate_design). Pagination + optional category filter. Returns a slim shape — assetId, assetUrl, slug, displayName, galleryCategory, createdAt — to keep payloads small.
list_image_models
ChatGPTList the AI image models available for generate_image / edit_image, with each model's id, capabilities, supported aspect ratios, and per-image credit cost, plus the looks (ad-grade people-and-styling presets) those tools accept as look. Use this to pick a model and a look before generating. Optionally filter the models by capability or category.
list_image_templates
ChatGPTUse this when the user asks about DesignerBox image templates or names one (search for it with q). Browse the curated AI-image template catalog. Returns catalog cards (id, slug, title, hashtags, preview images) — the generation prompt is intentionally NOT included. Supports search (q), hashtag filtering, sort and pagination. Use apply_image_template with an id to generate from a template.
list_photo_packs
ChatGPTList available photo pack categories. Photo packs are curated image collections usable in design generation. Accepts an optional language code for localised names.
list_pipelines
ChatGPTList pipelines (workflow canvases) for the active team. Returns slim shape with node counts; use get_pipeline for the full graph.
list_skills
ChatGPTList active skills available for generate_design. Returns skillId, name, type (image|video), group, and category. Use this to discover valid skillId values before calling generate_design.
list_teams
ChatGPTList the teams the authenticated user belongs to (as owner or member), with the currently active team marked. Use set_current_team to switch.
list_video_models
ChatGPTList the AI video models available for generate_video, with each model's id, capabilities (text-to-video / image-to-video), allowed durations & resolutions, and per-second credit cost. Use this to pick a valid model id and duration before generating. Optionally filter by capability.
list_video_tasks
ChatGPTList video generation tasks for the current user (user-scoped, NOT team-scoped — service signature predates team scoping; matches list_avatars). Optionally filter by status. Use get_video_status for full polling detail.
list_whiteboards
ChatGPTList MySpace whiteboards for the current user, scoped to the active team. Whiteboard content is omitted from the list view (use the dedicated read endpoint for content).
photo_angles
ChatGPTGenerate a new camera-angle view of a product from one photo (rotation/tilt/zoom), preserving composition and lighting. Cost = image model per-image credits. Requires available AI credits. Pass clientRequestId for safe retries within 30 minutes.
product_ad
ChatGPTGenerate a professional product advertisement image from a product photo. Cost = image model per-image credits. Requires available AI credits. Pass clientRequestId for safe retries within 30 minutes.
remove_background
ChatGPTRemove the background from an image with AI, returning a transparent-background PNG URL. Costs 3 AI credits. Requires available AI credits. Pass clientRequestId for safe retries within 30 minutes.
render_video_project
ChatGPTRender a Video Studio project's composition (clips + text overlays + audio layers + looks) to a final MP4 via the ffmpeg render pipeline. Returns immediately; the render takes ~1-5 min — poll get_video_render_status. The flat compose cost is reserved when the render starts and kept only for a finished render (a failed one gives it back). For generate_video TASK status use get_video_status instead.
search_designs
ChatGPTSearch designs by title or content within the active team. Requires a non-empty search term — use list_designs to browse without a filter.
search_stock_photos
ChatGPTSearch stock photos across Unsplash, Pexels, and Pixabay simultaneously. Returns results from each provider plus any per-provider errors. The service exposes search-only — no list/browse.
search_tools
ChatGPTSearch and filter the available MCP tool catalog by free-text query, category, or intent. Useful when you want to narrow to the tools relevant to the current task without scanning every description. Returns categories, requiresScope, one-line descriptions, and the use-case tags that matched. Free for all plans (discovery surface).
set_current_team
ChatGPTSwitch the active team for this Bearer token. The user must be a member of the target team. Membership is verified via verifyMembership() before any state is written. Takes effect immediately for subsequent tool calls in this session, and persists across sessions when authenticated via OAuth.
set_default_brand_profile
ChatGPTMake a brand profile the active team's default: the one update_brand_profile edits and the app uses by default. No AI credit cost.
skin_retouch
ChatGPTProfessional AI skin retouching on a portrait: smooth skin, remove blemishes, brighten eyes, etc., preserving pose/composition/background. Pass preset:"enhance" for the Skin Enhancer (fix plastic AI skin — add realistic texture/pores). Cost = image model per-image credits. Requires available AI credits. Pass clientRequestId for safe retries within 30 minutes.
spotlight
ChatGPTRelight a photo with AI studio lighting (direction, type, brightness, colour). Cost = image model per-image credits. Requires available AI credits. Pass clientRequestId for safe retries within 30 minutes.
styled_scene
ChatGPTGenerate a styled fashion video scene (city/season/time-of-day) from an image. Async — poll get_video_status. Requires available AI credits.
update_brand_profile
ChatGPTPatch the team's default brand profile — voice, themes, content goals/types, niche, industry. Useful when the user wants to refine their brand based on a transcript, style guide, or competitor analysis. It edits the default profile (change which with set_default_brand_profile; create one with create_brand_profile). No AI credit cost — the service-layer allow-list is the security boundary.
update_pipeline
ChatGPTUpdate an existing pipeline / workflow canvas in place (edit "this workflow"). Provide its id plus any of name / nodes / edges — omitted fields keep their current value. The version is bumped automatically (optimistic concurrency). Does not run the graph — use run_pipeline.
upload_asset
ChatGPTAdd an image or video from the user's device to their DesignerBox asset library. Calling this opens an in-chat file picker (a UI panel) — the user chooses a file, it uploads directly to their library, and its URL is handed back for use as the imageUrl / sourceImageUrl in apply_image_template, edit_image or generate_design. No arguments; do NOT ask the user to paste a URL or base64 — just call this and the panel appears. If the user's attached image can be passed to import_chat_image as a file input (a file object with a download_url), use import_chat_image instead. Requires available storage; images/videos up to 50MB (JPEG, PNG, WebP, GIF, MP4, WebM).
virtual_try_on
ChatGPTVirtual clothing try-on: put a garment from one photo onto a person in another photo, keeping the person's face, identity, body, pose and background intact. Cost = the image model per-image credit cost. Requires available AI credits. Pass clientRequestId for safe retries within 30 minutes.