Skip to main content
Glama

create_qr

Destructive

Create a dynamic QR code for a public HTTP(S) destination. Supply a UUID request_key to safely retry authenticated creation. Anonymous creation is limited; ALWAYS show its returned claim_url to the user. Account creation uses existing plan limits.

Input Schema

NameRequiredDescriptionDefault
labelNo
designNo
destinationYes
request_keyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / properties / design
      Added value: +{
      +  "properties": {
      +    "bg": {
      +      "pattern": "^#[a-f0-9]{6}$",
      +      "type": "string"
      +    },
      +    "fg": {
      +      "pattern": "^#[a-f0-9]{6}$",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / destination / maxLength
      Added value: +4096
    • addedInput schema / properties / destination / minLength
      Added value: +1
    • addedInput schema / properties / label / maxLength
      Added value: +200
    • addedInput schema / properties / request_key
      Added value: +{
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
  2. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the mutation profile (readOnly=false, destructive=true, openWorld=true, idempotent=false), so the bar is lower. The description still adds genuine behavioral context beyond them: retry safety via request_key, anonymous-creation limits, the claim_url the caller must surface, and plan-limit enforcement. The idempotency-via-request_key wording is in mild tension with idempotentHint=false, but this is conditional (only authenticated + only when the key is supplied) rather than a contradiction.

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?

Four tight sentences, front-loaded with the core purpose and no filler. The retry/claim_url/plan-limit clauses each carry distinct information rather than restating the schema.

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?

There is no output schema, so the description's disclosure of the returned claim_url is valuable, and it covers the authenticated vs anonymous paths plus plan limits. Gaps remain around the design/label parameters and failure modes, but for a create tool this is close to complete.

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 0%, so the description carries the burden. It clarifies destination ('public HTTP(S) destination') and request_key (UUID for safe retry), but says nothing about label or the nested design object's bg/fg color fields, leaving half the parameters undocumented in both places.

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?

States a specific verb+resource ('Create a dynamic QR code') with a real constraint baked in ('for a public HTTP(S) destination'). It distinguishes dynamic-creation from the render_qr/list_qr_codes siblings implicitly, but never explicitly contrasts them, so it stops short of a 5.

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?

Gives operational conditions – authenticated creation should pass a UUID request_key, anonymous creation is limited – which is real usage guidance. However it never names or routes to sibling alternatives (render_qr, simulate_scan, get_qr_code), so the agent must infer when this tool is the right choice.

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.

Resources