QRMint by Harlo
Server Details
Static QR codes and 1-D barcodes (Code 128, EAN-13, UPC-A, EAN-8) as SVG, PNG or data URL.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a distinct role: two generators split cleanly by symbology (barcode vs QR), one analyzer that explicitly returns no image, and one payload builder that returns only a string. The only soft overlap is that qr_generate accepts a payload object while qr_payload_build also produces payload strings, but the descriptions make the boundary reasonably clear (build/validate first, then generate).
All four names follow the same resource_action snake_case convention (barcode_generate, qr_generate, qr_inspect, qr_payload_build). Prefixes consistently group by resource, making the set predictable to scan.
Four tools is well-scoped for a static QR/barcode minting service, with no filler or near-duplicates. Every tool maps to a distinct step in the workflow (build payload, inspect data, generate QR, generate barcode).
Generation is covered for both QR and the listed barcode symbologies, plus payload building and capacity inspection for QR. The surface is asymmetric: there is no barcode equivalent of qr_inspect or qr_payload_build, and no decode/validate-an-image operation, which are minor but real gaps.
Available Tools
4 toolsbarcode_generateGenerate a 1-D barcodeARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| bg | No | ||
| fg | No | ||
| data | Yes | ||
| size | No | ||
| format | No | ||
| height | No | ||
| margin | No | ||
| symbology | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, and the description adds genuinely new behavioral facts: check digits are auto-added or verified, output is format-valid but not GS1-registered, and scannability depends on contrast, print size, quiet zone and reader. These are limitations an agent could not derive from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four compact sentences with no filler: capabilities first, then input convention, then exclusions, then caveats. Each clause carries distinct information and the most decision-relevant facts (symbologies, formats, static-only) are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly tells the agent what comes back (SVG/PNG/data URL) and sets expectations about validity and scannability. It is nearly complete for an 8-parameter tool, with the only gap being the unaddressed styling and sizing parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 parameters, and the description only adds meaning for three of them: symbology, format and data (with its check-digit convention). The bg, fg, size, height and margin parameters receive no semantic guidance in either place, so compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening states the exact symbologies (Code 128, EAN-13, UPC-A, EAN-8) and output formats (SVG/PNG/data URL), so the resource and result are unambiguous. Combined with the title's verb, an agent can distinguish this from the qr_* siblings (2-D) without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Static codes only: no redirects, no dynamic/editable codes, no scan analytics" gives explicit when-not guidance, and the check-digit rule tells the caller how to supply EAN/UPC data. It stops short of naming qr_generate as the alternative for 2-D codes, so sibling routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qr_generateGenerate a static QR codeARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| bg | No | ||
| fg | No | ||
| ecc | No | ||
| data | No | ||
| size | No | ||
| format | No | ||
| margin | No | ||
| payload | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantive behavioral context beyond them: per-format size ceilings, the SVG-only bulk endpoint with item/count limits, the warning that EAN/UPC output is format-valid only and not GS1 registration, and an explicit non-guarantee of scannability due to contrast, print size, quiet zone and reader. That is unusually rich disclosure for a generator.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences with zero filler, front-loaded with the core output formats and size limits, then constraints, then caveats. Each sentence adds distinct information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and 8 optional parameters, the description still conveys the return shape (SVG markup, PNG base64, or data URL) and the salient limits. The main gap is the relationship between data and payload and the defaults for bg/fg/ecc/margin, which an agent must guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 parameters, so the description must compensate; it explains the format parameter's three values and the size ceiling that varies by format, which is genuinely useful. But bg, fg, ecc, margin and the data-vs-payload distinction (mutually exclusive? which wins?) are never addressed, leaving over half the parameters undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Generate a static QR code') and immediately narrows scope: SVG default up to 2000 px, PNG base64 or data URL up to 1024 px, from data or a payload object. The 'static codes only: no redirects, no dynamic/editable codes, no scan analytics' clause cleanly separates it from dynamic-QR style siblings, though it never names qr_payload_build, qr_inspect or barcode_generate directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-not conditions (no redirects, no dynamic/editable codes, no analytics) and notes the bulk path with its own limits (SVG-only, ≤50, ≤256 bytes per item). It does not tell the agent when to prefer qr_payload_build to construct a payload first or qr_inspect to verify output, so routing against siblings is only partially solved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qr_inspectInspect QR capacityBRead-onlyIdempotentInspect
Return QR version, ECC, module count, capacity used % and quiet-zone/density warnings for data. No image.
| Name | Required | Description | Default |
|---|---|---|---|
| ecc | No | ||
| data | No | ||
| margin | No | ||
| payload | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is fully covered structurally. The description adds only the returned-signal list and the 'No image' confirmation, without disclosing validation behavior details (e.g. whether capacity % fails hard or warns).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the return payload and ends with the key exclusion ('No image'). No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, zero schema coverage on four params, and a nested payload object, the description leaves the agent guessing at input semantics and return shape. The output-list sentence helps but does not compensate for the undocumented nested object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for four parameters, including a nested `payload` object, an `ecc` enum, and a `margin` integer. The description alludes only loosely to 'ECC' and 'quiet-zone' without mapping them to parameter names, and does not explain the relationship between `data` and `payload` or acceptable `margin` units.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Return) and enumerates exactly what is returned: version, ECC, module count, capacity %, and quiet-zone/density warnings. The 'No image' clause distinguishes it from the sibling qr_generate, though that differentiation is implicit rather than by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no exclusions, and does not name any alternative. 'No image' hints at the boundary with qr_generate but never states 'use qr_generate for an image, use this to validate capacity.' The agent must infer the workflow context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qr_payload_buildBuild a QR payload stringARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safe, read-only, idempotent, closed-world profile, so the description's added value is stating that it validates and returns a string rather than an image — genuinely useful given there is no output schema. It stops short of saying what happens on an invalid payload (error vs. partial string).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the verb and type list front-loaded and the return-shape caveat at the end; every clause carries information. No filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool taking a nested, schema-undocumented object across eight payload types, the description supplies only one worked example, so an agent cannot reliably construct vcard, geo, mailto, tel or sms payloads. Validation semantics (what constitutes invalid, what error looks like) are also unstated, leaving substantial gaps for this level of schema complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single parameter is a free-form nested object whose schema only pins the 'type' enum, leaving per-type keys undefined. The wifi example (ssid, password) adds real meaning the schema lacks, but it documents only one of eight types, so mailto/vcard/geo/sms required fields remain guesswork.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (build and validate) and resource (QR payload string), and enumerates the supported payload types, which is more than the title alone conveys. It implicitly separates itself from qr_generate with 'Returns the string only', but never names a sibling outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent must infer that this is the step before qr_generate/qr_inspect and that it is the right tool when you want a payload string rather than an image. There is no explicit when-to-use, when-not-to-use, or named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
barcode_generate - First observed
qr_generate - First observed
qr_inspect - First observed
qr_payload_build
Related MCP Connectors
Generate barcodes and QR codes in 35 symbologies: QR, Data Matrix, PDF417, EAN-13, Code 128, more.
Generate static QR codes that never expire, as PNG images or SVG. No account or API key needed.
Generate QR codes (URL, WiFi, vCard) and barcodes as PNG/SVG
Generate static QR codes (URL, WiFi, vCard, pixel art) and decode QR images. Codes never expire.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceGenerate QR codes and create, edit and track dynamic (editable) QR codes with scan analytics, folders, style themes and branded subdomain management. Free REST API with an OpenAPI spec alongside; every tool takes a free API key.12AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables generating QR codes from URLs or text without an API key, and creating trackable short links whose printed QR codes can be re-pointed after printing.48 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables encoding 100+ barcode symbologies and decoding common 1D/2D formats, plus terminal QR codes.1MIT
- AlicenseAqualityAmaintenanceEnables AI clients to generate QR codes for URLs, WiFi networks, contacts, text and email, and to list saved codes and read scan analytics by time range, device, OS and approximate location. Connects over a remote streamable HTTP endpoint with no installation required, though the analytics and account tools require an API key.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.