protogrid

Search / ai.uwear/uwear

Uwear

R0· no sign-in

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

v1.0.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality75good
Trust80of 100
Uptime, 30 days100%
Latency p50280 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "uwear": {
      "type": "http",
      "url": "https://api.uwear.ai/mcp"
    }
  }
}
claude mcp add --transport http uwear https://api.uwear.ai/mcp
[mcp_servers.uwear]
url = "https://api.uwear.ai/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "uwear": {
      "type": "remote",
      "url": "https://api.uwear.ai/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "uwear": {
      "type": "http",
      "url": "https://api.uwear.ai/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=uwear&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLnV3ZWFyLmFpL21jcCJ9"
}
{
  "servers": {
    "uwear": {
      "type": "http",
      "url": "https://api.uwear.ai/mcp"
    }
  }
}
{
  "mcpServers": {
    "uwear": {
      "httpUrl": "https://api.uwear.ai/mcp"
    }
  }
}
extensions:
  "uwear":
    enabled: true
    name: "uwear"
    type: streamable_http
    uri: "https://api.uwear.ai/mcp"
    timeout: 300

Quality 75 / 100good

protocol100 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • pass
    protocol.list_ttltool list is cacheable (ttlMs 300000)
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length2 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations70 of 70 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • fail
    tools.token_costabout 30,551 tokens to load every tool, a large share of an agent's context
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes94 tool changes in 30 days
  • fail
    stability.rug_pull10 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

70 tools, about 30,551 tokens to load them all · tool set 570a9c59c01f · tools last changed 2026-10-12 · checked 2026-10-20 22:23 UTC

Tool changes

  • mcp_edit_briefchangedinput schema
  • update_briefchangedinput schema
  • propose_briefchangedinput schema
  • get_connection_identityremoved

    Return the profile ID and active company ID used by this authenticated MCP connection. Use this before a paid operation when a release or audit must prove the connection is scoped to the intended Uwear account.

  • save_templateremoved

    Create a canonical company template, or replace one by passing template_id with expected_revision. Send typed GenerationCommand objects; updates are complete replacements. This persists the template and does not generate images. Templates are single-generation presets. Use Production Workflows in the Automation workspace for reusable multi-step generation. Legacy batch Templates are read-only history and cannot be created, edited, or imported.

  • estimate_costremoved

    Estimate credit cost for an operation.

  • get_locationremoved

    Get a reusable location/scene reference by ID.

  • create_art_directionremoved

    Create a company ArtDirection markdown document. Use author_art_direction first when the user provides rough creative text or reference images. Use this direct writer only for already-structured markdown that follows the Variation Controls parser contract.

  • create_avatar_from_referencesremoved

    Create one reusable avatar/model from an ordered set of generated avatar views, owned workspace files, and public image URLs. Each reference fills one durable slot. Traits are optional user-provided facts and are never inferred.

  • copy_template_to_generate_node_configremoved

    Copy one generation-preset Template into a contract-typed, detached Production Workflow Generate-node config. The result does not update a Workflow and carries no live Template dependency; insert it through the canonical workflow version authoring tools.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 80 / 100

no-repository
provenance55
liveness100
freshness85
hygiene80

+dns-namespace +website +reachable +uptime-100% ~updated-80d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.uwear.ai/mcp streamable-httpnoneyes100%280 ms2026-07-28, 2025-11-25, 2025-06-18, 2025-03-262026-10-20

