Skip to main content
Glama

QR code generator

qr_generate
Read-onlyIdempotent

Generate QR codes as SVG or PNG for links, text, Wi-Fi, vCards, email, SMS, calls, or map locations, with size, color, shape, and optional logo controls.

Instructions

Make a QR code as SVG or PNG for a link, plain text, Wi-Fi login, contact card (vCard 3.0), email, SMS, phone call or map location. Same encoder as the website (qrcode.js: versions 1-40, error correction L/M/Q/H, smallest version that fits, best mask), UTF-8 so Arabic/emoji work. Options: size in px, quiet-zone margin, colours, square/rounded/dots modules, and an optional centre logo (forces level H). Returns the file path, the exact encoded text, version, module count and contrast warnings. Max about 2.9 KB of data at level L. Web version: https://s3eidat.github.io/qr-studio/

Input Schema

NameRequiredDescriptionDefault
toNoemail: recipient address.
eccNoError correction: L 7%, M 15% (default), Q 25%, H 30%. A logo forces H.M
urlNourl: web address; "https://" is added when no scheme is given.
bodyNoemail: message body.
logoNoOptional centre logo image (path or base64, max 5 MB). Covers ~22% of the code; error correction becomes H.
modeNoEncoding mode. "byte" (UTF-8, what the website uses), "auto" (numeric/alphanumeric when the text allows, smaller codes), or force one.byte
sizeNoImage width/height in px (default 1024).
ssidNowifi: network name.
textNotext: any text (encoded exactly as given).
typeNoWhat the code holds. Default: "url" if url is given, else "text".
emailNovcard: email address.
labelNogeo: optional place label (?q=).
phoneNovcard/sms/tel: phone number.
shapeNoModule shape. Rounded/dots also round the three finder squares.square
formatNoOutput format.png
hiddenNowifi: the network is hidden.
marginNoQuiet zone in modules (default 4; under 2 may not scan).
outputNoWhere to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
addressNovcard: address.
companyNovcard: company.
messageNosms: message text.
subjectNoemail: subject.
versionNoQR version 1-40 (size), or 0 = smallest that fits (default).
websiteNovcard: website.
jobTitleNovcard: job title.
lastNameNovcard: last name.
latitudeNogeo: latitude, -90..90.
passwordNowifi: password (ignored for open networks).
securityNowifi: WPA (WPA/WPA2/WPA3, default), WEP, or nopass (open).
firstNameNovcard: first name.
longitudeNogeo: longitude, -180..180.
backgroundNoBackground colour, hex (default #ffffff).#ffffff
foregroundNoModule colour, hex (default #0d0f12).#0d0f12
returnBase64NoAlso return the output as base64 in the result (only for small files). Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a read-only, idempotent, non-open-world operation, but the description adds substantial behavioral context beyond them: the underlying encoder and version range, UTF-8 support for Arabic/emoji, logo forcing error correction H, practical data limit (~2.9 KB at L), and exact return fields including contrast warnings. This is unusually rich disclosure for a generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and supported payload types, followed by encoding details, options, and return values in a logical flow. It is dense but nearly every sentence carries useful information; the only minor cost is that the paragraph is long for a single description block.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 34-parameter tool with no output schema, the description does the important supplementary work: it explains the return payload (file path, encoded text, version, module count, contrast warnings), the default output folder behavior, and practical constraints like data size and logo/ECC interaction. Parameter-level details are fully covered by the schema, so only deeper combination semantics are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description still adds value by summarizing the option groups and, importantly, noting cross-parameter effects such as a logo forcing level H and the maximum data capacity. It does not document every parameter, but the schema already handles the rest in detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Make a QR code as SVG or PNG") and enumerates the payload types it supports, from URL to vCard to geo. An agent can immediately distinguish it from unrelated file or text utilities and understand exactly what it produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context by listing supported QR content types and options, but it never mentions when to prefer a sibling tool such as qr_wifi or barcode_generate. The overlap with qr_wifi is left for the agent to infer, so the routing guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools