Skip to content

Uwear

by uwear.ai · remote · no sign-in to list tools · v1.0.0 · published by ai.uwear

AI photoshoot studio: garments, avatars, locations, and art direction

Deletes · 16Changes · 31

70 tools: 16 can delete or cancel things, 31 change things and 23 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http uwear https://api.uwear.ai/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "get_brief" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_brief" says "get": a word for reading.

    What this check looks for
  • The server marks "mcp_brief_runs" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "mcp_brief_runs" says "run": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

70 tools

Deletes or cancels 16Claude Code: deny
  • confirm_briefGenerate a Shoot Board brief: publishes its automation drafts, then starts one workflow run per look, charged per run.No findings

    Why it is in this group

    • The description's first verb is "generate": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Generate a Shoot Board brief: publishes its automation drafts, then starts one workflow run per look, charged per run. Spends credits: call it only after the user has seen the brief's looks and credit quote (get_brief) and agreed in chat. Pass the board's brief_revision (read_shoot_board) as expected_brief_revision and a fresh idempotency_key; the same idempotency_key never publishes, runs or charges twice. Follow the runs with mcp_brief_runs.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
    • title: Generate Brief
  • mcp_add_garment_viewA Clothing card dropped on another.No findings

    Why it is in this group

    • The name "mcp_add_garment_view" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    A Clothing card dropped on another. The photo of from_garment_id becomes the back, side or detail view of garment_id, and from_garment_id leaves the board (deleted only when it is a fresh drop nothing else uses). Or a photo put in the brief's missing-photo slot: image_url instead of from_garment_id, nothing leaves the board. The board's draft brief is saved again when the view changes it. Returns the board (and brief); asking again answers status unchanged.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • mcp_clear_contextClear all Shoot Board items, or only one context type.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Clear all Shoot Board items, or only one context type.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • mcp_delete_generation_resultsDelete the user's results and their stored images, as the platform's Delete.No findings

    Why it is in this group

    • The name "mcp_delete_generation_results" says "delete": a word for removing or ending something.
    • The description says "Cannot be undone".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete the user's results and their stored images, as the platform's Delete. Cannot be undone: call it only after the user confirmed in chat which results to delete.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
    • title: Delete Results
  • mcp_export_montageExport montage clips as one stitched video.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Export montage clips as one stitched video. Spends credits: call it only after the user confirmed the clips and their order in chat. Returns the generation_id to poll with get_generation_status.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
    • title: Export Montage Video
  • mcp_generate_clipQueue an image-to-video generation for one montage clip.No findings

    Why it is in this group

    • The name "mcp_generate_clip" says "generate": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Queue an image-to-video generation for one montage clip. Spends credits: call it only after the user agreed in chat. Returns the generation_id to poll with get_generation_status.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
    • title: Generate Montage Clip
  • mcp_recipe_save_draftSave the automation's draft.No findings

    Why it is in this group

    • The name "mcp_recipe_save_draft" says "save": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Save the automation's draft.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • mcp_reclassify_board_itemMove a Shoot Board photo between the Clothing, Models and Locations piles.No findings

    Why it is in this group

    • The description's first verb is "move": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Move a Shoot Board photo between the Clothing, Models and Locations piles. Saves the same image as the new kind and swaps it on the board; the old asset is deleted only if intake saved it in the last 24 hours and nothing uses it, otherwise it stays in the library. Asking for a move that already happened changes nothing and returns the board (status "unchanged").

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • mcp_replace_contextReplace the Uwear Shoot Board items.No findings

    Why it is in this group

    • The name "mcp_replace_context" says "replace": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Replace the Uwear Shoot Board items.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • mcp_review_generation_resultsThe result viewer's review rail.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    The result viewer's review rail. Sets the user's verdict on their own results to approved or rejected, or clears it (decision null), replacing any verdict they had; deletes nothing and spends no credits.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • mcp_set_generation_result_tagsReplace a result's tags with tag_ids (empty removes all), as PUT /generation-result/{id}/tags.No findings

    Why it is in this group

    • The name "mcp_set_generation_result_tags" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Replace a result's tags with tag_ids (empty removes all), as PUT /generation-result/{id}/tags. The result viewer's tag tray. A tag that starts one of the user's automations starts it, as on the platform.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • mcp_update_tagRename or recolor one of the company's tags, as PATCH /tag/{id}.No findings

    Why it is in this group

    • The name "mcp_update_tag" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Rename or recolor one of the company's tags, as PATCH /tag/{id}. The result viewer's tag tray.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • modify_shoot_boardUse this when the user asks in chat to change what is on the open Shoot Board.No findings

    Why it is in this group

    • The name "modify_shoot_board" says "modify": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use this when the user asks in chat to change what is on the open Shoot Board. add puts items on it; set replaces the whole item list (to remove items, send the ones to keep); clear empties one type, or without type starts a new shoot on the same board (its brief is unlinked; photos stay in the library); add_as_view makes from_garment_id's photo the back, side or detail view of garment_id and takes from_garment_id off the board, only after the user agrees the two show one garment. Items are {type, id} from search_uwear_library or read_shoot_board. To reuse an automation, add {type: automations, id: a workflow_id from brief_inputs.automations}: the board pins one and the next brief runs every look through it. Pass expected_revision from read_shoot_board; on revision_conflict, apply the change to the returned board once.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
    • title: Change Shoot Board
  • queue_generation_result_qaDefault tool for generation-result QA.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Default tool for generation-result QA. Use this whenever the user asks to QA, quality check, validate, review, inspect for defects, approve/reject, or assess already-created generation results. Do not substitute view_image for QA unless the user explicitly asks for a manual visual critique instead of the official Uwear QA pipeline. First identify the numeric generation_result_ids, then call this tool, then call read_generation_result_qa for the same IDs. Queued or requeued QA costs 1 credit per generation result; already-completed QA rows are not charged again. QA is built for scale — validating large batches (hundreds or thousands of results). When the user is iterating on a handful of results one by one, do not queue QA on your own initiative; run it when the user asks for it or when operating at batch scale.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
    • title: Run QA on Results
  • set_generation_result_favoriteThe result viewer's star.No findings

    Why it is in this group

    • The name "set_generation_result_favorite" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    The result viewer's star. Marks one of the user's own generation results as a favorite (favorite true) or removes the mark (false); deletes nothing and spends no credits.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
    • title: Favorite Result
  • uwear_settings_updateSave changed photoshoot defaults (aspect ratio, camera, resolution).No findings

    Why it is in this group

    • The name "uwear_settings_update" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Save changed photoshoot defaults (aspect ratio, camera, resolution). Send only the settings that changed; returns every current value. Defaults never authorize a paid generation.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
