AI design builder
Design with your AI assistant
Connect an assistant that supports MCP, such as Claude, ChatGPT, Cursor or Codex, to Linx. Describe a personalized design in plain language and it builds the template for you: text, pictures, options, looks and fonts. You review the result in the builder.
Make a birthday shirt. The child's name should look bubbly and friendly, and customers type it themselves.
Done. I used the Kids rounded look and a 20-letter limit, so the name always fits.
-
Describe, don't draw
Say who the design is for, what customers change and how it should feel. The assistant writes the template.
-
Looks and fonts built in
26 ready text looks and 47 fonts, drawn by the same renderer that makes the print.
-
You stay in control
Templates stay private to your account. Open any of them in the builder and edit by hand.
Connect your assistant
One address works for every app. Assistants on the web sign in with a button; tools on your computer use an access token. Either way your assistant can only manage your own templates and images, never your password.
Server address
https://mg.shirtero.com/api/v1/mcp
No token needed. In your assistant, add a custom connector (an MCP server), paste the address above, then sign in to Linx and choose Allow access. You can disconnect it any time in My workspace, under AI agents.
ChatGPT, step by step
- Open Settings, then Plugins, and choose Add.
- Choose Create custom MCP server. Name it Linx and paste the server address.
- Set the sign-in method to OAuth, tick the box that says you understand the risk of a custom server, and choose Create as plugin.
- Choose Continue to Linx, sign in and choose Allow access.
TipChatGPT asks before it uses a tool. Choose Allow low-risk so it stops asking for the tools that only read, and keep being asked for the ones that change your templates.
Claude, step by step
- Open Customize, then Connectors, and choose Add, then Add custom connector.
- Name it Linx, paste the server address and choose Continue.
- Keep Sign in now and Register automatically selected, and choose Add.
- Choose Connect, sign in to Linx and choose Allow access.
TipClaude asks before it uses a tool. For the tools that only read, such as listing your templates, you can choose Always allow; keep being asked for the ones that change something.
Menu names differ between versions and change from time to time. Look for plugins, connectors or custom MCP servers in your assistant's settings.
Claude Code, Cursor, Codex, Gemini CLI, VS Code and Claude Desktop use an access token. Pick your tool:
Claude Code
Run this once in your terminal.
claude mcp add --transport http linx https://mg.shirtero.com/api/v1/mcp --header "Authorization: Bearer YOUR_ACCESS_TOKEN"
Cursor
Add this to ~/.cursor/mcp.json.
{
"mcpServers": {
"linx": {
"url": "https://mg.shirtero.com/api/v1/mcp",
"headers": {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
}
}
}
Codex
Add this to ~/.codex/config.toml and export the token in your shell.
[mcp_servers.linx]
url = "https://mg.shirtero.com/api/v1/mcp"
bearer_token_env_var = "LINX_ACCESS_TOKEN"
# in your shell:
# export LINX_ACCESS_TOKEN=YOUR_ACCESS_TOKEN
Gemini CLI
Add this to ~/.gemini/settings.json.
{
"mcpServers": {
"linx": {
"httpUrl": "https://mg.shirtero.com/api/v1/mcp",
"headers": {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
}
}
}
VS Code
Add this to .vscode/mcp.json.
{
"servers": {
"linx": {
"type": "http",
"url": "https://mg.shirtero.com/api/v1/mcp",
"headers": {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
}
}
}
Claude Desktop
Add this to claude_desktop_config.json. It uses the mcp-remote helper, which needs Node.js.
{
"mcpServers": {
"linx": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mg.shirtero.com/api/v1/mcp",
"--header",
"Authorization:${LINX_AUTH}"
],
"env": {
"LINX_AUTH": "Bearer YOUR_ACCESS_TOKEN"
}
}
}
}
Replace YOUR_ACCESS_TOKEN with a token you create in My workspace, under AI agents: you choose what it may do and how long it lasts, and you can revoke it at any time. Apps differ a little between versions; if a setup does not match, ask your assistant to adapt it, since every app only needs the address and an Authorization header.
Adding your own images
Your assistant picks the way that works for it. On your computer it can send a file straight to Linx. If it cannot reach Linx from where it runs (some web assistants only allow certain sites), it asks Linx to download a public image link, or it gives you a page where you drop the files yourself. To let it send files directly instead, allow mg.shirtero.com in its network settings (in Claude: Settings, Capabilities, code execution, additional allowed domains; menu names change).
Try a prompt
Talk to your assistant like a designer you hire. Your assistant already knows how to use Linx: it reads the guide and the tools by itself. These are only examples.
-
A personalized template
Use the Linx tools. Read the template guide, then create a personalized family sign: the family name in the Varsity look at the bottom and a name for each child, with customers choosing 1 to 3 kids. Check it, show me a summary and wait for my OK before you save it.
-
A birthday design
Use the Linx tools. Create a birthday t-shirt template: the child's name in the Kids rounded look and the age in a big Sticker number underneath. Customers type the name and the age. Keep it simple and centered.
-
Restyle what you have
Use the Linx tools. List my templates, open the one called "Family names" and give every text layer the Western look. Keep the words and the positions as they are, and tell me what you changed.
-
A wedding gift
Use the Linx tools. Make a wedding gift template with two names in the Elegant script look and the date underneath in Signature. Customers type both names and the date. Use a warm, quiet layout.
Tip: say who the design is for, what customers change, which look to use, and ask to see it before it is saved.
Text looks
A font with its effects, as one choice. Each picture below is drawn by the renderer that makes the print. Name a look in your prompt, or copy its code.
-
70s groovy
Retro, hippie, vintage summer
"look": "groovy-70s" -
Varsity
College, team, sports, family name
"look": "varsity" -
Sticker
Fun, kids, cartoon, bold short words
"look": "sticker" -
Western
Ranch, rodeo, country, saloon
"look": "western" -
Neon lines
Night, music, 80s, arcade
"look": "neon-lines" -
Elegant script
Wedding, mom, love, names
"look": "elegant-script" -
Signature
Light handwritten names and dates
"look": "signature" -
Kids rounded
Babies, kids, cute animals
"look": "kids-rounded" -
Cartoon
Comics, jokes, loud short words
"look": "cartoon" -
Gothic
Metal, tattoo, Halloween, old world
"look": "gothic" -
Y2K chrome
Futuristic, gaming, techno, 2000s
"look": "y2k-chrome" -
Luxury gold
Anniversary, celebration, premium
"look": "luxury-gold" -
Pixel
Retro games, gamer, 8-bit
"look": "pixel" -
Slab poster
Coffee, shop signs, vintage ads
"look": "slab-poster" -
Chalk hand
Teacher, farmhouse, cafe menu
"look": "chalk-hand" -
Diner shade
50s diner, motel, roadside signs
"look": "diner-shade" -
Bold block
Gym, statements, big words
"look": "bold-block" -
Marker
Handmade, street, casual notes
"look": "marker" -
Glitter pop
Birthday, party, princess, sparkle
"look": "glitter-pop" -
Outline
Streetwear, sports, bold modern words
"look": "outline-street" -
Surf script
Beach, summer, surf, tropical
"look": "surf-script" -
Typewriter
Travel, memories, notes, minimal
"look": "typewriter" -
Stencil
Military, outdoors, team numbers
"look": "army-stencil" -
Editorial
Fashion, bridal party, magazine headlines
"look": "editorial-serif" -
Baseball script
Baseball, softball, team names, vintage sports
"look": "baseball-script" -
Handwritten
Notes, kids, casual thank-yous
"look": "handwritten"
47 fonts for templates
Type your own text to see it in every font, the way shoppers will. These are the exact files that print, so what you see here is what is printed.
-
Happy Birthday Mia
- 300
- 400
- 600
- 700
- 800
-
Happy Birthday Mia
- 300
- 400
- 600
- 700
- 800
-
Happy Birthday Mia
- 300
- 400
- 600
- 700
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
- 600
- 700
- 800
- 900
-
Happy Birthday Mia
- 300
- 400
- 600
- 700
- 800
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
- 600
- 700
-
Happy Birthday Mia
- 400
- 600
- 700
-
Happy Birthday Mia
- 400
- 700
-
Happy Birthday Mia
- 400
- 700
-
Happy Birthday Mia
- 400
- 700
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
- 700
-
Happy Birthday Mia
- 400
- 700
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
- 700
- 900
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
- 700
-
Happy Birthday Mia
- 400
- 600
- 700
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
- 800
-
Happy Birthday Mia
- 400
-
Happy Birthday Mia
- 400
- 700
What a template can hold
A template is a print design that customers personalize before they buy. Your assistant describes it, Linx checks every detail and the builder opens the result like any template you made by hand.
-
Text customers type
Names, dates and messages, with a length limit so they always fit. Pick a font and a text look, set size and color, and let customers change the font or color if you want.
-
Pictures to choose from
Upload artwork once and reuse it. Offer a gallery of pictures in groups, such as dogs and cats, or let customers choose none.
-
Options that add or remove parts
Ask how many kids or pets are on the design and show one name per choice. Up to 4 such questions, with up to 10 items each.
-
Backgrounds
Up to 10 backgrounds for customers to switch between, or none at all.
- Print size
- 500 to 8,000 px per side, 72 to 600 dpi
- Layers per template
- up to 30
- Your templates
- up to 200 per account
- Pictures
- PNG, JPEG or WebP, 32 to 8,000 px, 15 MB each, kept exactly as uploaded
You stay in control
- Templates made by an assistant are private to your account and are not shown in the design library.
- Open any of them in the builder and edit it by hand. If you change a template there, the assistant is told to reload before it edits again, so it never overwrites your work.
- Through this connection your assistant can only manage your own templates and images. It cannot see other accounts.
- Every request is checked before it is saved, and every problem is explained in one line.
Tools
The tools your assistant sees once it is connected. It chooses between them by itself.
Learn what is possible Read the rules and check a draft before anything is saved. 3 tools
-
get_template_guideReads onlyRead the template guide
The rules for writing a template, one section at a time.
-
list_fontsReads onlyList fonts and looks
The fonts and the ready-made text looks the assistant may use.
-
validate_templateReads onlyCheck a template spec
Checks a draft and explains every problem in one line, before anything is saved.
Pictures Add the images your templates use, in the way that works for your assistant, and look after them. 7 tools
-
list_assetsReads onlyList your images
The images in your library, with the templates that use them.
-
create_upload_urlSaves changesGet a link to upload an image
A one-time upload link, so the picture itself never passes through the chat.
-
import_asset_from_urlSaves changesImport an image from a web address
Our server downloads a public image link for you. Nothing to send, and your assistant needs no access to us.
-
create_upload_pageSaves changesGet a page where the person adds images
A page you open to drop your own files straight into your library, when your assistant cannot send them itself.
-
upload_assetSaves changesUpload a tiny image
For very small files only. Larger pictures use the upload link.
-
update_assetSaves changesRename an image
Changes the name of a picture in your library.
-
delete_assetDeletesDelete an image
Removes a picture that no template uses.
Templates Create, change, copy and remove your templates. 8 tools
-
list_templatesReads onlyList your templates
Your templates, newest first, with search.
-
get_templateReads onlyRead a template
Any of your templates as a readable spec, including ones made by hand.
-
create_templateSaves changesCreate a template
Saves a new template. Safe to retry: the same request never creates two.
-
update_templateSaves changesReplace a template
Saves a whole new version of a template.
-
patch_templateSaves changesEdit part of a template
Small edits such as a new font, color or text, without resending everything.
-
duplicate_templateSaves changesCopy a template
Makes a private copy to try changes on.
-
delete_templateDeletesDelete a template
Removes one of your templates.
-
render_previewReads onlyPreview a template
Draws a template the way a customer sees it, so your assistant can check the design and fix it before you open it.
Example template
This is the whole description of a small family sign: a headline, a family name and one name per child, with customers choosing how many kids. Your assistant writes and checks this for you.
{
"name": "Family names",
"description": "A family sign with the family name and one name per child.",
"canvas": { "width": 4500, "height": 5400, "dpi": 300 },
"layers": [
{
"key": "headline", "type": "text", "label": "Headline",
"x": 450, "y": 300, "width": 3600, "height": 520,
"text": "Our Family", "font": "Pacifico", "font_size": 380, "color": "#2a6244",
"customer": { "max_length": 20 }
},
{
"key": "family_name", "type": "text", "label": "Family name",
"x": 450, "y": 4500, "width": 3600, "height": 520,
"text": "The Smiths", "font": "Pacifico", "font_size": 340,
"customer": { "required": true, "max_length": 24, "change_font": false }
}
],
"quantity_blocks": [
{
"key": "kids", "label": "Number of kids", "options": [1, 2, 3], "default": 2,
"items": [
{
"key": "kid_one", "label": "Kid 1", "visible_for": [1, 2, 3],
"layers": [
{
"key": "kid_1_name", "type": "text", "label": "Kid 1 name",
"x": 450, "y": 2400, "width": 1100, "height": 320,
"text": "Anna", "font": "Pacifico", "font_size": 220,
"customer": { "max_length": 12 }
}
]
},
{
"key": "kid_two", "label": "Kid 2", "visible_for": [2, 3],
"layers": [
{
"key": "kid_2_name", "type": "text", "label": "Kid 2 name",
"x": 1700, "y": 2400, "width": 1100, "height": 320,
"text": "Mark", "font": "Pacifico", "font_size": 220,
"customer": { "max_length": 12 }
}
]
},
{
"key": "kid_three", "label": "Kid 3", "visible_for": [3],
"layers": [
{
"key": "kid_3_name", "type": "text", "label": "Kid 3 name",
"x": 2950, "y": 2400, "width": 1100, "height": 320,
"text": "Lily", "font": "Pacifico", "font_size": 220,
"customer": { "max_length": 12 }
}
]
}
]
}
]
}
How to read it
-
canvasSize and resolutionThe print area in pixels and the resolution it is printed at.
-
layersWhat is always thereTexts (or pictures) every customer sees. Each has a place on the print, a font and a size.
-
customerWhat the buyer may changeInside a layer: the longest text allowed, whether it is required and whether the font can change.
-
quantity_blocksChoose how manyA drop-down such as the number of kids. Each item has its own layers and shows only for the options listed in visible_for.
Ready to build with your assistant?
Get your access token and describe your first design.