# Create a real skateboard deck from your own AI artwork

Connect a remote MCP client to:

`https://skateboardpersonalizado.com/api/mcp`

Transport: **Streamable HTTP**, no account or API key required. This is a public,
rate-limited design import service. It does not access accounts or place orders.
SDK protocol support: 2025-11-25 (also negotiates older supported versions).

## Workflow

1. Call `get_deck_spec` for dimensions, supported formats and the current price.
2. Create **flat artwork** with your own agent's image tools, or compose text and
   shapes. Do not generate a photo of an already manufactured skateboard.
3. Call `create_deck` with exactly one of `image_base64` or `composition`.
4. Show the user the picture that comes back with the result: the deck assembled
   in 3D with trucks and wheels. Say the trucks and wheels are for reference (sold
   separately, delivered unassembled). Then give them the returned `viewUrl`: it
   opens on the same assembled view, turns in 3D, shows the flat design, lets them
   edit it in the browser and choose whether to buy.

We never call an AI model. Generation uses whatever model/tool access your
client provides. MCP does not grant image-generation access through a subscription.
If your client cannot transfer image files, use a composition or send the user
to [the upload page](https://skateboardpersonalizado.com/crear-con-ia).

## Composition example (create_deck arguments)

```json
{
  "locale": "en",
  "composition": {
    "background": "#101820",
    "elements": [
      {"type":"rect","x":80,"y":500,"width":840,"height":2700,"fill":"#D6F64A"},
      {"type":"ellipse","x":200,"y":800,"width":600,"height":600,"fill":"#101820"},
      {"type":"text","x":550,"y":2450,"text":"MARTINA","font":"Anton","fontSize":180,"rotation":-90,"fill":"#101820"}
    ]
  }
}
```

Coordinates: 1000 × 3734. Rectangles/ellipses use top-left x/y; text uses the
centre of its baseline, with rotation around that point. Fonts: Anton, Bangers,
Righteous. Use six-digit hex colours. Maximum 32 elements; 80 characters per text.
The silhouette clips the nose, tail and edges; keep important content inboard.

## Image example

Pass actual file bytes as `image_base64`, optionally prefixed with
`data:image/png;base64,`. Do not ask the language model to invent base64. Formats:
static PNG/JPEG/WebP, maximum 8 MiB and 40 million decoded pixels. Recommended
artwork dimensions: 2643 × 9869. `fit: "contain"` preserves the image and fills
the remaining area with `background`; `fit: "cover"` crops to fill the deck.

An agent with filesystem/network access can also upload the actual file:

```sh
curl --fail-with-body https://skateboardpersonalizado.com/api/agent-designs/import \
  -F image=@artwork.png -F fit=contain -F locale=en
```

The multipart endpoint returns the same type of result as the MCP tool. It
does not fetch remote image URLs. Supported link locales: es, ca, en.

## Results and limitations

The result includes `viewUrl`, `editUrl`, `previewUrl`, `assembledPreviewUrl`,
`assembledPreviewNote` and `warnings`, plus an image content item (JPEG): the deck
assembled in 3D. Show warnings to the user, particularly low source resolution or
cropping. The multipart endpoint returns the same fields, without the image item.

Designs are **unlisted, not private**: anyone with the link can view the image
and open a copy in the editor. They are not added to the public gallery. Images
and compositions enter the editor as one image layer; individual text/shape
elements are not separately editable in V1. The user can reposition the image
and add text or layers. Creating a design never places an order or takes payment.

Each successful call creates a new design. Do not automatically retry an
ambiguous successful creation. Limits per server process: 10 creations/hour/IP,
100/hour total, 500/day total and 2 concurrent renderings. Observe Retry-After
when present. Results are stored; V1 has no automatic expiry or MCP deletion tool.
