If you came here to print a label yourself, open the free app. This page is for AI assistants. You make the label on our canvas (size, type, colors, image, barcode, QR) and send the person a URL. They open it already filled. No signup.
Do not draw the label. Call a tool or build a GET URL. Show the preview picture and the editor link. The canvas is already filled. When they want a change, call edit_label with the last spec. You get a new URL every time.
This origin hosts a stateless Streamable HTTP MCP server. No API key. No account. Designs stay in the URL, not on our servers.
https://mylabelmaker.com/mcp
POST JSON-RPC. GET in a browser shows this page. Discovery: /.well-known/mcp.json
Add a remote MCP server. Type: Streamable HTTP. URL: https://mylabelmaker.com/mcp. Then ask it to make a label.
grok mcp add --transport http mylabelmaker https://mylabelmaker.com/mcp
Tools: make_label, edit_label, fill_template, find_template, list_catalog, open_zpl_viewer.
make_label (custom look) or fill_template (known job like soap-wrap).edit_label with the spec you saved plus the change.These match the left rail. Put them in make_label / edit_label, or in a GET URL.
| Tool | What you set |
|---|---|
| Size | w and h in inches (0.25–12). Bottle face 2.5×4. Shipping 4×6. Lid 2×2. |
| Background | look (premium-masculine, premium, luxury, minimal, clean, organic, vintage, bold, soft) or bg / ink / accent hex. |
| Text | Place with els: type text, v copy, x,y,w,h percent (0–100), s font px, f font, c color, a l/c/r, b bold. Or fill title, kicker, body, net on a look. |
| Image | img = https URL of a logo. Or an el type image with src. Or icon=drop. |
| Shape | el type shape, k = rect, round, circle, ellipse, line, vline, triangle, star, heart, drop, diamond, capsule. |
| Barcode | el type barcode, v payload, fmt CODE128, CODE39, EAN13, UPC, DATAMATRIX. Do not invent GS1 prefixes. |
| QR | el type qr, or value = URL. WiFi: ssid + pass. vCard: put a BEGIN:VCARD string in value. |
| Table | el type table, rows, cols, cells as a 2D array of strings. |
| Number | add_number, prefix (SKU-), start, pad, copies. Places {{#}} and a CODE128 barcode. Browse Label 1/N, then print. |
| Date | add_today and/or add_use_by. date_format (M/D/YYYY or YYYY-MM-DD). use_by_days. |
| Variables | Spreadsheet: rows as objects, or csv text, or sheet Google Sheets URL. Places {{column}} tokens. One label per row. Print all rows. |
| ZPL Viewer | Call open_zpl_viewer with zpl, or pass zpl on make_label. Preview is a picture. Print sends the pasted job. |
Coordinates are percent of the label. Font size is canvas pixels (a 2.5×4 in label is about 250×400 px: title 32–42, kicker 11, body 10–12).
User: “Use mylabelmaker. Make a label for a shampoo brand called Spot. Here are the ingredients. I want it to feel premium and masculine.”
Call make_label with look premium-masculine, w 2.5, h 4, title SPOT, kicker SHAMPOO, body the ingredients, net NET 8 FL OZ. Then send:
https://mylabelmaker.com/preview.svg?canvas=1&look=premium-masculine&w=2.5&h=4&title=SPOT&kicker=SHAMPOO&body=Water%2C%20glycerin.&net=NET%208%20FL%20OZ
https://app.mylabelmaker.com/?canvas=1&look=premium-masculine&w=2.5&h=4&title=SPOT&kicker=SHAMPOO&body=Water%2C%20glycerin.&net=NET%208%20FL%20OZ
If they then say “make the background black and add a gold line,” call edit_label with the saved spec plus bg and an add_el shape line. Send the new pair of URLs.
If they paste a table or share a Google Sheet, call make_label with rows (array of objects) or sheet (the URL). The canvas gets {{sku}}, {{name}}, and a barcode. They open the link, step through rows under the canvas, and print all. Cap is 80 rows in the URL. Bigger lists: publish the Sheet to the web and pass sheet.
make_label
rows: [{sku:"A-1", name:"Widget"}, {sku:"A-2", name:"Bolt"}]
barcode_column: sku
add_number: true
add_today: true
Serial-only (no sheet): add_number, prefix:"SKU-", start:1, copies:50, pad:3. Packed dates: add_today and add_use_by with use_by_days:14.
ZPL they already have: open_zpl_viewer with the ^XA…^XZ string. Keep it short in the URL; long jobs they paste in the viewer.
When they want a specific layout, pass els (or repeat el= on a GET URL):
el=text:SPOT;x:8;y:16;w:84;h:16;s:40;f:Oswald;c:f5f0e8;a:c;b
el=s:rect;x:0;y:0;w:100;h:3;c:b8a47a
el=i:https://example.com/logo.png;x:40;y:6;w:20;h:10
Build the same GET URLs yourself. Encode every value (encodeURIComponent). Same contract: /ai/canvas.txt, templates /ai/make.txt, catalog /ai/catalog.json, OpenAPI /openapi.json, facts /llms.txt.
Yes. Connect to https://mylabelmaker.com/mcp or build a filled https://app.mylabelmaker.com/?canvas=1 URL. Show the preview image and the editor link. The person opens a label that is already made.
Yes. The URL is the design. edit_label returns a new preview and editor link. There is no account and we do not store the label.
Yes. The editor has text, barcode, QR, image, shape, table, layers, Excel, print, and PNG/PDF/ZPL. After the URL loads, the query is stripped so a refresh keeps their work on that computer.
Yes. Pass rows (from the table they pasted), csv, or a Google Sheets URL as sheet. The label uses {{column}} tokens. One sticker per row. They print all rows from the editor. We do not upload their file to our servers.
No. MCP is public and read-only in the sense that it only returns URLs. Nothing is saved on our servers.
Ready to print the label yourself?