{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_f9dj3xqqrfud","handle":"streetshirts","url":"https://wellknown.network/agents/streetshirts","links":{"self":"https://wellknown.network/agents/streetshirts/record.json","html":"https://wellknown.network/agents/streetshirts","markdown":"https://wellknown.network/agents/streetshirts/record.md","api":"https://wellknown.network/api/v1/agents/streetshirts","status":"https://wellknown.network/api/v1/agents/streetshirts/status","claim":"https://wellknown.network/agents/streetshirts/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/streetshirts/claim.json","badge":"https://wellknown.network/agents/streetshirts/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/streetshirts/history","tools":"https://wellknown.network/api/v1/agents/streetshirts/tools"},"ard":{"identifier":"urn:air:creation.streetshirts.com:server:streetshirts","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"streetshirts","summary":"Design custom T-shirts, preview artwork, personalize team shirts and prepare a checkout link.","description":"Design custom T-shirts, preview artwork, personalize team shirts and prepare a checkout link.","publisher":{"name":"com.streetshirts","url":null},"homepage":"https://streetshirts.com/pages/ai-t-shirt-design","repository":null,"version":"1.0.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://creation.streetshirts.com/agent/design/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-13T14:05:59.092114Z","publishedAt":"2026-10-13T14:05:59.092114Z","registryName":"com.streetshirts/creation"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":1,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":0.938,"provenance":"derived"},{"slug":"media.3d","name":"3D & Design","confidence":0.885,"provenance":"derived"},{"slug":"media.image-editing","name":"Image Editing","confidence":0.583,"provenance":"derived"},{"slug":"documents.extraction","name":"Data Extraction","confidence":0.554,"provenance":"derived"},{"slug":"dev.terminal","name":"Terminal & Shell","confidence":0.525,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"},{"slug":"documents.conversion","name":"Document Conversion","confidence":0.51,"provenance":"derived"}],"categories":["commerce","content","dev","documents","media"],"language":"fr"},"observed":{"status":"live","statusReason":"Responded 1h ago.","lastOkAt":"2026-10-24T17:36:07.041Z","lastProbedAt":"2026-10-24T17:36:07.041Z","statusComputedAt":"2026-10-24T17:38:35.472Z","reliability30d":{"probes":34,"successRate":1,"p50Ms":126,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":34,"ok":34,"authBoundaryOk":0,"serviceOk":34,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-24T17:36:07.041Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":140,"error":null,"detail":{"tools":[{"name":"discover_products","description":"Read the live garment catalogue, colours, sizes, print areas and recommendations. Use query fields search, category, fit, quality, quantity, country, market, lo"},{"name":"start_design_session","description":"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 "},{"name":"get_design_session","description":"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 se"},{"name":"end_design_session","description":"Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs."},{"name":"get_design_request","description":"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 com"},{"name":"choose_product","description":"Choose or change product, garment colour, sizes, quantities and print areas. Existing artwork is preserved. Use live product values; confirm final sizes and qua"},{"name":"create_design","description":"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 act"},{"name":"load_design","description":"Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session."},{"name":"change_design","description":"Apply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restor"},{"name":"create_design_variants","description":"Clone the active/base design into personalised designs. Supply areaId and variants with nameText, numberText, size, quantity and optional product/items. This re"},{"name":"add_text","description":"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 exi"},{"name":"update_text","description":"Replace existing text content or edit its style. This can overwrite the selected wording. Resolve targets from session state. For all text, include every intend"},{"name":"upload_image","description":"Upload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl. Include filename, contentType and fileType to identify the image, e.g. artwork.png, "},{"name":"add_image","description":"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"},{"name":"generate_artwork","description":"Generate artwork from a prompt using the existing streetshirts service. Use applyToDesign, singleResult and areaId when applying it to a shirt. Generation uses "},{"name":"replace_image","description":"Replace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested. This overwrites the selected imag"},{"name":"move_element","description":"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 "},{"name":"resize_element","description":"Resize the target in the specified print area. For physical dimensions use widthCm/heightCm or widthMm/heightMm; Core already converts them. For example, make t"},{"name":"resize_group","description":"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 / scalePerc"},{"name":"rotate_element","description":"Rotate the specified existing element in its print area using the existing rotation/placement options."},{"name":"align_element","description":"Align the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment. For a target already u"},{"name":"duplicate_element","description":"Duplicate the specified text or image in its print area using existing placement options."},{"name":"delete_element","description":"Delete the explicitly intended text/image element or selected elements. Resolve an ambiguous target before deletion; do not hide or shrink it to simulate remova"},{"name":"move_to_print_area","description":"Move a selected element to a named destination print area with the existing destination/target-area options."},{"name":"remove_background","description":"Use the existing background-removal workflow for a target image. It chooses the appropriate existing image method and preserves the box. Show the resulting garm"},{"name":"crop_image","description":"Crop the selected image using the existing crop options while keeping its print-area context."},{"name":"flip_image","description":"Flip the selected image horizontally or vertically. Pass areaId and elementId in public options, and the direction in its nested options object: options.options"},{"name":"restore_original_image","description":"Restore retained original image content for an explicit elementId and areaId, preserving the authored placement."},{"name":"invert_image","description":"Invert the selected image's colours using the existing image tool."},{"name":"add_keyline","description":"Apply a keyline to the explicit elementId and areaId. Use borderMode=thin_detail for garment-coloured detail thickening, or high_contrast with borderColour as h"},{"name":"sticker_cutout","description":"Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork."},{"name":"extract_artwork","description":"Use the existing extraction tool to recover printable artwork from a supplied garment mockup."},{"name":"replace_emoji","description":"Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope."},{"name":"apply_design_batch","description":"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 exp"},{"name":"validate_design","description":"Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving."},{"name":"preview_design","description":"Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer."},{"name":"ai_photoshoot","description":"Show the current design being worn using streetshirts' existing AI photoshoot. It is an illustrative image; the saved garment design remains the print authority"},{"name":"save_design","description":"Save the active design, or supply designs/variants/saveAllDesigns for multiple outputs. Returns immutable saved keys and visual-editor links. Final production s"},{"name":"create_checkout","description":"Save the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities. Omit designs to use approved sessio"},{"name":"email_design","description":"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 inf"}],"toolCount":40,"toolsHash":"8695556258ab91f1c81b0a2a5207b07ef425f224e67374886645d568093c2e83","serverName":"streetshirts","capabilities":["tools","resources"],"serverVersion":"17.0.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T11:26:58.219Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":121,"error":null,"detail":{"tools":[{"name":"discover_products","description":"Read the live garment catalogue, colours, sizes, print areas and recommendations. Use query fields search, category, fit, quality, quantity, country, market, lo"},{"name":"start_design_session","description":"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 "},{"name":"get_design_session","description":"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 se"},{"name":"end_design_session","description":"Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs."},{"name":"get_design_request","description":"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 com"},{"name":"choose_product","description":"Choose or change product, garment colour, sizes, quantities and print areas. Existing artwork is preserved. Use live product values; confirm final sizes and qua"},{"name":"create_design","description":"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 act"},{"name":"load_design","description":"Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session."},{"name":"change_design","description":"Apply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restor"},{"name":"create_design_variants","description":"Clone the active/base design into personalised designs. Supply areaId and variants with nameText, numberText, size, quantity and optional product/items. This re"},{"name":"add_text","description":"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 exi"},{"name":"update_text","description":"Replace existing text content or edit its style. This can overwrite the selected wording. Resolve targets from session state. For all text, include every intend"},{"name":"upload_image","description":"Upload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl. Include filename, contentType and fileType to identify the image, e.g. artwork.png, "},{"name":"add_image","description":"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"},{"name":"generate_artwork","description":"Generate artwork from a prompt using the existing streetshirts service. Use applyToDesign, singleResult and areaId when applying it to a shirt. Generation uses "},{"name":"replace_image","description":"Replace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested. This overwrites the selected imag"},{"name":"move_element","description":"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 "},{"name":"resize_element","description":"Resize the target in the specified print area. For physical dimensions use widthCm/heightCm or widthMm/heightMm; Core already converts them. For example, make t"},{"name":"resize_group","description":"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 / scalePerc"},{"name":"rotate_element","description":"Rotate the specified existing element in its print area using the existing rotation/placement options."},{"name":"align_element","description":"Align the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment. For a target already u"},{"name":"duplicate_element","description":"Duplicate the specified text or image in its print area using existing placement options."},{"name":"delete_element","description":"Delete the explicitly intended text/image element or selected elements. Resolve an ambiguous target before deletion; do not hide or shrink it to simulate remova"},{"name":"move_to_print_area","description":"Move a selected element to a named destination print area with the existing destination/target-area options."},{"name":"remove_background","description":"Use the existing background-removal workflow for a target image. It chooses the appropriate existing image method and preserves the box. Show the resulting garm"},{"name":"crop_image","description":"Crop the selected image using the existing crop options while keeping its print-area context."},{"name":"flip_image","description":"Flip the selected image horizontally or vertically. Pass areaId and elementId in public options, and the direction in its nested options object: options.options"},{"name":"restore_original_image","description":"Restore retained original image content for an explicit elementId and areaId, preserving the authored placement."},{"name":"invert_image","description":"Invert the selected image's colours using the existing image tool."},{"name":"add_keyline","description":"Apply a keyline to the explicit elementId and areaId. Use borderMode=thin_detail for garment-coloured detail thickening, or high_contrast with borderColour as h"},{"name":"sticker_cutout","description":"Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork."},{"name":"extract_artwork","description":"Use the existing extraction tool to recover printable artwork from a supplied garment mockup."},{"name":"replace_emoji","description":"Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope."},{"name":"apply_design_batch","description":"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 exp"},{"name":"validate_design","description":"Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving."},{"name":"preview_design","description":"Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer."},{"name":"ai_photoshoot","description":"Show the current design being worn using streetshirts' existing AI photoshoot. It is an illustrative image; the saved garment design remains the print authority"},{"name":"save_design","description":"Save the active design, or supply designs/variants/saveAllDesigns for multiple outputs. Returns immutable saved keys and visual-editor links. Final production s"},{"name":"create_checkout","description":"Save the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities. Omit designs to use approved sessio"},{"name":"email_design","description":"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 inf"}],"toolCount":40,"toolsHash":"8695556258ab91f1c81b0a2a5207b07ef425f224e67374886645d568093c2e83","serverName":"streetshirts","capabilities":["tools","resources"],"serverVersion":"17.0.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T04:23:54.617Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":117,"error":null,"detail":{"tools":[{"name":"discover_products","description":"Read the live garment catalogue, colours, sizes, print areas and recommendations. Use query fields search, category, fit, quality, quantity, country, market, lo"},{"name":"start_design_session","description":"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 "},{"name":"get_design_session","description":"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 se"},{"name":"end_design_session","description":"Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs."},{"name":"get_design_request","description":"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 com"},{"name":"choose_product","description":"Choose or change product, garment colour, sizes, quantities and print areas. Existing artwork is preserved. Use live product values; confirm final sizes and qua"},{"name":"create_design","description":"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 act"},{"name":"load_design","description":"Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session."},{"name":"change_design","description":"Apply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restor"},{"name":"create_design_variants","description":"Clone the active/base design into personalised designs. Supply areaId and variants with nameText, numberText, size, quantity and optional product/items. This re"},{"name":"add_text","description":"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 exi"},{"name":"update_text","description":"Replace existing text content or edit its style. This can overwrite the selected wording. Resolve targets from session state. For all text, include every intend"},{"name":"upload_image","description":"Upload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl. Include filename, contentType and fileType to identify the image, e.g. artwork.png, "},{"name":"add_image","description":"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"},{"name":"generate_artwork","description":"Generate artwork from a prompt using the existing streetshirts service. Use applyToDesign, singleResult and areaId when applying it to a shirt. Generation uses "},{"name":"replace_image","description":"Replace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested. This overwrites the selected imag"},{"name":"move_element","description":"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 "},{"name":"resize_element","description":"Resize the target in the specified print area. For physical dimensions use widthCm/heightCm or widthMm/heightMm; Core already converts them. For example, make t"},{"name":"resize_group","description":"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 / scalePerc"},{"name":"rotate_element","description":"Rotate the specified existing element in its print area using the existing rotation/placement options."},{"name":"align_element","description":"Align the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment. For a target already u"},{"name":"duplicate_element","description":"Duplicate the specified text or image in its print area using existing placement options."},{"name":"delete_element","description":"Delete the explicitly intended text/image element or selected elements. Resolve an ambiguous target before deletion; do not hide or shrink it to simulate remova"},{"name":"move_to_print_area","description":"Move a selected element to a named destination print area with the existing destination/target-area options."},{"name":"remove_background","description":"Use the existing background-removal workflow for a target image. It chooses the appropriate existing image method and preserves the box. Show the resulting garm"},{"name":"crop_image","description":"Crop the selected image using the existing crop options while keeping its print-area context."},{"name":"flip_image","description":"Flip the selected image horizontally or vertically. Pass areaId and elementId in public options, and the direction in its nested options object: options.options"},{"name":"restore_original_image","description":"Restore retained original image content for an explicit elementId and areaId, preserving the authored placement."},{"name":"invert_image","description":"Invert the selected image's colours using the existing image tool."},{"name":"add_keyline","description":"Apply a keyline to the explicit elementId and areaId. Use borderMode=thin_detail for garment-coloured detail thickening, or high_contrast with borderColour as h"},{"name":"sticker_cutout","description":"Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork."},{"name":"extract_artwork","description":"Use the existing extraction tool to recover printable artwork from a supplied garment mockup."},{"name":"replace_emoji","description":"Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope."},{"name":"apply_design_batch","description":"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 exp"},{"name":"validate_design","description":"Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving."},{"name":"preview_design","description":"Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer."},{"name":"ai_photoshoot","description":"Show the current design being worn using streetshirts' existing AI photoshoot. It is an illustrative image; the saved garment design remains the print authority"},{"name":"save_design","description":"Save the active design, or supply designs/variants/saveAllDesigns for multiple outputs. Returns immutable saved keys and visual-editor links. Final production s"},{"name":"create_checkout","description":"Save the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities. Omit designs to use approved sessio"},{"name":"email_design","description":"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 inf"}],"toolCount":40,"toolsHash":"8695556258ab91f1c81b0a2a5207b07ef425f224e67374886645d568093c2e83","serverName":"streetshirts","capabilities":["tools","resources"],"serverVersion":"17.0.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T22:24:24.905Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":101,"error":null,"detail":{"tools":[{"name":"discover_products","description":"Read the live garment catalogue, colours, sizes, print areas and recommendations. Use query fields search, category, fit, quality, quantity, country, market, lo"},{"name":"start_design_session","description":"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 "},{"name":"get_design_session","description":"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 se"},{"name":"end_design_session","description":"Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs."},{"name":"get_design_request","description":"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 com"},{"name":"choose_product","description":"Choose or change product, garment colour, sizes, quantities and print areas. Existing artwork is preserved. Use live product values; confirm final sizes and qua"},{"name":"create_design","description":"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 act"},{"name":"load_design","description":"Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session."},{"name":"change_design","description":"Apply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restor"},{"name":"create_design_variants","description":"Clone the active/base design into personalised designs. Supply areaId and variants with nameText, numberText, size, quantity and optional product/items. This re"},{"name":"add_text","description":"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 exi"},{"name":"update_text","description":"Replace existing text content or edit its style. This can overwrite the selected wording. Resolve targets from session state. For all text, include every intend"},{"name":"upload_image","description":"Upload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl. Include filename, contentType and fileType to identify the image, e.g. artwork.png, "},{"name":"add_image","description":"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"},{"name":"generate_artwork","description":"Generate artwork from a prompt using the existing streetshirts service. Use applyToDesign, singleResult and areaId when applying it to a shirt. Generation uses "},{"name":"replace_image","description":"Replace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested. This overwrites the selected imag"},{"name":"move_element","description":"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 "},{"name":"resize_element","description":"Resize the target in the specified print area. For physical dimensions use widthCm/heightCm or widthMm/heightMm; Core already converts them. For example, make t"},{"name":"resize_group","description":"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 / scalePerc"},{"name":"rotate_element","description":"Rotate the specified existing element in its print area using the existing rotation/placement options."},{"name":"align_element","description":"Align the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment. For a target already u"},{"name":"duplicate_element","description":"Duplicate the specified text or image in its print area using existing placement options."},{"name":"delete_element","description":"Delete the explicitly intended text/image element or selected elements. Resolve an ambiguous target before deletion; do not hide or shrink it to simulate remova"},{"name":"move_to_print_area","description":"Move a selected element to a named destination print area with the existing destination/target-area options."},{"name":"remove_background","description":"Use the existing background-removal workflow for a target image. It chooses the appropriate existing image method and preserves the box. Show the resulting garm"},{"name":"crop_image","description":"Crop the selected image using the existing crop options while keeping its print-area context."},{"name":"flip_image","description":"Flip the selected image horizontally or vertically. Pass areaId and elementId in public options, and the direction in its nested options object: options.options"},{"name":"restore_original_image","description":"Restore retained original image content for an explicit elementId and areaId, preserving the authored placement."},{"name":"invert_image","description":"Invert the selected image's colours using the existing image tool."},{"name":"add_keyline","description":"Apply a keyline to the explicit elementId and areaId. Use borderMode=thin_detail for garment-coloured detail thickening, or high_contrast with borderColour as h"},{"name":"sticker_cutout","description":"Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork."},{"name":"extract_artwork","description":"Use the existing extraction tool to recover printable artwork from a supplied garment mockup."},{"name":"replace_emoji","description":"Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope."},{"name":"apply_design_batch","description":"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 exp"},{"name":"validate_design","description":"Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving."},{"name":"preview_design","description":"Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer."},{"name":"ai_photoshoot","description":"Show the current design being worn using streetshirts' existing AI photoshoot. It is an illustrative image; the saved garment design remains the print authority"},{"name":"save_design","description":"Save the active design, or supply designs/variants/saveAllDesigns for multiple outputs. Returns immutable saved keys and visual-editor links. Final production s"},{"name":"create_checkout","description":"Save the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities. Omit designs to use approved sessio"},{"name":"email_design","description":"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 inf"}],"toolCount":40,"toolsHash":"8695556258ab91f1c81b0a2a5207b07ef425f224e67374886645d568093c2e83","serverName":"streetshirts","capabilities":["tools","resources"],"serverVersion":"17.0.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T15:31:20.009Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":121,"error":null,"detail":{"tools":[{"name":"discover_products","description":"Read the live garment catalogue, colours, sizes, print areas and recommendations. Use query fields search, category, fit, quality, quantity, country, market, lo"},{"name":"start_design_session","description":"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 "},{"name":"get_design_session","description":"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 se"},{"name":"end_design_session","description":"Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs."},{"name":"get_design_request","description":"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 com"},{"name":"choose_product","description":"Choose or change product, garment colour, sizes, quantities and print areas. Existing artwork is preserved. Use live product values; confirm final sizes and qua"},{"name":"create_design","description":"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 act"},{"name":"load_design","description":"Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session."},{"name":"change_design","description":"Apply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restor"},{"name":"create_design_variants","description":"Clone the active/base design into personalised designs. Supply areaId and variants with nameText, numberText, size, quantity and optional product/items. This re"},{"name":"add_text","description":"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 exi"},{"name":"update_text","description":"Replace existing text content or edit its style. This can overwrite the selected wording. Resolve targets from session state. For all text, include every intend"},{"name":"upload_image","description":"Upload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl. Include filename, contentType and fileType to identify the image, e.g. artwork.png, "},{"name":"add_image","description":"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"},{"name":"generate_artwork","description":"Generate artwork from a prompt using the existing streetshirts service. Use applyToDesign, singleResult and areaId when applying it to a shirt. Generation uses "},{"name":"replace_image","description":"Replace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested. This overwrites the selected imag"},{"name":"move_element","description":"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 "},{"name":"resize_element","description":"Resize the target in the specified print area. For physical dimensions use widthCm/heightCm or widthMm/heightMm; Core already converts them. For example, make t"},{"name":"resize_group","description":"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 / scalePerc"},{"name":"rotate_element","description":"Rotate the specified existing element in its print area using the existing rotation/placement options."},{"name":"align_element","description":"Align the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment. For a target already u"},{"name":"duplicate_element","description":"Duplicate the specified text or image in its print area using existing placement options."},{"name":"delete_element","description":"Delete the explicitly intended text/image element or selected elements. Resolve an ambiguous target before deletion; do not hide or shrink it to simulate remova"},{"name":"move_to_print_area","description":"Move a selected element to a named destination print area with the existing destination/target-area options."},{"name":"remove_background","description":"Use the existing background-removal workflow for a target image. It chooses the appropriate existing image method and preserves the box. Show the resulting garm"},{"name":"crop_image","description":"Crop the selected image using the existing crop options while keeping its print-area context."},{"name":"flip_image","description":"Flip the selected image horizontally or vertically. Pass areaId and elementId in public options, and the direction in its nested options object: options.options"},{"name":"restore_original_image","description":"Restore retained original image content for an explicit elementId and areaId, preserving the authored placement."},{"name":"invert_image","description":"Invert the selected image's colours using the existing image tool."},{"name":"add_keyline","description":"Apply a keyline to the explicit elementId and areaId. Use borderMode=thin_detail for garment-coloured detail thickening, or high_contrast with borderColour as h"},{"name":"sticker_cutout","description":"Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork."},{"name":"extract_artwork","description":"Use the existing extraction tool to recover printable artwork from a supplied garment mockup."},{"name":"replace_emoji","description":"Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope."},{"name":"apply_design_batch","description":"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 exp"},{"name":"validate_design","description":"Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving."},{"name":"preview_design","description":"Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer."},{"name":"ai_photoshoot","description":"Show the current design being worn using streetshirts' existing AI photoshoot. It is an illustrative image; the saved garment design remains the print authority"},{"name":"save_design","description":"Save the active design, or supply designs/variants/saveAllDesigns for multiple outputs. Returns immutable saved keys and visual-editor links. Final production s"},{"name":"create_checkout","description":"Save the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities. Omit designs to use approved sessio"},{"name":"email_design","description":"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 inf"}],"toolCount":40,"toolsHash":"8695556258ab91f1c81b0a2a5207b07ef425f224e67374886645d568093c2e83","serverName":"streetshirts","capabilities":["tools","resources"],"serverVersion":"17.0.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T08:28:59.617Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":193,"error":null,"detail":{"tools":[{"name":"discover_products","description":"Read the live garment catalogue, colours, sizes, print areas and recommendations. Use query fields search, category, fit, quality, quantity, country, market, lo"},{"name":"start_design_session","description":"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 "},{"name":"get_design_session","description":"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 se"},{"name":"end_design_session","description":"Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs."},{"name":"get_design_request","description":"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 com"},{"name":"choose_product","description":"Choose or change product, garment colour, sizes, quantities and print areas. Existing artwork is preserved. Use live product values; confirm final sizes and qua"},{"name":"create_design","description":"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 act"},{"name":"load_design","description":"Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session."},{"name":"change_design","description":"Apply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restor"},{"name":"create_design_variants","description":"Clone the active/base design into personalised designs. Supply areaId and variants with nameText, numberText, size, quantity and optional product/items. This re"},{"name":"add_text","description":"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 exi"},{"name":"update_text","description":"Replace existing text content or edit its style. This can overwrite the selected wording. Resolve targets from session state. For all text, include every intend"},{"name":"upload_image","description":"Upload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl. Include filename, contentType and fileType to identify the image, e.g. artwork.png, "},{"name":"add_image","description":"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"},{"name":"generate_artwork","description":"Generate artwork from a prompt using the existing streetshirts service. Use applyToDesign, singleResult and areaId when applying it to a shirt. Generation uses "},{"name":"replace_image","description":"Replace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested. This overwrites the selected imag"},{"name":"move_element","description":"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 "},{"name":"resize_element","description":"Resize the target in the specified print area. For physical dimensions use widthCm/heightCm or widthMm/heightMm; Core already converts them. For example, make t"},{"name":"resize_group","description":"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 / scalePerc"},{"name":"rotate_element","description":"Rotate the specified existing element in its print area using the existing rotation/placement options."},{"name":"align_element","description":"Align the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment. For a target already u"},{"name":"duplicate_element","description":"Duplicate the specified text or image in its print area using existing placement options."},{"name":"delete_element","description":"Delete the explicitly intended text/image element or selected elements. Resolve an ambiguous target before deletion; do not hide or shrink it to simulate remova"},{"name":"move_to_print_area","description":"Move a selected element to a named destination print area with the existing destination/target-area options."},{"name":"remove_background","description":"Use the existing background-removal workflow for a target image. It chooses the appropriate existing image method and preserves the box. Show the resulting garm"},{"name":"crop_image","description":"Crop the selected image using the existing crop options while keeping its print-area context."},{"name":"flip_image","description":"Flip the selected image horizontally or vertically. Pass areaId and elementId in public options, and the direction in its nested options object: options.options"},{"name":"restore_original_image","description":"Restore retained original image content for an explicit elementId and areaId, preserving the authored placement."},{"name":"invert_image","description":"Invert the selected image's colours using the existing image tool."},{"name":"add_keyline","description":"Apply a keyline to the explicit elementId and areaId. Use borderMode=thin_detail for garment-coloured detail thickening, or high_contrast with borderColour as h"},{"name":"sticker_cutout","description":"Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork."},{"name":"extract_artwork","description":"Use the existing extraction tool to recover printable artwork from a supplied garment mockup."},{"name":"replace_emoji","description":"Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope."},{"name":"apply_design_batch","description":"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 exp"},{"name":"validate_design","description":"Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving."},{"name":"preview_design","description":"Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer."},{"name":"ai_photoshoot","description":"Show the current design being worn using streetshirts' existing AI photoshoot. It is an illustrative image; the saved garment design remains the print authority"},{"name":"save_design","description":"Save the active design, or supply designs/variants/saveAllDesigns for multiple outputs. Returns immutable saved keys and visual-editor links. Final production s"},{"name":"create_checkout","description":"Save the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities. Omit designs to use approved sessio"},{"name":"email_design","description":"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 inf"}],"toolCount":40,"toolsHash":"8695556258ab91f1c81b0a2a5207b07ef425f224e67374886645d568093c2e83","serverName":"streetshirts","capabilities":["tools","resources"],"serverVersion":"17.0.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T01:30:10.522Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":102,"error":null,"detail":{"tools":[{"name":"discover_products","description":"Read the live garment catalogue, colours, sizes, print areas and recommendations. Use query fields search, category, fit, quality, quantity, country, market, lo"},{"name":"start_design_session","description":"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 "},{"name":"get_design_session","description":"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 se"},{"name":"end_design_session","description":"Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs."},{"name":"get_design_request","description":"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 com"},{"name":"choose_product","description":"Choose or change product, garment colour, sizes, quantities and print areas. Existing artwork is preserved. Use live product values; confirm final sizes and qua"},{"name":"create_design","description":"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 act"},{"name":"load_design","description":"Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session."},{"name":"change_design","description":"Apply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restor"},{"name":"create_design_variants","description":"Clone the active/base design into personalised designs. Supply areaId and variants with nameText, numberText, size, quantity and optional product/items. This re"},{"name":"add_text","description":"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 exi"},{"name":"update_text","description":"Replace existing text content or edit its style. This can overwrite the selected wording. Resolve targets from session state. For all text, include every intend"},{"name":"upload_image","description":"Upload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl. Include filename, contentType and fileType to identify the image, e.g. artwork.png, "},{"name":"add_image","description":"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"},{"name":"generate_artwork","description":"Generate artwork from a prompt using the existing streetshirts service. Use applyToDesign, singleResult and areaId when applying it to a shirt. Generation uses "},{"name":"replace_image","description":"Replace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested. This overwrites the selected imag"},{"name":"move_element","description":"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 "},{"name":"resize_element","description":"Resize the target in the specified print area. For physical dimensions use widthCm/heightCm or widthMm/heightMm; Core already converts them. For example, make t"},{"name":"resize_group","description":"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 / scalePerc"},{"name":"rotate_element","description":"Rotate the specified existing element in its print area using the existing rotation/placement options."},{"name":"align_element","description":"Align the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment. For a target already u"},{"name":"duplicate_element","description":"Duplicate the specified text or image in its print area using existing placement options."},{"name":"delete_element","description":"Delete the explicitly intended text/image element or selected elements. Resolve an ambiguous target before deletion; do not hide or shrink it to simulate remova"},{"name":"move_to_print_area","description":"Move a selected element to a named destination print area with the existing destination/target-area options."},{"name":"remove_background","description":"Use the existing background-removal workflow for a target image. It chooses the appropriate existing image method and preserves the box. Show the resulting garm"},{"name":"crop_image","description":"Crop the selected image using the existing crop options while keeping its print-area context."},{"name":"flip_image","description":"Flip the selected image horizontally or vertically. Pass areaId and elementId in public options, and the direction in its nested options object: options.options"},{"name":"restore_original_image","description":"Restore retained original image content for an explicit elementId and areaId, preserving the authored placement."},{"name":"invert_image","description":"Invert the selected image's colours using the existing image tool."},{"name":"add_keyline","description":"Apply a keyline to the explicit elementId and areaId. Use borderMode=thin_detail for garment-coloured detail thickening, or high_contrast with borderColour as h"},{"name":"sticker_cutout","description":"Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork."},{"name":"extract_artwork","description":"Use the existing extraction tool to recover printable artwork from a supplied garment mockup."},{"name":"replace_emoji","description":"Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope."},{"name":"apply_design_batch","description":"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 exp"},{"name":"validate_design","description":"Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving."},{"name":"preview_design","description":"Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer."},{"name":"ai_photoshoot","description":"Show the current design being worn using streetshirts' existing AI photoshoot. It is an illustrative image; the saved garment design remains the print authority"},{"name":"save_design","description":"Save the active design, or supply designs/variants/saveAllDesigns for multiple outputs. Returns immutable saved keys and visual-editor links. Final production s"},{"name":"create_checkout","description":"Save the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities. Omit designs to use approved sessio"},{"name":"email_design","description":"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 inf"}],"toolCount":40,"toolsHash":"8695556258ab91f1c81b0a2a5207b07ef425f224e67374886645d568093c2e83","serverName":"streetshirts","capabilities":["tools","resources"],"serverVersion":"17.0.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T18:32:58.898Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":110,"error":null,"detail":{"tools":[{"name":"discover_products","description":"Read the live garment catalogue, colours, sizes, print areas and recommendations. Use query fields search, category, fit, quality, quantity, country, market, lo"},{"name":"start_design_session","description":"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 "},{"name":"get_design_session","description":"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 se"},{"name":"end_design_session","description":"Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs."},{"name":"get_design_request","description":"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 com"},{"name":"choose_product","description":"Choose or change product, garment colour, sizes, quantities and print areas. Existing artwork is preserved. Use live product values; confirm final sizes and qua"},{"name":"create_design","description":"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 act"},{"name":"load_design","description":"Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session."},{"name":"change_design","description":"Apply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restor"},{"name":"create_design_variants","description":"Clone the active/base design into personalised designs. Supply areaId and variants with nameText, numberText, size, quantity and optional product/items. This re"},{"name":"add_text","description":"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 exi"},{"name":"update_text","description":"Replace existing text content or edit its style. This can overwrite the selected wording. Resolve targets from session state. For all text, include every intend"},{"name":"upload_image","description":"Upload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl. Include filename, contentType and fileType to identify the image, e.g. artwork.png, "},{"name":"add_image","description":"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"},{"name":"generate_artwork","description":"Generate artwork from a prompt using the existing streetshirts service. Use applyToDesign, singleResult and areaId when applying it to a shirt. Generation uses "},{"name":"replace_image","description":"Replace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested. This overwrites the selected imag"},{"name":"move_element","description":"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 "},{"name":"resize_element","description":"Resize the target in the specified print area. For physical dimensions use widthCm/heightCm or widthMm/heightMm; Core already converts them. For example, make t"},{"name":"resize_group","description":"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 / scalePerc"},{"name":"rotate_element","description":"Rotate the specified existing element in its print area using the existing rotation/placement options."},{"name":"align_element","description":"Align the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment. For a target already u"},{"name":"duplicate_element","description":"Duplicate the specified text or image in its print area using existing placement options."},{"name":"delete_element","description":"Delete the explicitly intended text/image element or selected elements. Resolve an ambiguous target before deletion; do not hide or shrink it to simulate remova"},{"name":"move_to_print_area","description":"Move a selected element to a named destination print area with the existing destination/target-area options."},{"name":"remove_background","description":"Use the existing background-removal workflow for a target image. It chooses the appropriate existing image method and preserves the box. Show the resulting garm"},{"name":"crop_image","description":"Crop the selected image using the existing crop options while keeping its print-area context."},{"name":"flip_image","description":"Flip the selected image horizontally or vertically. Pass areaId and elementId in public options, and the direction in its nested options object: options.options"},{"name":"restore_original_image","description":"Restore retained original image content for an explicit elementId and areaId, preserving the authored placement."},{"name":"invert_image","description":"Invert the selected image's colours using the existing image tool."},{"name":"add_keyline","description":"Apply a keyline to the explicit elementId and areaId. Use borderMode=thin_detail for garment-coloured detail thickening, or high_contrast with borderColour as h"},{"name":"sticker_cutout","description":"Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork."},{"name":"extract_artwork","description":"Use the existing extraction tool to recover printable artwork from a supplied garment mockup."},{"name":"replace_emoji","description":"Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope."},{"name":"apply_design_batch","description":"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 exp"},{"name":"validate_design","description":"Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving."},{"name":"preview_design","description":"Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer."},{"name":"ai_photoshoot","description":"Show the current design being worn using streetshirts' existing AI photoshoot. It is an illustrative image; the saved garment design remains the print authority"},{"name":"save_design","description":"Save the active design, or supply designs/variants/saveAllDesigns for multiple outputs. Returns immutable saved keys and visual-editor links. Final production s"},{"name":"create_checkout","description":"Save the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities. Omit designs to use approved sessio"},{"name":"email_design","description":"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 inf"}],"toolCount":40,"toolsHash":"8695556258ab91f1c81b0a2a5207b07ef425f224e67374886645d568093c2e83","serverName":"streetshirts","capabilities":["tools","resources"],"serverVersion":"17.0.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T11:32:44.307Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":135,"error":null,"detail":{"tools":[{"name":"discover_products","description":"Read the live garment catalogue, colours, sizes, print areas and recommendations. Use query fields search, category, fit, quality, quantity, country, market, lo"},{"name":"start_design_session","description":"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 "},{"name":"get_design_session","description":"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 se"},{"name":"end_design_session","description":"Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs."},{"name":"get_design_request","description":"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 com"},{"name":"choose_product","description":"Choose or change product, garment colour, sizes, quantities and print areas. Existing artwork is preserved. Use live product values; confirm final sizes and qua"},{"name":"create_design","description":"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 act"},{"name":"load_design","description":"Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session."},{"name":"change_design","description":"Apply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restor"},{"name":"create_design_variants","description":"Clone the active/base design into personalised designs. Supply areaId and variants with nameText, numberText, size, quantity and optional product/items. This re"},{"name":"add_text","description":"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 exi"},{"name":"update_text","description":"Replace existing text content or edit its style. This can overwrite the selected wording. Resolve targets from session state. For all text, include every intend"},{"name":"upload_image","description":"Upload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl. Include filename, contentType and fileType to identify the image, e.g. artwork.png, "},{"name":"add_image","description":"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"},{"name":"generate_artwork","description":"Generate artwork from a prompt using the existing streetshirts service. Use applyToDesign, singleResult and areaId when applying it to a shirt. Generation uses "},{"name":"replace_image","description":"Replace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested. This overwrites the selected imag"},{"name":"move_element","description":"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 "},{"name":"resize_element","description":"Resize the target in the specified print area. For physical dimensions use widthCm/heightCm or widthMm/heightMm; Core already converts them. For example, make t"},{"name":"resize_group","description":"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 / scalePerc"},{"name":"rotate_element","description":"Rotate the specified existing element in its print area using the existing rotation/placement options."},{"name":"align_element","description":"Align the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment. For a target already u"},{"name":"duplicate_element","description":"Duplicate the specified text or image in its print area using existing placement options."},{"name":"delete_element","description":"Delete the explicitly intended text/image element or selected elements. Resolve an ambiguous target before deletion; do not hide or shrink it to simulate remova"},{"name":"move_to_print_area","description":"Move a selected element to a named destination print area with the existing destination/target-area options."},{"name":"remove_background","description":"Use the existing background-removal workflow for a target image. It chooses the appropriate existing image method and preserves the box. Show the resulting garm"},{"name":"crop_image","description":"Crop the selected image using the existing crop options while keeping its print-area context."},{"name":"flip_image","description":"Flip the selected image horizontally or vertically. Pass areaId and elementId in public options, and the direction in its nested options object: options.options"},{"name":"restore_original_image","description":"Restore retained original image content for an explicit elementId and areaId, preserving the authored placement."},{"name":"invert_image","description":"Invert the selected image's colours using the existing image tool."},{"name":"add_keyline","description":"Apply a keyline to the explicit elementId and areaId. Use borderMode=thin_detail for garment-coloured detail thickening, or high_contrast with borderColour as h"},{"name":"sticker_cutout","description":"Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork."},{"name":"extract_artwork","description":"Use the existing extraction tool to recover printable artwork from a supplied garment mockup."},{"name":"replace_emoji","description":"Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope."},{"name":"apply_design_batch","description":"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 exp"},{"name":"validate_design","description":"Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving."},{"name":"preview_design","description":"Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer."},{"name":"ai_photoshoot","description":"Show the current design being worn using streetshirts' existing AI photoshoot. It is an illustrative image; the saved garment design remains the print authority"},{"name":"save_design","description":"Save the active design, or supply designs/variants/saveAllDesigns for multiple outputs. Returns immutable saved keys and visual-editor links. Final production s"},{"name":"create_checkout","description":"Save the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities. Omit designs to use approved sessio"},{"name":"email_design","description":"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 inf"}],"toolCount":40,"toolsHash":"8695556258ab91f1c81b0a2a5207b07ef425f224e67374886645d568093c2e83","serverName":"streetshirts","capabilities":["tools","resources"],"serverVersion":"17.0.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T04:27:04.360Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":123,"error":null,"detail":{"tools":[{"name":"discover_products","description":"Read the live garment catalogue, colours, sizes, print areas and recommendations. Use query fields search, category, fit, quality, quantity, country, market, lo"},{"name":"start_design_session","description":"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 "},{"name":"get_design_session","description":"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 se"},{"name":"end_design_session","description":"Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs."},{"name":"get_design_request","description":"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 com"},{"name":"choose_product","description":"Choose or change product, garment colour, sizes, quantities and print areas. Existing artwork is preserved. Use live product values; confirm final sizes and qua"},{"name":"create_design","description":"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 act"},{"name":"load_design","description":"Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session."},{"name":"change_design","description":"Apply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restor"},{"name":"create_design_variants","description":"Clone the active/base design into personalised designs. Supply areaId and variants with nameText, numberText, size, quantity and optional product/items. This re"},{"name":"add_text","description":"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 exi"},{"name":"update_text","description":"Replace existing text content or edit its style. This can overwrite the selected wording. Resolve targets from session state. For all text, include every intend"},{"name":"upload_image","description":"Upload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl. Include filename, contentType and fileType to identify the image, e.g. artwork.png, "},{"name":"add_image","description":"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"},{"name":"generate_artwork","description":"Generate artwork from a prompt using the existing streetshirts service. Use applyToDesign, singleResult and areaId when applying it to a shirt. Generation uses "},{"name":"replace_image","description":"Replace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested. This overwrites the selected imag"},{"name":"move_element","description":"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 "},{"name":"resize_element","description":"Resize the target in the specified print area. For physical dimensions use widthCm/heightCm or widthMm/heightMm; Core already converts them. For example, make t"},{"name":"resize_group","description":"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 / scalePerc"},{"name":"rotate_element","description":"Rotate the specified existing element in its print area using the existing rotation/placement options."},{"name":"align_element","description":"Align the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment. For a target already u"},{"name":"duplicate_element","description":"Duplicate the specified text or image in its print area using existing placement options."},{"name":"delete_element","description":"Delete the explicitly intended text/image element or selected elements. Resolve an ambiguous target before deletion; do not hide or shrink it to simulate remova"},{"name":"move_to_print_area","description":"Move a selected element to a named destination print area with the existing destination/target-area options."},{"name":"remove_background","description":"Use the existing background-removal workflow for a target image. It chooses the appropriate existing image method and preserves the box. Show the resulting garm"},{"name":"crop_image","description":"Crop the selected image using the existing crop options while keeping its print-area context."},{"name":"flip_image","description":"Flip the selected image horizontally or vertically. Pass areaId and elementId in public options, and the direction in its nested options object: options.options"},{"name":"restore_original_image","description":"Restore retained original image content for an explicit elementId and areaId, preserving the authored placement."},{"name":"invert_image","description":"Invert the selected image's colours using the existing image tool."},{"name":"add_keyline","description":"Apply a keyline to the explicit elementId and areaId. Use borderMode=thin_detail for garment-coloured detail thickening, or high_contrast with borderColour as h"},{"name":"sticker_cutout","description":"Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork."},{"name":"extract_artwork","description":"Use the existing extraction tool to recover printable artwork from a supplied garment mockup."},{"name":"replace_emoji","description":"Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope."},{"name":"apply_design_batch","description":"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 exp"},{"name":"validate_design","description":"Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving."},{"name":"preview_design","description":"Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer."},{"name":"ai_photoshoot","description":"Show the current design being worn using streetshirts' existing AI photoshoot. It is an illustrative image; the saved garment design remains the print authority"},{"name":"save_design","description":"Save the active design, or supply designs/variants/saveAllDesigns for multiple outputs. Returns immutable saved keys and visual-editor links. Final production s"},{"name":"create_checkout","description":"Save the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities. Omit designs to use approved sessio"},{"name":"email_design","description":"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 inf"}],"toolCount":40,"toolsHash":"8695556258ab91f1c81b0a2a5207b07ef425f224e67374886645d568093c2e83","serverName":"streetshirts","capabilities":["tools","resources"],"serverVersion":"17.0.14.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"discover_products","description":"Read the live garment catalogue, colours, sizes, print areas and recommendations. Use query fields search, category, fit, quality, quantity, country, market, lo"},{"name":"start_design_session","description":"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 "},{"name":"get_design_session","description":"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 se"},{"name":"end_design_session","description":"Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs."},{"name":"get_design_request","description":"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 com"},{"name":"choose_product","description":"Choose or change product, garment colour, sizes, quantities and print areas. Existing artwork is preserved. Use live product values; confirm final sizes and qua"},{"name":"create_design","description":"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 act"},{"name":"load_design","description":"Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session."},{"name":"change_design","description":"Apply the existing natural-language edit to the current design: text/content/style, image replacement, sizing, positioning, background removal, crop/flip/restor"},{"name":"create_design_variants","description":"Clone the active/base design into personalised designs. Supply areaId and variants with nameText, numberText, size, quantity and optional product/items. This re"},{"name":"add_text","description":"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 exi"},{"name":"update_text","description":"Replace existing text content or edit its style. This can overwrite the selected wording. Resolve targets from session state. For all text, include every intend"},{"name":"upload_image","description":"Upload imageFile, imageData/dataUrl/base64 or a supported public sourceUrl. Include filename, contentType and fileType to identify the image, e.g. artwork.png, "},{"name":"add_image","description":"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"},{"name":"generate_artwork","description":"Generate artwork from a prompt using the existing streetshirts service. Use applyToDesign, singleResult and areaId when applying it to a shirt. Generation uses "},{"name":"replace_image","description":"Replace the target's current artwork using an uploaded image, preserving its existing box unless a new placement is requested. This overwrites the selected imag"},{"name":"move_element","description":"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 "},{"name":"resize_element","description":"Resize the target in the specified print area. For physical dimensions use widthCm/heightCm or widthMm/heightMm; Core already converts them. For example, make t"},{"name":"resize_group","description":"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 / scalePerc"},{"name":"rotate_element","description":"Rotate the specified existing element in its print area using the existing rotation/placement options."},{"name":"align_element","description":"Align the target element using explicit placement coordinates in its existing coordinate space; instruction alone does not set alignment. For a target already u"},{"name":"duplicate_element","description":"Duplicate the specified text or image in its print area using existing placement options."},{"name":"delete_element","description":"Delete the explicitly intended text/image element or selected elements. Resolve an ambiguous target before deletion; do not hide or shrink it to simulate remova"},{"name":"move_to_print_area","description":"Move a selected element to a named destination print area with the existing destination/target-area options."},{"name":"remove_background","description":"Use the existing background-removal workflow for a target image. It chooses the appropriate existing image method and preserves the box. Show the resulting garm"},{"name":"crop_image","description":"Crop the selected image using the existing crop options while keeping its print-area context."},{"name":"flip_image","description":"Flip the selected image horizontally or vertically. Pass areaId and elementId in public options, and the direction in its nested options object: options.options"},{"name":"restore_original_image","description":"Restore retained original image content for an explicit elementId and areaId, preserving the authored placement."},{"name":"invert_image","description":"Invert the selected image's colours using the existing image tool."},{"name":"add_keyline","description":"Apply a keyline to the explicit elementId and areaId. Use borderMode=thin_detail for garment-coloured detail thickening, or high_contrast with borderColour as h"},{"name":"sticker_cutout","description":"Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork."},{"name":"extract_artwork","description":"Use the existing extraction tool to recover printable artwork from a supplied garment mockup."},{"name":"replace_emoji","description":"Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope."},{"name":"apply_design_batch","description":"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 exp"},{"name":"validate_design","description":"Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving."},{"name":"preview_design","description":"Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer."},{"name":"ai_photoshoot","description":"Show the current design being worn using streetshirts' existing AI photoshoot. It is an illustrative image; the saved garment design remains the print authority"},{"name":"save_design","description":"Save the active design, or supply designs/variants/saveAllDesigns for multiple outputs. Returns immutable saved keys and visual-editor links. Final production s"},{"name":"create_checkout","description":"Save the selected session designs and create one Shopify basket/checkout link with all intended names, sizes and quantities. Omit designs to use approved sessio"},{"name":"email_design","description":"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 inf"}],"package":null,"toolSurface":{"id":"ts_8tgr9guaacjv","endpointId":"ep_b2urubghveyc","hash":"8695556258ab91f1c81b0a2a5207b07ef425f224e67374886645d568093c2e83","toolCount":40,"serverName":"streetshirts","serverVersion":"5.0.1946.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-15T09:34:37.350Z","lastSeenAt":"2026-10-24T17:36:07.044Z","observations":34,"toolNames":["discover_products","start_design_session","get_design_session","end_design_session","get_design_request","choose_product","create_design","load_design","change_design","create_design_variants","add_text","update_text","upload_image","add_image","generate_artwork","replace_image","move_element","resize_element","resize_group","rotate_element","align_element","duplicate_element","delete_element","move_to_print_area","remove_background","crop_image","flip_image","restore_original_image","invert_image","add_keyline","sticker_cutout","extract_artwork","replace_emoji","apply_design_batch","validate_design","preview_design","ai_photoshoot","save_design","create_checkout","email_design"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_b2urubghveyc","url":"https://creation.streetshirts.com/agent/design/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-22T11:32:44.334Z","auth":{"observedAt":"2026-10-22T11:32:44.366Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-22T11:32:44.386Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"creation.streetshirts.com","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-14T10:37:06.000Z","validTo":"2026-12-13T11:36:59.000Z","daysToExpiry":49,"sanCount":1,"fingerprint256":"6F:99:9E:56:F1:38:FE:6F:F0:F9:E8:CC:09:72:EE:A4:9F:BC:11:FD:B9:0D:2F:BD:7B:51:C3:30:CD:C7:F5:22"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.streetshirts/creation","url":"https://registry.modelcontextprotocol.io/v0/servers/com.streetshirts%2Fcreation","firstSeenAt":"2026-10-15T09:23:34.113Z","fetchedAt":"2026-10-22T02:22:38.064Z","normalizedAt":"2026-10-22T02:22:38.064Z"}]},"firstSeenAt":"2026-10-15T09:23:34.113Z","updatedAt":"2026-10-24T17:40:29.146Z"}