Skip to main content
Glama

QR code reader

qr_read
Read-onlyIdempotent

Decode a QR code from an image file (PNG, JPEG, WebP, GIF, TIFF, AVIF, SVG) to get its text, content type, parsed fields, and safety notes for links without opening them.

Instructions

Read (decode) a QR code from an image file: photo, screenshot or scan (PNG, JPEG, WebP, GIF, TIFF, AVIF, SVG). Uses jsQR like the website, trying several sizes and inverted (light-on-dark) codes. Returns the text plus what it is (Link, Wi-Fi, Contact, Email, SMS, Phone, Location, Event or Text) with parsed fields, and safety notes for links (http, hidden @ user part, punycode lookalikes, bare IPs, odd ports). Links are never opened. Reads one code per image. Web version (with camera): https://s3eidat.github.io/qr-scanner/

Input Schema

NameRequiredDescriptionDefault
imageYesThe image containing a QR code: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/openWorld=false, yet the description adds real behavioral context: tries multiple sizes and inverted codes, never opens links, and returns safety notes for suspicious URLs. It stops short of describing failure behavior when no code is present in the image.

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 core verb and input are front-loaded and every major sentence carries information. Minor waste remains in 'Uses jsQR like the website' and the trailing web-version URL, which don't help an agent choose or call the tool.

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

Completeness5/5

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

There is no output schema, and the description compensates by describing the return payload: decoded text, a content classification (Link, Wi-Fi, Contact, Email, etc.), parsed fields, and link safety notes. That is sufficient for an agent to know what to expect without any structured output definition.

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?

The single parameter is fully described in the schema (local path or base64/data URI, relative to --root), so baseline is 3. The description earns an extra point by enumerating accepted image formats (PNG, JPEG, WebP, GIF, TIFF, AVIF, SVG), which the schema does not specify.

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

Purpose4/5

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

The description states a specific verb (read/decode) and resource (QR code) bound to an input type (image file), and enumerates the accepted formats. It implicitly separates itself from qr_generate/barcode_generate by being a decoder, but never names the nearest sibling (qr_wifi) or states the boundary explicitly.

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?

Usage is only implied — 'Read (decode) a QR code from an image file' tells an agent what the tool consumes, and 'Reads one code per image' is a limitation rather than selection guidance. There is no statement of when to prefer this over qr_wifi, qr_generate, or ai_ocr for extracting text from an image.

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