Skip to main content
Glama

quality_qr_create

Create a new trackable QR code saved to your Quality QR account. Use this when the user wants to generate a QR code for a URL, WiFi network, contact card, calendar event, phone number, email, SMS, restaurant menu, app download link, or social media profile. The QR code is persisted with scan tracking and analytics. Returns an inline SVG image of the QR code.

Input Schema

NameRequiredDescriptionDefault
dataNoType-specific structured data. Use instead of 'content' for complex types. WiFi: {ssid: string, password?: string, encryption?: 'WPA'|'WEP'|'nopass', hidden?: boolean}. vCard: {firstName: string, lastName: string, email?: string, phone?: string, mobile?: string, organization?: string, title?: string, website?: string, address?: {street?, city?, state?, zip?, country?}}. Event: {title: string, startDate: string (YYYY-MM-DD), startTime?: string (HH:mm), endDate?: string, endTime?: string, location?: string, description?: string, allDay?: boolean}. Social: {platforms: [{name: string, url: string, label: string}], profileName?: string, bio?: string}. Email: {to: string, subject?: string, body?: string}. Phone: {number: string}. SMS: {number: string, message?: string}.
nameNoA human-readable name for the QR code, e.g. 'Office WiFi' or 'Spring Menu 2026'. Auto-generated as 'MCP: {type} {date}' if omitted.
typeYesQR code content type. 'url' for websites, 'wifi' for network credentials, 'vcard' for contact cards, 'email' for pre-filled emails, 'phone' for tap-to-call, 'sms' for pre-filled texts, 'text' for plain text, 'event' for calendar events, 'pdf' for document links, 'menu' for restaurant menus, 'app-store' for app download links, 'social' for social media profiles.
designNoOptional visual customization for the QR code.
domainNoBusiness plan: one of your active custom domains (e.g. 'qr.yourbrand.com') to print the short link on. Pass null for quality-qr.app. Omit to use your default custom domain, if you set one. Applies to url, pdf, menu and app-store codes.
contentNoThe content to encode. Required for url, text, pdf, menu, and app-store types. For url types, provide the full URL including https://. For other types, use the 'data' parameter instead.
isDynamicNoSet to true to create a dynamic QR code whose destination URL can be changed later without reprinting the physical code. Only works for URL-based types (url, pdf, menu, app-store, social). Default: false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / domain
      Added value: +{
      +  "description": "Business plan: one of your active custom domains (e.g. 'qr.yourbrand.com') to print the short link on. Pass null for quality-qr.app. Omit to use your default custom domain, if you set one. Applies to url, pdf, menu and app-store codes.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that the code is persisted to the account, that scans are tracked with analytics, and that the return is an inline SVG image. It still omits auth/plan requirements and any rate-limit or side-effect caveats, keeping it short of a 5.

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

Conciseness5/5

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

Three sentences, none wasted: capability, usage trigger, then behavioral/return note. The creation intent is front-loaded before the type enumeration.

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?

No output schema exists, but the description compensates by stating the return ('inline SVG image') and the persistence/analytics behavior. It is complete enough to invoke correctly, though it says nothing about failure modes or plan-gated parameters like dynamic codes and custom domains.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all seven parameters, including the complex 'data' object, design colors, and domain behavior. The description adds no parameter syntax or format detail beyond restating the content types, so the baseline 3 applies.

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?

States a specific verb and resource ('Create a new trackable QR code') and immediately distinguishes it from its CRUD siblings (list/get/update/delete/analytics) by emphasizing creation and persistence. An agent can tell what this tool produces without opening the schema.

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

Usage Guidelines4/5

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

The second sentence gives an explicit usage trigger ('Use this when the user wants to generate a QR code for...') and enumerates the twelve content types, matching the enum. It lacks any when-not guidance or explicit naming of siblings, but the trigger context is unambiguous.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.