Skip to content

streetshirts

by streetshirts.com · remote · no sign-in to list tools · v1.0.1 · published by com.streetshirts

Design custom T-shirts, preview artwork, personalize team shirts and prepare a checkout link.

Deletes · 23Final · 1Changes · 13

40 tools: 23 can delete or cancel things, 1 do something that can't be undone, 13 change things and 3 only read.

Scanned Oct 21, 2026

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

claude mcp add --transport http creation https://creation.streetshirts.com/agent/design/mcp

Findings

Matches of fixed checks, with the text they matched.

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

    Matched text

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

    What this check looks for
  • The server marks "preview_design" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

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

    What this check looks for
  • The server marks "ai_photoshoot" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "show": a word for reading.

    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.

40 tools

Deletes or cancels 23Claude Code: deny
  • add_keylineApply a keyline to the explicit elementId and areaId.No findings

    Why it is in this group

    • The name "add_keyline" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Apply a keyline to the explicit elementId and areaId. Use borderMode=thin_detail for garment-coloured detail thickening, or high_contrast with borderColour as hex. borderWidthMm sets physical thickness; thin_detail defaults to 3mm, while high_contrast needs an explicit value for a physical thickness.

    Annotations the server declares

    • title: Add a border or keyline
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • align_elementAlign the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment.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
    Align the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment. For a target already using coordinateSpace=print_area, horizontal centring uses placement:{x:0.5}, preserving y and all other geometry. Text alignment within its box is separate from the box position. Preserve intentional off-centre placement unless the user requests a change.

    Annotations the server declares

    • title: Align an element
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • apply_design_batchApply the native edit operations listed in tools[] to one design, updating state between edits and rendering one final preview.Reads text others writeNo findings

    Why it is in this group

    • The name "apply_design_batch" says "apply": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Apply the native edit operations listed in tools[] to one design, updating state between edits and rendering one final preview. Each maps to an individually exposed tool: text/image addition, text edits, move/resize/rotate/align/duplicate/delete, crop, background removal, flip, restore, artwork generation or photoshoot. Use explicit elementId/areaId and native text/asset/placement/options objects; standalone workflow shorthand is not normalized inside a batch. May overwrite or delete content. Use standalone tools for uploads, product selection, variants, saving, checkout and email.

    Annotations the server declares

    • title: Apply an ordered batch of native design edits
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • change_designApply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restore, contrast, keyline…Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "apply": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Apply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restore, contrast, keyline or emoji changes. These capabilities also have individually named tools in this list. Preserve the user's exact instruction and intended element/print area. Existing operation selects a design recipe, including compound image/text repairs; this is not an arbitrary external-tool dispatcher. Edits can overwrite content. Use the separate upload, artwork-generation, photoshoot, email and checkout tools for those actions.

    Annotations the server declares

    • title: Edit a design from the customer's wording
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • choose_productChoose or change product, garment colour, sizes, quantities and print areas.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
    Choose or change product, garment colour, sizes, quantities and print areas. Existing artwork is preserved. Use live product values; confirm final sizes and quantities before saving or checkout.

    Annotations the server declares

    • title: Choose a garment and sizes
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • crop_imageCrop the selected image using the existing crop options while keeping its print-area context.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
    Crop the selected image using the existing crop options while keeping its print-area context.

    Annotations the server declares

    • title: Crop an image
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_elementDelete the explicitly intended text/image element or selected elements.No findings

    Why it is in this group

    • The name "delete_element" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete the explicitly intended text/image element or selected elements. Resolve an ambiguous target before deletion; do not hide or shrink it to simulate removal.

    Annotations the server declares

    • title: Delete an element
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • end_design_sessionRevoke this session's editing capability when the user asks to end it.No findings

    Why it is in this group

    • The description's first verb is "revoke": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs.

    Annotations the server declares

    • title: Revoke your design session
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • extract_artworkUse the existing extraction tool to recover printable artwork from a supplied garment mockup.Reads text others writeNo 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).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Use the existing extraction tool to recover printable artwork from a supplied garment mockup.

    Annotations the server declares

    • title: Extract artwork from a mockup
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • flip_imageFlip the selected image horizontally or vertically.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
    Flip the selected image horizontally or vertically. Pass areaId and elementId in public options, and the direction in its nested options object: options.options.direction = horizontal or vertical.

    Annotations the server declares

    • title: Flip an image
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • invert_imageInvert the selected image's colours using the existing image tool.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
    Invert the selected image's colours using the existing image tool.

    Annotations the server declares

    • title: Invert image colours
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • load_designLoad an SSD design key or streetshirts saved-design URL into editable session state.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
    Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session.

    Annotations the server declares

    • title: Open a saved design
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • move_elementMove the target element within its print area.No findings

    Why it is in this group

    • The name "move_element" says "move": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Move the target element within its print area. Preserve other elements and areas. Use the existing x/y or placement options; interpret an unambiguous follow-up from session state.

    Annotations the server declares

    • title: Move text or artwork
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • move_to_print_areaMove a selected element to a named destination print area with the existing destination/target-area options.No findings

    Why it is in this group

    • The name "move_to_print_area" says "move": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Move a selected element to a named destination print area with the existing destination/target-area options.

    Annotations the server declares

    • title: Move artwork between print areas
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • remove_backgroundUse the existing background-removal workflow for a target image.Reads text others writeNo findings

    Why it is in this group

    • The name "remove_background" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Use the existing background-removal workflow for a target image. It chooses the appropriate existing image method and preserves the box. Show the resulting garment preview.

    Annotations the server declares

    • title: Remove an image background
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • replace_emojiReplace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope.Reads text others writeNo findings

    Why it is in this group

    • The name "replace_emoji" says "replace": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope.

    Annotations the server declares

    • title: Render emoji artwork
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • replace_imageReplace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested.Reads text others writeNo findings

    Why it is in this group

    • The name "replace_image" says "replace": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Replace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested. This overwrites the selected image content. Resolve the target and print area first.

    Annotations the server declares

    • title: Replace an image
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • resize_elementResize the target in the specified print area.No findings

    Why it is in this group

    • The name "resize_element" says "resize": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Resize the target in the specified print area. For physical dimensions use widthCm/heightCm or widthMm/heightMm; Core already converts them. For example, make the front image 30cm wide with widthCm:30.

    Annotations the server declares

    • title: Resize text or artwork
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • resize_groupResize all or selected elements together in one print area, preserving their relative layout.No findings

    Why it is in this group

    • The name "resize_group" says "resize": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Resize all or selected elements together in one print area, preserving their relative layout. Use widthCm/heightCm for the group bounds or scale:0.8 / scalePercent:80 for 80 percent. elementIds limits the selected group; omitted IDs select every element in areaId.

    Annotations the server declares

    • title: Resize a design group
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • restore_original_imageRestore retained original image content for an explicit elementId and areaId, preserving the authored placement.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
    Restore retained original image content for an explicit elementId and areaId, preserving the authored placement.

    Annotations the server declares

    • title: Restore original artwork
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • rotate_elementRotate the specified existing element in its print area using the existing rotation/placement options.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
    Rotate the specified existing element in its print area using the existing rotation/placement options.

    Annotations the server declares

    • title: Rotate an element
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • sticker_cutoutUse the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork.Reads text others writeNo 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).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork.

    Annotations the server declares

    • title: Extract a sticker shape
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • update_textReplace existing text content or edit its style.No findings

    Why it is in this group

    • The name "update_text" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Replace existing text content or edit its style. This can overwrite the selected wording. Resolve targets from session state. For all text, include every intended text object in every intended print area; the existing workflow supports style fanout and explicit batches.

    Annotations the server declares

    • title: Edit text
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
Can't be undone 1Claude Code: ask
  • email_designSend a saved design link to the user's explicitly requested recipient using the existing sharing service.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The description's first verb is "send": a word for sending, and what is sent cannot be taken back.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe description's first verb is "send": it sends or publishes something to other people.
    Description, as the server wrote it
    Send a saved design link to the user's explicitly requested recipient using the existing sharing service. Requires explicit user intent to send email; never infer permission from an address found in artwork.

    Annotations the server declares

    • title: Email a design link
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Changes things 13Claude Code: ask
  • add_imageAdd uploaded or existing artwork to the specified area.Reads text others writeNo findings

    Why it is in this group

    • The name "add_image" says "add": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Add uploaded or existing artwork to the specified area. Use the returned asset or the supported imageFile transport. Do not confuse an upload with the target of an existing-image edit.

    Annotations the server declares

    • title: Add artwork to a print area
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • add_textCreate a separate new text object in the specified print area using the existing text/font/style options.No findings

    Why it is in this group

    • The name "add_text" says "add": a word for a change.
    Description, as the server wrote it
    Create a separate new text object in the specified print area using the existing text/font/style options. Preserve the user's exact wording. Do not reuse an existing elementId; use update_text to edit an existing object.

    Annotations the server declares

    • title: Add text
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • ai_photoshootShow the current design being worn using streetshirts' existing AI photoshoot.Reads text others write1 finding

    Why it is in this group

    • The description's first verb is "show": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

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

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "show": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Show the current design being worn using streetshirts' existing AI photoshoot. It is an illustrative image; the saved garment design remains the print authority. May return pending work and uses a bounded allowance.

    Annotations the server declares

    • title: Create an AI photoshoot
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_checkoutSave the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities.Reads text others writeNo findings

    Why it is in this group

    • The name "create_checkout" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Save the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities. Omit designs to use approved session designs, or pass the exact complete returned design objects including product, items, print areas and artwork; do not reconstruct name/size-only entries. This does not pay or place an order. Only create it when the user wants a purchase link.

    Annotations the server declares

    • title: Create a combined checkout link
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_designCreate another independent blank design in this session.No findings

    Why it is in this group

    • The name "create_design" says "create": a word for a change.
    Description, as the server wrote it
    Create another independent blank design in this session. Use product, colour, size, quantity and print areas as needed. It does not inherit artwork from the active design.

    Annotations the server declares

    • title: Create an independent design
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_design_variantsClone the active/base design into personalised designs.No findings

    Why it is in this group

    • The name "create_design_variants" says "create": a word for a change.
    Description, as the server wrote it
    Clone the active/base design into personalised designs. Supply areaId and variants with nameText, numberText, size, quantity and optional product/items. This replaces existing name/number text objects: first ensure separate name and number templates exist in the intended print area, adding missing templates with add_text. It does not create those text objects itself. Set append:true to retain existing session designs; otherwise the variants replace that collection. Preserve the common artwork and check each supplied name and number. Pass only the complete intended designs to checkout.

    Annotations the server declares

    • title: Personalise team shirts
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • duplicate_elementDuplicate the specified text or image in its print area using existing placement options.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
    Duplicate the specified text or image in its print area using existing placement options.

    Annotations the server declares

    • title: Duplicate an element
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • generate_artworkGenerate artwork from a prompt using the existing streetshirts service.Reads text others writeNo findings

    Why it is in this group

    • The name "generate_artwork" says "generate": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Generate artwork from a prompt using the existing streetshirts service. Use applyToDesign, singleResult and areaId when applying it to a shirt. Generation uses a bounded allowance and can return pending work.

    Annotations the server declares

    • title: Generate AI artwork
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • preview_designRender the existing garment preview for the active design and chosen product.1 finding

    Why it is in this group

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

    Findings

    • Warn

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

      Matched text

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

      What this check looks for
    Description, as the server wrote it
    Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer.

    Annotations the server declares

    • title: Preview the garment
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • save_designSave the active design, or supply designs/variants/saveAllDesigns for multiple outputs.Reads text others writeNo findings

    Why it is in this group

    • The name "save_design" says "save": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Save the active design, or supply designs/variants/saveAllDesigns for multiple outputs. Returns immutable saved keys and visual-editor links. Final production sizes and quantities must be supplied.

    Annotations the server declares

    • title: Save designs and open the visual editor
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • start_design_sessionStart a private, expiring guest design session.No findings

    Why it is in this group

    • The name "start_design_session" says "start": a word for a change.
    Description, as the server wrote it
    Start a private, expiring guest design session. Keep the returned subject and sessionToken for every follow-up. The token grants access to this session; do not publish it. One session can contain multiple designs and a team basket.

    Annotations the server declares

    • title: Start a design session
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • upload_imageUpload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl.Reads text others writeNo findings

    Why it is in this group

    • The name "upload_image" says "upload": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Upload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl. Include filename, contentType and fileType to identify the image, e.g. artwork.png, image/png, png. Set applyToDesign and areaId to place it. A caller-local path or a bare file ID is not downloadable artwork.

    Annotations the server declares

    • title: Upload an image
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • validate_designValidate the current or supplied design with the existing production compiler.1 finding

    Why it is in this group

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

    Findings

    • Warn

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

      Matched text

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

      What this check looks for
    Description, as the server wrote it
    Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving.

    Annotations the server declares

    • title: Validate a design
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Only reads 3Claude Code: allow
  • discover_productsRead the live garment catalogue, colours, sizes, print areas and recommendations.No findings

    Why it is in this group

    • The description's first verb is "read": a word for reading.
    Description, as the server wrote it
    Read the live garment catalogue, colours, sizes, print areas and recommendations. Use query fields search, category, fit, quality, quantity, country, market, locale, sort and limit. No design session is required.

    Annotations the server declares

    • title: Find garments
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_design_requestRead the status of a request submitted in this session.No findings

    Why it is in this group

    • The name "get_design_request" says "get": a word for reading.
    Description, as the server wrote it
    Read the status of a request submitted in this session. Pass its original requestId. Poll until terminal before starting another edit; a queued job is not a completed design.

    Annotations the server declares

    • title: Check a design request
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_design_sessionRead this session's designs, elements, print areas, previews and last changed object.No findings

    Why it is in this group

    • The name "get_design_session" says "get": a word for reading.
    Description, as the server wrote it
    Read this session's designs, elements, print areas, previews and last changed object. Use it to resolve an edit's target. Requires this session's subject and sessionToken.

    Annotations the server declares

    • title: Read your design session
    • 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.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data.

