# streetshirts (remote · creation.streetshirts.com)

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

- Trust score: 69/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

## Components

- remote · `creation.streetshirts.com`: 69/100 (this document), [markdown](https://verifymcp.io/servers/com-streetshirts-creation/agent-design-mcp.md), [page](https://verifymcp.io/servers/com-streetshirts-creation/agent-design-mcp)

## Channel facts

- Endpoint: `https://creation.streetshirts.com/agent/design/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-18.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (end_design_session).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 76/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 6051 tokens (~147/item across 41 items; 40 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 17/100
  - Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 42 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the streetshirts MCP server?

streetshirts is a hosted endpoint at https://creation.streetshirts.com/agent/design/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

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

### Cursor

```json
{
  "mcpServers": {
    "com-streetshirts-creation": {
      "url": "https://creation.streetshirts.com/agent/design/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-streetshirts-creation": {
      "type": "http",
      "url": "https://creation.streetshirts.com/agent/design/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-streetshirts-creation]
url = "https://creation.streetshirts.com/agent/design/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-streetshirts-creation": {
      "type": "remote",
      "url": "https://creation.streetshirts.com/agent/design/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-streetshirts-creation --url 'https://creation.streetshirts.com/agent/design/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-streetshirts-creation:
    url: "https://creation.streetshirts.com/agent/design/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-streetshirts-creation": {
      "Transport": "http",
      "Url": "https://creation.streetshirts.com/agent/design/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-streetshirts-creation -t streamable-http -u 'https://creation.streetshirts.com/agent/design/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-streetshirts-creation": {
      "type": "http",
      "url": "https://creation.streetshirts.com/agent/design/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-17 (score 69, +1)

- [functional] Server version: 17.0.3.0 → 17.0.7.0

### 2026-10-16 (score 68, 0)

- [functional] Server version: 5.0.1946.0 → 17.0.3.0

### 2026-10-15 (score 68, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “add_keyline” rewrote its description, which is the text the model reads
- [security] Tool “add_text” rewrote its description, which is the text the model reads
- [security] Tool “align_element” rewrote its description, which is the text the model reads
- [security] Tool “create_design_variants” rewrote its description, which is the text the model reads
- [security] Tool “resize_group” rewrote its description, which is the text the model reads
- [security] Tool “add_keyline” is now declared destructive
- [security] Tool “align_element” is now declared destructive
- [security] Tool “choose_product” is now declared destructive
- [security] Tool “crop_image” is now declared destructive
- [security] Tool “extract_artwork” is now declared destructive
- [security] Tool “flip_image” is now declared destructive
- [security] Tool “invert_image” is now declared destructive
- [security] Tool “load_design” is now declared destructive
- [security] Tool “move_element” is now declared destructive
- [security] Tool “move_to_print_area” is now declared destructive
- [security] Tool “remove_background” is now declared destructive
- [security] Tool “replace_emoji” is now declared destructive
- [security] Tool “resize_element” is now declared destructive
- [security] Tool “resize_group” is now declared destructive
- [security] Tool “restore_original_image” is now declared destructive
- [security] Tool “rotate_element” is now declared destructive
- [security] Tool “sticker_cutout” is now declared destructive
- [functional] Server version: 5.0.1943.0 → 5.0.1946.0

### 2026-10-14 (score 67, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-13 (score 67)

First indexed and scored.

## MCP tools (40)

### `discover_products` (~82 tokens)

Find garments

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.

Input parameters:

- `query` (object): Existing catalogue filters: search, category, fit, quality, country, market, locale, quantity, sort, limit.

### `start_design_session` (~55 tokens)

Start a design session

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.

### `get_design_session` (~82 tokens)

Read your design session

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.

Input parameters:

- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `end_design_session` (~71 tokens)

Revoke your design session

Revoke this session's editing capability when the user asks to end it. Saved design and checkout links are separate outputs.

Input parameters:

- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `get_design_request` (~121 tokens)

Check a design request

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.

Input parameters:

- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `choose_product` (~147 tokens)

Choose a garment and sizes

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `create_design` (~145 tokens)

Create an independent design

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `load_design` (~137 tokens)

Open a saved design

Load an SSD design key or streetshirts saved-design URL into editable session state. Different saved designs can coexist in one session.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `change_design` (~221 tokens)

Edit a design from the customer's wording

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `create_design_variants` (~219 tokens)

Personalise team shirts

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `add_text` (~154 tokens)

Add text

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `update_text` (~160 tokens)

Edit text

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `upload_image` (~178 tokens)

Upload an image

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `add_image` (~147 tokens)

Add artwork to a print area

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `generate_artwork` (~153 tokens)

Generate AI artwork

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `replace_image` (~150 tokens)

Replace an image

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `move_element` (~147 tokens)

Move text or artwork

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `resize_element` (~159 tokens)

Resize text or artwork

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `resize_group` (~170 tokens)

Resize a design group

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `rotate_element` (~129 tokens)

Rotate an element

Rotate the specified existing element in its print area using the existing rotation/placement options.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `align_element` (~188 tokens)

Align an element

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `duplicate_element` (~127 tokens)

Duplicate an element

Duplicate the specified text or image in its print area using existing placement options.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `delete_element` (~140 tokens)

Delete an element

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `move_to_print_area` (~133 tokens)

Move artwork between print areas

Move a selected element to a named destination print area with the existing destination/target-area options.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `remove_background` (~142 tokens)

Remove an image background

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `crop_image` (~128 tokens)

Crop an image

Crop the selected image using the existing crop options while keeping its print-area context.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `flip_image` (~147 tokens)

Flip an image

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `restore_original_image` (~132 tokens)

Restore original artwork

Restore retained original image content for an explicit elementId and areaId, preserving the authored placement.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `invert_image` (~125 tokens)

Invert image colours

Invert the selected image's colours using the existing image tool.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `add_keyline` (~178 tokens)

Add a border or keyline

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `sticker_cutout` (~133 tokens)

Extract a sticker shape

Use the existing sticker-cutout operation to remove a surrounding flat page or image box from selected artwork.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `extract_artwork` (~129 tokens)

Extract artwork from a mockup

Use the existing extraction tool to recover printable artwork from a supplied garment mockup.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `replace_emoji` (~135 tokens)

Render emoji artwork

Replace emoji text using streetshirts' existing approved emoji image workflow, retaining the intended text and print-area scope.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `apply_design_batch` (~227 tokens)

Apply an ordered batch of native design edits

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `validate_design` (~132 tokens)

Validate a design

Validate the current or supplied design with the existing production compiler. Read the actual validation result before saving.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `preview_design` (~134 tokens)

Preview the garment

Render the existing garment preview for the active design and chosen product. Display the returned preview URL to the customer.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `ai_photoshoot` (~154 tokens)

Create an AI photoshoot

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `save_design` (~148 tokens)

Save designs and open the visual editor

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `create_checkout` (~190 tokens)

Create a combined checkout link

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

### `email_design` (~147 tokens)

Email a design link

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.

Input parameters:

- `options` (object): Existing arguments; advanced fields/aliases remain accepted. Catalogue/session results include the full designArgumentSchema.
- `requestId` (string, required): Generate a UUID for a new action. Reuse it only for retrying/polling that same action and payload. A new user edit needs a new UUID.
- `sessionToken` (string, required): The private expiring capability returned by start_design_session. Do not publish it.
- `subject` (string, required): The exact subject returned by start_design_session.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-streetshirts-creation/agent-design-mcp#diagnostics

## Score history

- 2026-10-18: 69
- 2026-10-17: 69
- 2026-10-16: 68
- 2026-10-15: 68
- 2026-10-14: 67
- 2026-10-13: 67

## Common questions

### What is the streetshirts MCP server?

streetshirts is an MCP server listed in the public MCP registry as com.streetshirts/creation. Design custom T-shirts, preview artwork, personalize team shirts and prepare a checkout link. This page covers its hosted endpoint (https://creation.streetshirts.com/agent/design/mcp).

### Is the streetshirts MCP server safe to use?

streetshirts scores 69 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the streetshirts MCP server expose?

streetshirts exposes 40 tools: discover_products, start_design_session, get_design_session, end_design_session, get_design_request, and 35 more. Their descriptions and schemas cost roughly 5,796 tokens of context every time the server is loaded.

### Does the streetshirts MCP server require authentication?

No. We connected to streetshirts without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the streetshirts MCP server still maintained?

streetshirts is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://creation.streetshirts.com/agent/design/mcp
- Website: https://streetshirts.com/pages/ai-t-shirt-design
- Changelog RSS feed: https://verifymcp.io/servers/com-streetshirts-creation/agent-design-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-streetshirts-creation/agent-design-mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-streetshirts-creation/agent-design-mcp