Tools (70)

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. 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.
confirm_briefdestructiveGenerate 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.
create_locationCreate 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.
create_tagCreate a new tag for organizing assets (garments, models, outfits, files, results, locations). Requires an active company workspace.
get_art_directionread-onlyGet a selectable ArtDirection by ID.
get_briefRead one of the account's Shoot Board briefs by brief_id: its looks, automations, credit quote and status. Changes nothing.
get_generation_resultsread-onlyLook 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'.
get_generation_statusread-onlyCheck 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.
get_user_creditsread-onlyGet user's current credit balance.
list_art_directionsread-onlyList 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.
list_avatarsread-onlyList 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.
list_garmentsread-onlyList 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.
list_locationsread-onlyList 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.
list_outfitsread-onlyList user's outfits (saved garment combinations). Filter by garment IDs, active status, date range, or query against contained garments.
list_tagsread-onlyList 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.
list_templatesread-onlyList 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.
mcp_add_contextAppend items to the Uwear Shoot Board.
mcp_add_garment_viewdestructiveA 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.
mcp_brief_listread-onlyThe 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.
mcp_brief_runsread-onlyEvery 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.
mcp_clear_contextdestructiveClear all Shoot Board items, or only one context type.
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 board that changed is refused before anything is saved (revision_conflict with the current board).
mcp_delete_generation_resultsdestructiveDelete 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.
mcp_edit_briefEdit 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.
mcp_export_montagedestructiveExport 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.
mcp_extract_video_frameSave 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.
mcp_generate_clipdestructiveQueue 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.
mcp_get_contextread-onlyRead the Uwear Shoot Board.
mcp_intake_filesread-onlySort 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.
mcp_list_filesread-onlyList uploaded (reference) files for the Uwear MCP workspace files tab and the Shoot Board's References tab.
mcp_list_model_catalogread-onlyThe active AI models with their capabilities and pricing rules, as GET /models returns them, for the widget's model pickers.
mcp_read_generationread-onlyOne generation with its results as GET /generation/{id} returns it (prompt, model, settings, inputs), for the result viewer's Info panel.
mcp_read_generation_resultread-onlyOne generation result as GET /generation-result/{id} returns it (tags, review verdict, QA, prompt, model), for the widget's result viewer.
mcp_recipe_copyCopy an automation as a new automation for this shoot.
mcp_recipe_historyread-onlyAn 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.
mcp_recipe_listread-onlyThe company's shoot automations (and other automations to copy).
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-only.
mcp_recipe_preflightread-onlyValidate and price the automation being edited.
mcp_recipe_save_draftdestructiveSave the automation's draft.
mcp_reclassify_board_itemdestructiveMove 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").
mcp_replace_contextdestructiveReplace the Uwear Shoot Board items.
mcp_review_generation_resultsdestructiveThe 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.
mcp_save_retouchSave an edited image (image_base64) as a new child result of parent_generation_result_id. Changes no existing result.
mcp_set_generation_result_tagsdestructiveReplace 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.
mcp_update_tagdestructiveRename or recolor one of the company's tags, as PATCH /tag/{id}. The result viewer's tag tray.
mcp_upload_intake_photoStore 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.
mcp_workflow_assetsread-onlyThe automation builder reads library items (Clothing, Models, Locations, ...) of one kind by id to show them on its cards. Read-only.
mcp_workflow_camerasread-onlyThe camera views (front, side, back, crops) a shot or camera edit can use, for the automation builder. Read-only.
mcp_workflow_contractread-onlyThe automation format (step kinds and their settings) the automation builder edits against. Read-only.
mcp_workflow_galleryread-onlyThe automation builder's picker: one page of the user's library items of one kind, filtered by search text, tags or category. Read-only.
mcp_workflow_garment_categoriesread-onlyThe garment categories, for the automation builder's category filters. Read-only.
mcp_workflow_tagsread-onlyThe account's tags, for the automation builder's tag filters. Read-only.
modify_shoot_boarddestructiveUse 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.
propose_briefUse 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.
propose_montageONLY 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.
queue_generation_result_qadestructiveDefault 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.
read_generation_result_qaread-onlyRead 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.
read_shoot_boardread-onlyUse 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.
request_user_contextUse 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.
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 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.
save_reference_file_from_chat_fileBatch 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.
search_uwear_libraryread-onlyUse 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.
set_generation_result_favoritedestructiveThe 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.
show_in_shoot_boardMoves 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.
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. 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.
update_montage_proposalPatch 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.
upload_avatar_from_chat_fileBatch 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.
upload_garment_from_public_urlUpload 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.
uwear_settings_readread-onlyRead the user's saved photoshoot defaults (aspect ratio, camera, resolution) with every allowed value. Backs the plugin settings page.
uwear_settings_updatedestructiveSave changed photoshoot defaults (aspect ratio, camera, resolution). Send only the settings that changed; returns every current value. Defaults never authorize a paid generation.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "ai.uwear/uwear",
  "icons": [
    {
      "src": "https://uwear.ai/icon-512.png",
      "sizes": [
        "512x512"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "Uwear",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.uwear.ai/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://uwear.ai/mcp",
  "description": "AI photoshoot studio: garments, avatars, locations, and art direction"
}