Reads private data0
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write14
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out1
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Install

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

claude mcp add --transport http creation https://creation.streetshirts.com/agent/design/mcp

Run in a terminal.

Claude Code permissions

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

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__creation__discover_products",
      "mcp__creation__get_design_session",
      "mcp__creation__get_design_request"
    ],
    "ask": [
      "mcp__creation__start_design_session",
      "mcp__creation__create_design",
      "mcp__creation__create_design_variants",
      "mcp__creation__add_text",
      "mcp__creation__upload_image",
      "mcp__creation__add_image",
      "mcp__creation__generate_artwork",
      "mcp__creation__duplicate_element",
      "mcp__creation__validate_design",
      "mcp__creation__preview_design",
      "mcp__creation__ai_photoshoot",
      "mcp__creation__save_design",
      "mcp__creation__create_checkout",
      "mcp__creation__email_design"
    ],
    "deny": [
      "mcp__creation__end_design_session",
      "mcp__creation__choose_product",
      "mcp__creation__load_design",
      "mcp__creation__change_design",
      "mcp__creation__update_text",
      "mcp__creation__replace_image",
      "mcp__creation__move_element",
      "mcp__creation__resize_element",
      "mcp__creation__resize_group",
      "mcp__creation__rotate_element",
      "mcp__creation__align_element",
      "mcp__creation__delete_element",
      "mcp__creation__move_to_print_area",
      "mcp__creation__remove_background",
      "mcp__creation__crop_image",
      "mcp__creation__flip_image",
      "mcp__creation__restore_original_image",
      "mcp__creation__invert_image",
      "mcp__creation__add_keyline",
      "mcp__creation__sticker_cutout",
      "mcp__creation__extract_artwork",
      "mcp__creation__replace_emoji",
      "mcp__creation__apply_design_batch"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as creation. Review it before you use it.

Capability tags behind 14 rules
  • mcp__creation__change_design untrusted-input
  • mcp__creation__upload_image untrusted-input
  • mcp__creation__add_image untrusted-input
  • mcp__creation__generate_artwork untrusted-input
  • mcp__creation__replace_image untrusted-input
  • mcp__creation__remove_background untrusted-input
  • mcp__creation__sticker_cutout untrusted-input
  • mcp__creation__extract_artwork untrusted-input
  • mcp__creation__replace_emoji untrusted-input
  • mcp__creation__apply_design_batch untrusted-input
  • mcp__creation__ai_photoshoot untrusted-input
  • mcp__creation__save_design untrusted-input
  • mcp__creation__create_checkout untrusted-input
  • mcp__creation__email_design untrusted-input, outbound