Changes things 31Claude Code: ask
  • add_chat_photos_to_boardUse this when the user attaches images in this chat and wants them in Uwear, on the Shoot Board or in a shoot: clothing, a Model, a Location or a reference.No findings

    Why it is in this group

    • The name "add_chat_photos_to_board" says "add": a word for a change.
    Description, as the server wrote it
    Use this when the user attaches images in this chat and wants them in Uwear, on the Shoot Board or in a shoot: clothing, a Model, a Location or a reference. Put each attachment in its own field, image_file_1, image_file_2, ... in attachment order, as the chat provides it: ChatGPT passes the file itself, also when you see only a file name or path. Chat attachments only: a web address is refused (ask the user to attach that photo). kinds: {image_file_N: garment|avatar|location|reference} for photos whose kind the user said or is clear (avatar: a person to use as a Model); Uwear sorts the rest. Saves each photo to the library (a repeat is reused), adds it to the board and returns its pile and asset id for propose_brief / update_brief. A photo returned unsure lists two candidates: ask the user and call again with the same files and kinds.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Add Chat Photos to Board
  • create_locationCreate a reusable location/scene reference from an image URL.No findings

    Why it is in this group

    • The name "create_location" says "create": a word for a change.
    Description, as the server wrote it
    Create a reusable location/scene reference from an image URL. If no description is supplied, the backend analyzes the image. Use the returned location_id in propose_brief/update_brief.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Create Location
  • create_tagCreate a new tag for organizing assets (garments, models, outfits, files, results, locations).No findings

    Why it is in this group

    • The name "create_tag" says "create": a word for a change.
    Description, as the server wrote it
    Create a new tag for organizing assets (garments, models, outfits, files, results, locations). Requires an active company workspace.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Create Tag
  • get_briefRead one of the account's Shoot Board briefs by brief_id: its looks, automations, credit quote and status.1 finding

    Why it is in this group

    • The name "get_brief" says "get": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "get_brief" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_brief" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Read one of the account's Shoot Board briefs by brief_id: its looks, automations, credit quote and status. Changes nothing.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Read Brief
  • mcp_add_contextAppend items to the Uwear Shoot Board.No findings

    Why it is in this group

    • The name "mcp_add_context" says "add": a word for a change.
    Description, as the server wrote it
    Append items to the Uwear Shoot Board.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • mcp_brief_runsEvery look's run of a generating brief (brief_id), or runs by id (workflow_run_ids, each with the look its cards held): status, results by step, credits.1 finding

    Why it is in this group

    • The name "mcp_brief_runs" says "run": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "mcp_brief_runs" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "mcp_brief_runs" says "run": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Every look's run of a generating brief (brief_id), or runs by id (workflow_run_ids, each with the look its cards held): status, results by step, credits.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_commit_intakeSave sorted Shoot Board photos to the library as garments, avatars, locations or reference files, skip ones already saved, and add them to the Shoot Board at expected_revision; a b…No findings

    Why it is in this group

    • The name "mcp_commit_intake" says "commit": a word for a change.
    Description, as the server wrote it
    Save sorted Shoot Board photos to the library as garments, avatars, locations or reference files, skip ones already saved, and add them to the Shoot Board at expected_revision; a board that changed is refused before anything is saved (revision_conflict with the current board).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • mcp_edit_briefEdit the Shoot Board's brief by hand: add, remove or change looks, or run looks through another automation.No findings

    Why it is in this group

    • The name "mcp_edit_brief" says "edit": a word for a change.
    Description, as the server wrote it
    Edit the Shoot Board's brief by hand: add, remove or change looks, or run looks through another automation. Saves a new brief linked to the board and returns the board, the brief, its quote and the credit delta; dry_run only quotes.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • mcp_extract_video_frameSave a still frame of a video result as a new image result, as POST /generation-result/{id}/extract-frame.No findings

    Why it is in this group

    • The description's first verb is "save": a word for a change.
    Description, as the server wrote it
    Save a still frame of a video result as a new image result, as POST /generation-result/{id}/extract-frame. The result viewer's Save frame.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • mcp_intake_filesSort photos dropped on the Shoot Board into garment, avatar, location or reference (or unsure with two candidates) and report duplicates within the drop and in the library.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Sort photos dropped on the Shoot Board into garment, avatar, location or reference (or unsure with two candidates) and report duplicates within the drop and in the library. Saves nothing. A photo the call had no time left for comes back with error deferred: send it again.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • mcp_recipe_copyCopy an automation as a new automation for this shoot.No findings

    Why it is in this group

    • The name "mcp_recipe_copy" says "copy": a word for a change.
    Description, as the server wrote it
    Copy an automation as a new automation for this shoot.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • mcp_recipe_historyAn automation's past runs, newest first: one row per Shoot Board Generate (its looks) or per run started on Uwear, with when, how it went, credits and covers.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    An automation's past runs, newest first: one row per Shoot Board Generate (its looks) or per run started on Uwear, with when, how it went, credits and covers.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_recipe_openOpen the brief's automation in the builder: its draft, or once Generate published it its live version (saving an edit of it makes a new automation); another automation opens read-o…No findings

    Why it is in this group

    • The name "mcp_recipe_open" says "open": a word for a change.
    Description, as the server wrote it
    Open the brief's automation in the builder: its draft, or once Generate published it its live version (saving an edit of it makes a new automation); another automation opens read-only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • mcp_save_retouchSave an edited image (image_base64) as a new child result of parent_generation_result_id.No findings

    Why it is in this group

    • The name "mcp_save_retouch" says "save": a word for a change.
    Description, as the server wrote it
    Save an edited image (image_base64) as a new child result of parent_generation_result_id. Changes no existing result.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Save Retouched Image
  • mcp_upload_intake_photoStore one photo dropped on the Shoot Board, sent inline as base64, for a host that cannot upload files itself.No findings

    Why it is in this group

    • The name "mcp_upload_intake_photo" says "upload": a word for a change.
    Description, as the server wrote it
    Store one photo dropped on the Shoot Board, sent inline as base64, for a host that cannot upload files itself. Returns a receipt (sha256, size, stored, image_url, image_url_expires_at); pass image_url to mcp_intake_files and mcp_commit_intake. Without data, stores nothing and returns the receipt of the photo already stored under sha256 (a fresh image_url), or stored: false.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_workflow_assetsThe automation builder reads library items (Clothing, Models, Locations, ...) of one kind by id to show them on its cards.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The automation builder reads library items (Clothing, Models, Locations, ...) of one kind by id to show them on its cards. Read-only.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_workflow_camerasThe camera views (front, side, back, crops) a shot or camera edit can use, for the automation builder.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The camera views (front, side, back, crops) a shot or camera edit can use, for the automation builder. Read-only.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_workflow_contractThe automation format (step kinds and their settings) the automation builder edits against.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The automation format (step kinds and their settings) the automation builder edits against. Read-only.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_workflow_garment_categoriesThe garment categories, for the automation builder's category filters.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The garment categories, for the automation builder's category filters. Read-only.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_workflow_tagsThe account's tags, for the automation builder's tag filters.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The account's tags, for the automation builder's tag filters. Read-only.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • propose_briefUse this when the user describes a shoot.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Use this when the user describes a shoot. Saves a brief, the looks to shoot and the automation they run through, and links it to the board in place of the current one. Nothing runs or is charged: show the user the looks and the credit quote (get_brief), and generate with confirm_brief only after they agree. Read the board first with read_shoot_board and follow brief_inputs.guide. If the result lists problems, fix them all and call again.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Propose Brief
  • propose_montageONLY for video montage/stitching/export workflows.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    ONLY for video montage/stitching/export workflows. Use when the user explicitly asks to create a montage, stitch clips, make a reel, export a video sequence, make video clips from images, or combine images/videos into one final video. Never use this for a photoshoot, lookbook, product shoot, collection shoot, outfit shoot, garment shoot, or image-generation request; those must use request_user_context followed by propose_brief/update_brief. Do not call this merely because selected context contains images, generations, garments, or models. A photoshoot may later feed a montage, but the photoshoot itself must be proposed as a BriefProposal first. PROPOSES the montage for user review — user can edit clips, generate missing videos, then export. Supports: existing videos with optional trim (`target_duration` or `start_time`/`end_time`), images that need video generation (specify video_model + a bespoke per-image motion prompt, and optionally `target_duration` or `duration`), per-clip speed/mute, global aspect ratio. If the user asks for clips to be e.g. '3 seconds each', set `target_duration: 3` on every item, including image items. For image items, avoid generic repeated prompts: tailor each prompt to the specific image and any requested zoom, movement, energy, or camera direction. If motion is not specified, inspect the image first with view_image and then write a fitting motion prompt from the image content before proposing. The user reviews and confirms in the UI. Export is free (0 credits); video generation clips cost credits per their model.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Create Video Montage
  • request_user_contextUse this when the user wants a photoshoot and you have no board_id yet.No findings

    Why it is in this group

    • The name "request_user_context" says "request": a word for a change.
    Description, as the server wrote it
    Use this when the user wants a photoshoot and you have no board_id yet. Creates a new, empty Uwear Shoot Board and returns its board_id, which every other Shoot Board tool takes. This client shows no widget: build the shoot with tools (search_uwear_library, modify_shoot_board, propose_brief) and tell the user what is on the board. prompt: one line describing the shoot; expected_types: what it needs.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: New Shoot Board
  • save_art_directionUse this when the user asks to create, write or save an art direction, or the board's New art direction asks for one: write it from their words, the chat and the board, and save it…No findings

    Why it is in this group

    • The name "save_art_direction" says "save": a word for a change.
    Description, as the server wrote it
    Use this when the user asks to create, write or save an art direction, or the board's New art direction asks for one: write it from their words, the chat and the board, and save it in the same turn. Saves it to the library and makes it the board's one art direction, replacing the previous one (which stays in the library). Fill every section with concrete, photographable choices. It applies to every look, so it names no garment, outfit, Model or Location (text naming a board item is refused). If the board has a brief, apply it with update_brief art_direction_id. If the result lists problems, fix them all and call again.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Save Art Direction
  • save_reference_file_from_chat_fileBatch save reference images from chat attachments into the Files library.No findings

    Why it is in this group

    • The name "save_reference_file_from_chat_file" says "save": a word for a change.
    Description, as the server wrote it
    Batch save reference images from chat attachments into the Files library. Keep file metadata in files[] and pass top-level image_file_1, image_file_2, etc. in the same order. No base64, no local paths. Use for mood boards, backgrounds, and other reference images that are not Clothing or Models.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Save Reference Images
  • show_in_shoot_boardMoves a Shoot Board that is open in a widget to a view (board, brief, automation, results, brief_history).No findings

    Why it is in this group

    • The name "show_in_shoot_board" says "show": a word for reading.
    • The description's first verb is "move": a word for a change.
    Description, as the server wrote it
    Moves a Shoot Board that is open in a widget to a view (board, brief, automation, results, brief_history). This client shows no widget, so it changes nothing the user sees: read the board, brief or results with read_shoot_board, get_brief or get_generation_results and tell the user.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Show in Shoot Board
  • update_briefUse this when the user asks in chat to change the board's brief: its looks, Models, outfits, Locations, references, name, shots and steps, AI model or art direction.No findings

    Why it is in this group

    • The name "update_brief" says "update": a word for a change.
    Description, as the server wrote it
    Use this when the user asks in chat to change the board's brief: its looks, Models, outfits, Locations, references, name, shots and steps, AI model or art direction. Send the complete replacement look list with the brief_id it replaces, keeping each unchanged look's key. Shots or steps: recipe with the complete new shot list (recipe_look_keys for some looks only) or recipe_workflow_id. AI model only: image_model / video_model. Art direction only: art_direction_id. Saves the revised brief on the board; nothing runs. If the result lists problems, fix them all and call again; on revision_conflict, read the board and revise its current brief.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Revise Brief
  • update_montage_proposalPatch the latest MontageProposal already shown in the UI.No findings

    Why it is in this group

    • The name "update_montage_proposal" says "update": a word for a change.
    Description, as the server wrote it
    Patch the latest MontageProposal already shown in the UI. Use only for an existing video montage/reel/stitched sequence proposal; do not use this to modify a photoshoot brief. For photoshoot brief changes, call update_brief instead. Prefer `operations`, an ordered list of typed montage edits such as `clear_trim`, `remove`, `set_duration`, `set_trim_range`, `set_speed`, `set_muted`, `set_prompt`, `set_video_model`, `set_generate_audio`, `set_last_frame`, `set_aspect_ratio`, and `set_base_resolution`. Use `set_trim_range` for requests like 'use the second half', 'start at 3s', or 'trim from 3s to 6s'. Operations are applied in order to the current montage state. Legacy flat fields are still accepted as a compatibility shim. This updates the proposal only; it does not execute export or generation.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Update Video Montage
  • upload_avatar_from_chat_fileBatch upload reusable Models from person photos the user attached in chat.No findings

    Why it is in this group

    • The name "upload_avatar_from_chat_file" says "upload": a word for a change.
    Description, as the server wrote it
    Batch upload reusable Models from person photos the user attached in chat. Each photo becomes the upper_body_front identity anchor. Keep names and optional user-given age_range, build, and height_cm in avatars[], then pass top-level image_file_1, image_file_2, etc. in the same order. Traits are never guessed. No base64, no local paths. Do not use ordinary text-to-image results as an upload fallback. Use only when the user explicitly wants a specific or consistent person.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Upload Models from Chat
  • upload_garment_from_public_urlUpload Clothing from public HTTP(S) image URLs.No findings

    Why it is in this group

    • The name "upload_garment_from_public_url" says "upload": a word for a change.
    Description, as the server wrote it
    Upload Clothing from public HTTP(S) image URLs. Queues a recoverable batch upload and returns an operation immediately; retry with the exact same arguments to read its state (a retry creates no second upload). Photos are stored as uploaded, without background removal; processing_mode is ignored. Prefer assets with {asset_kind: full|detail, asset_view: front|back|side, asset_url}; exactly one full front is required, every full view is unique, and detail views can repeat. No base64, chat file objects, or local paths.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Upload Clothing from URL
