Static QR codes and 1-D barcodes (Code 128, EAN-13, UPC-A, EAN-8) as SVG, PNG or data URL.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. 'Bearer <key>' for higher limits. Works without a key.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Code 128, EAN-13, UPC-A or EAN-8 as SVG/PNG/data URL. EAN/UPC: pass digits without check digit to have it added, or with it to verify. Static codes only: no redirects, no dynamic/editable codes, no scan analytics. EAN/UPC output is format-valid (check digit) and is NOT GS1 registration. Scannability is not guaranteed (contrast, print size, quiet zone and reader all matter).
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http qrmint https://qrmint.mike-tusa.workers.dev/mcp
Headers
Authorization (optional, not in the config above): Optional. 'Bearer <key>' for higher limits. Works without a key.Code 128, EAN-13, UPC-A or EAN-8 as SVG/PNG/data URL. EAN/UPC: pass digits without check digit to have it added, or with it to verify. Static codes only: no redirects, no dynamic/editable codes, no scan analytics. EAN/UPC output is format-valid (check digit) and is NOT GS1 registration. Scannability is not guaranteed (contrast, print size, quiet zone and reader all matter).
| Argument | Type | Description |
|---|---|---|
| bg | string | |
| fg | string | |
| data* | string | |
| size | integer | |
| format | string | |
| height | integer | |
| margin | integer | |
| symbology* | string |
{
"type": "object",
"required": [
"symbology",
"data"
],
"properties": {
"bg": {
"type": "string"
},
"fg": {
"type": "string"
},
"data": {
"type": "string"
},
"size": {
"type": "integer",
"maximum": 2000,
"minimum": 64
},
"format": {
"enum": [
"svg",
"png",
"dataurl"
],
"type": "string"
},
"height": {
"type": "integer"
},
"margin": {
"type": "integer"
},
"symbology": {
"enum": [
"code128",
"ean13",
"upca",
"ean8"
],
"type": "string"
}
}
}Generate a static QR code as SVG (default, up to 2000 px), PNG base64 or data URL (up to 1024 px) from data or a payload object. Bulk (/v1/qr/bulk, ≤50) is SVG-only, ≤256 bytes per item. Static codes only: no redirects, no dynamic/editable codes, no scan analytics. EAN/UPC output is format-valid (check digit) and is NOT GS1 registration. Scannability is not guaranteed (contrast, print size, quiet zone and reader all matter).
| Argument | Type | Description |
|---|---|---|
| bg | string | |
| fg | string | |
| ecc | string | |
| data | string | |
| size | integer | |
| format | string | |
| margin | integer | |
| payload | object |
{
"type": "object",
"properties": {
"bg": {
"type": "string"
},
"fg": {
"type": "string"
},
"ecc": {
"enum": [
"L",
"M",
"Q",
"H"
],
"type": "string"
},
"data": {
"type": "string"
},
"size": {
"type": "integer",
"maximum": 2000,
"minimum": 64
},
"format": {
"enum": [
"svg",
"png",
"dataurl"
],
"type": "string"
},
"margin": {
"type": "integer"
},
"payload": {
"type": "object"
}
}
}Return QR version, ECC, module count, capacity used % and quiet-zone/density warnings for data. No image.
| Argument | Type | Description |
|---|---|---|
| ecc | string | |
| data | string | |
| margin | integer | |
| payload | object |
{
"type": "object",
"properties": {
"ecc": {
"enum": [
"L",
"M",
"Q",
"H"
],
"type": "string"
},
"data": {
"type": "string"
},
"margin": {
"type": "integer"
},
"payload": {
"type": "object"
}
}
}Build and validate a QR payload string for type text/url/wifi/vcard/mailto/tel/sms/geo (e.g. {"type":"wifi","ssid":"Cafe","password":"..."}). Returns the string only.
| Argument | Type | Description |
|---|---|---|
| payload* | object |
{
"type": "object",
"required": [
"payload"
],
"properties": {
"payload": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"text",
"url",
"wifi",
"vcard",
"mailto",
"tel",
"sms",
"geo"
],
"type": "string"
}
}
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 1, 2026.