Only reads 23Claude Code: allow
  • get_art_directionGet a selectable ArtDirection by ID.No findings

    Why it is in this group

    • The name "get_art_direction" says "get": a word for reading.
    Description, as the server wrote it
    Get a selectable ArtDirection by ID.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Get Art Direction
  • get_generation_resultsLook up generation results by exact IDs, filters, or hybrid image/name/SKU search.No findings

    Why it is in this group

    • The name "get_generation_results" says "get": a word for reading.
    Description, as the server wrote it
    Look up generation results by exact IDs, filters, or hybrid image/name/SKU search. Returns labeled native ImageContent previews; use them directly and never Markdown-embed result URLs. They are display previews, not originals: url/download_url are originals, preview_url is the fallback link, and poster_url/thumbnail_url is a video poster. Every result includes generation_result_id and the response includes generation_result_ids; use those exact integers for queue_generation_result_qa/read_generation_result_qa or as durable generation_result command.source values in canonical edit, upscale, and video commands. Confirmation-gated clients use propose_brief(commands=[...], execute_immediately=true) when the user asked to run now, update_brief for a complete command replacement, or confirm_brief(execute=true) for a visible brief. Pass generation_result_id to fetch one result or generation_id to list a job's results. Defaults to compact result metadata. Set include_snapshot=true to recover full settings, resource snapshots and prior prompts. Use start_date/end_date for requests like 'last week'.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Get Generation Results
  • get_generation_statusCheck generation job status.No findings

    Why it is in this group

    • The name "get_generation_status" says "get": a word for reading.
    Description, as the server wrote it
    Check generation job status. Completed results may include labeled native ImageContent previews; use them directly and never Markdown-embed result URLs. They are display previews, not originals: url/download_url are originals, preview_url is the fallback link, and poster_url/thumbnail_url is a video poster. Returns compact status, parent/child generation IDs, camera, avatar_id, model_id, model_slug, use_case, net credits_charged, credits_refunded, estimated_processing_seconds, and status_guidance. Failed jobs also return a safe error_message and error_type (user, transient, or provider). Set include_snapshot=true to recover full settings, resource snapshots and prior prompts. Status can remain Created while queued/preparing; avoid tight polling loops. UI 'Gemini Pro' maps to model_slug nano-banana-pro or nano_banana_pro_clothing.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Get Generation Status
  • get_user_creditsGet user's current credit balance.No findings

    Why it is in this group

    • The name "get_user_credits" says "get": a word for reading.
    Description, as the server wrote it
    Get user's current credit balance.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Get Credit Balance
  • list_art_directionsList selectable ArtDirections as compact summaries: visible system ArtDirections plus company ArtDirections.No findings

    Why it is in this group

    • The name "list_art_directions" says "list": a word for reading.
    Description, as the server wrote it
    List selectable ArtDirections as compact summaries: visible system ArtDirections plus company ArtDirections. Use query to match exact names and natural-language creative requests. Use this as the catalog step before choosing an art_direction_id for a brief; if there is no clear match, fall back to the user's phrase as prompt/creative_context. Use get_art_direction for the full markdown document before reusing one in a brief.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: List Art Directions
  • list_avatarsList the user's Models: the reusable people who wear the Clothing (not the AI models; for those, use mcp_list_model_catalog).No findings

    Why it is in this group

    • The name "list_avatars" says "list": a word for reading.
    Description, as the server wrote it
    List the user's Models: the reusable people who wear the Clothing (not the AI models; for those, use mcp_list_model_catalog). Supports structured filters or query for hybrid name/metadata/image-attribute search. Set include_image_url=true when the Model's image itself is needed.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: List Models
  • list_garmentsList user's garments with structured filters or query for hybrid name/SKU/metadata/image-attribute search.No findings

    Why it is in this group

    • The name "list_garments" says "list": a word for reading.
    Description, as the server wrote it
    List user's garments with structured filters or query for hybrid name/SKU/metadata/image-attribute search. body_zone expands to categories and is ORed with category when both are given. With a category or body_zone filter and include_uncategorized=false, uncategorized_count reports garments hidden by the category filter within the same scope. If matches are short and uncategorized_count > 0, call again with include_uncategorized=true and inspect those garments.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: List Garments
  • list_locationsList reusable location/scene reference images by structured filters or query: IDs, tags, date range, and sort.No findings

    Why it is in this group

    • The name "list_locations" says "list": a word for reading.
    Description, as the server wrote it
    List reusable location/scene reference images by structured filters or query: IDs, tags, date range, and sort. Use when the user wants to pick a saved background/location reference for a generation.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: List Locations
  • list_outfitsList user's outfits (saved garment combinations).No findings

    Why it is in this group

    • The name "list_outfits" says "list": a word for reading.
    Description, as the server wrote it
    List user's outfits (saved garment combinations). Filter by garment IDs, active status, date range, or query against contained garments.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: List Outfits
  • list_tagsList available tags for the user's company.No findings

    Why it is in this group

    • The name "list_tags" says "list": a word for reading.
    Description, as the server wrote it
    List available tags for the user's company. Use this to resolve user-provided tag names like 'summer26' before selecting garments, outfits, models, files, generations, or locations. For no-UI MCP flows, find the tag ID here, then call get_items_by_tag or the relevant list_* tool with tag_ids.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: List Tags
  • list_templatesList canonical company templates, optionally filtered by kind, scope, command use case, or public t-xxxx share code.No findings

    Why it is in this group

    • The name "list_templates" says "list": a word for reading.
    Description, as the server wrote it
    List canonical company templates, optionally filtered by kind, scope, command use case, or public t-xxxx share code. Templates persist canonical commands but do not execute generations. System templates named `Demo — …` are worked examples of the canonical command language; read one with `get_template` before authoring a first brief or workflow.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: List Templates
  • mcp_brief_listThe account's Shoot Board briefs, newest first: every brief that ran (on any Shoot Board) and this board's draft, each with its status, looks, automations, credits and covers.No findings

    Why it is in this group

    • The name "mcp_brief_list" says "list": a word for reading.
    Description, as the server wrote it
    The account's Shoot Board briefs, newest first: every brief that ran (on any Shoot Board) and this board's draft, each with its status, looks, automations, credits and covers.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_get_contextRead the Uwear Shoot Board.No findings

    Why it is in this group

    • The name "mcp_get_context" says "get": a word for reading.
    Description, as the server wrote it
    Read the Uwear Shoot Board.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_list_filesList uploaded (reference) files for the Uwear MCP workspace files tab and the Shoot Board's References tab.No findings

    Why it is in this group

    • The name "mcp_list_files" says "list": a word for reading.
    Description, as the server wrote it
    List uploaded (reference) files for the Uwear MCP workspace files tab and the Shoot Board's References tab.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_list_model_catalogThe active AI models with their capabilities and pricing rules, as GET /models returns them, for the widget's model pickers.No findings

    Why it is in this group

    • The name "mcp_list_model_catalog" says "list": a word for reading.
    Description, as the server wrote it
    The active AI models with their capabilities and pricing rules, as GET /models returns them, for the widget's model pickers.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_read_generationOne generation with its results as GET /generation/{id} returns it (prompt, model, settings, inputs), for the result viewer's Info panel.No findings

    Why it is in this group

    • The name "mcp_read_generation" says "read": a word for reading.
    Description, as the server wrote it
    One generation with its results as GET /generation/{id} returns it (prompt, model, settings, inputs), for the result viewer's Info panel.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_read_generation_resultOne generation result as GET /generation-result/{id} returns it (tags, review verdict, QA, prompt, model), for the widget's result viewer.No findings

    Why it is in this group

    • The name "mcp_read_generation_result" says "read": a word for reading.
    Description, as the server wrote it
    One generation result as GET /generation-result/{id} returns it (tags, review verdict, QA, prompt, model), for the widget's result viewer.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_recipe_listThe company's shoot automations (and other automations to copy).No findings

    Why it is in this group

    • The name "mcp_recipe_list" says "list": a word for reading.
    Description, as the server wrote it
    The company's shoot automations (and other automations to copy).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • mcp_recipe_preflightValidate and price the automation being edited.No findings

    Why it is in this group

    • The description's first verb is "validate": a word for reading.
    Description, as the server wrote it
    Validate and price the automation being edited.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • read_generation_result_qaRead official Uwear QA status, decision, and structured QA JSON for existing generation results.No findings

    Why it is in this group

    • The name "read_generation_result_qa" says "read": a word for reading.
    Description, as the server wrote it
    Read official Uwear QA status, decision, and structured QA JSON for existing generation results. Call this after queue_generation_result_qa when the user asks to QA/check/validate/review generated outputs; summarize the structured decision and issues, not a manual view_image opinion.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Read QA Results
  • read_shoot_boardUse this before modify_shoot_board, propose_brief or update_brief: the user changes the board in the widget at any time.No findings

    Why it is in this group

    • The name "read_shoot_board" says "read": a word for reading.
    Description, as the server wrote it
    Use this before modify_shoot_board, propose_brief or update_brief: the user changes the board in the widget at any time. Returns the board's items (Clothing, Models, Outfits, Locations, art directions, files, results) with ids and names, its revision, its linked brief_id, and brief_inputs: the guide, asset facts, automations, cameras, AI models and limits a brief is written from. Changes nothing.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Read Shoot Board
  • search_uwear_libraryUse this when the user names Clothing, Models, Locations, art directions, files or past results in chat and you need their ids.No findings

    Why it is in this group

    • The name "search_uwear_library" says "search": a word for reading.
    Description, as the server wrote it
    Use this when the user names Clothing, Models, Locations, art directions, files or past results in chat and you need their ids. Takes a short keyword query (2-5 words, or an exact name, SKU or id) and returns typed ids, names and thumbnails. It finds items; it does not recommend them. Changes nothing.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Search Library
  • uwear_settings_readRead the user's saved photoshoot defaults (aspect ratio, camera, resolution) with every allowed value.No findings

    Why it is in this group

    • The name "uwear_settings_read" says "read": a word for reading.
    Description, as the server wrote it
    Read the user's saved photoshoot defaults (aspect ratio, camera, resolution) with every allowed value. Backs the plugin settings page.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http uwear https://api.uwear.ai/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__uwear__read_shoot_board",
      "mcp__uwear__search_uwear_library",
      "mcp__uwear__list_garments",
      "mcp__uwear__list_avatars",
      "mcp__uwear__list_outfits",
      "mcp__uwear__list_locations",
      "mcp__uwear__get_generation_status",
      "mcp__uwear__get_generation_results",
      "mcp__uwear__read_generation_result_qa",
      "mcp__uwear__get_user_credits",
      "mcp__uwear__list_tags",
      "mcp__uwear__list_art_directions",
      "mcp__uwear__get_art_direction",
      "mcp__uwear__list_templates",
      "mcp__uwear__mcp_get_context",
      "mcp__uwear__mcp_list_files",
      "mcp__uwear__mcp_brief_list",
      "mcp__uwear__mcp_recipe_list",
      "mcp__uwear__mcp_recipe_preflight",
      "mcp__uwear__mcp_read_generation_result",
      "mcp__uwear__mcp_read_generation",
      "mcp__uwear__mcp_list_model_catalog",
      "mcp__uwear__uwear_settings_read"
    ],
    "ask": [
      "mcp__uwear__request_user_context",
      "mcp__uwear__show_in_shoot_board",
      "mcp__uwear__add_chat_photos_to_board",
      "mcp__uwear__save_art_direction",
      "mcp__uwear__propose_brief",
      "mcp__uwear__update_brief",
      "mcp__uwear__upload_garment_from_public_url",
      "mcp__uwear__upload_avatar_from_chat_file",
      "mcp__uwear__create_location",
      "mcp__uwear__create_tag",
      "mcp__uwear__propose_montage",
      "mcp__uwear__update_montage_proposal",
      "mcp__uwear__save_reference_file_from_chat_file",
      "mcp__uwear__mcp_add_context",
      "mcp__uwear__mcp_save_retouch",
      "mcp__uwear__mcp_intake_files",
      "mcp__uwear__mcp_commit_intake",
      "mcp__uwear__mcp_upload_intake_photo",
      "mcp__uwear__mcp_edit_brief",
      "mcp__uwear__get_brief",
      "mcp__uwear__mcp_brief_runs",
      "mcp__uwear__mcp_recipe_history",
      "mcp__uwear__mcp_recipe_open",
      "mcp__uwear__mcp_recipe_copy",
      "mcp__uwear__mcp_workflow_assets",
      "mcp__uwear__mcp_workflow_gallery",
      "mcp__uwear__mcp_workflow_tags",
      "mcp__uwear__mcp_workflow_garment_categories",
      "mcp__uwear__mcp_workflow_cameras",
      "mcp__uwear__mcp_workflow_contract",
      "mcp__uwear__mcp_extract_video_frame"
    ],
    "deny": [
      "mcp__uwear__modify_shoot_board",
      "mcp__uwear__queue_generation_result_qa",
      "mcp__uwear__set_generation_result_favorite",
      "mcp__uwear__mcp_replace_context",
      "mcp__uwear__mcp_clear_context",
      "mcp__uwear__mcp_export_montage",
      "mcp__uwear__mcp_generate_clip",
      "mcp__uwear__mcp_reclassify_board_item",
      "mcp__uwear__mcp_add_garment_view",
      "mcp__uwear__confirm_brief",
      "mcp__uwear__mcp_recipe_save_draft",
      "mcp__uwear__mcp_review_generation_results",
      "mcp__uwear__mcp_set_generation_result_tags",
      "mcp__uwear__mcp_update_tag",
      "mcp__uwear__mcp_delete_generation_results",
      "mcp__uwear__uwear_settings_update"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as uwear. Review it before you use it.