Skip to main content
Glama

QRStuff MCP Server

Generate short link QR code

generate_short_link_qrcode
DestructiveIdempotent

Use this when the user wants a QR code for one of their short links. Creates the link's dynamic QR code, or updates it if it exists, and returns its ID; fetch the image with get_qr_code_by_id. Options: name, project, format, colours.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "idshorturl": "<idshorturl>"
    },
    "name": "generate_short_link_qrcode"
  }
}

Input Schema

NameRequiredDescriptionDefault
optionsNoOptional QR code settings: name, project ID, format and colours.
idshorturlYesShort link ID from `list_short_links`. Never guess an ID.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / options / anyOf
      Previous value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ]
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "description": "Optional settings when generating a QR code for a short link.",
      +        "properties": {
      +          "colours": {
      +            "anyOf": [
      +              {
      +                "description": "Color customization for a QR code.",
      +                "properties": {
      +                  "bg": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "Background hex color (e.g. '#FFFFFF')."
      +                  },
      +                  "fg": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "Foreground/dots hex color (e.g. '#000000')."
      +                  },
      +                  "finder": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "Finder pattern hex color."
      +                  },
      +                  "finder_eye": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null,
      +                    "description": "Finder eye hex color."
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Color customization for the QR code."
      +          },
      +          "format": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Output image format, e.g. 'png', 'svg', 'eps', or 'pdf'."
      +          },
      +          "idproject": {
      +            "anyOf": [
      +              {
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Project ID to assign this QR code to (from list_projects)."
      +          },
      +          "name": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Descriptive name for the QR code in the account."
      +          }
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Added

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, so 'creates ... or updates it if it exists' largely restates structured data. The description does not explain what the update overwrites despite destructiveHint=true being set, nor what 'dynamic QR code' implies for existing customization — the one behavior an agent most needs warned about.

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 short sentences: trigger first, create-or-update behavior second, follow-up call and options last. No filler, no restatement of the title.

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?

With an output schema present and full parameter coverage, the description only needs to frame invocation, and it does so completely — including the required idshorturl prerequisite and the retrieval handoff to get_qr_code_by_id. The remaining gap is the unspecified destructive/overwrite semantics.

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% and each option (name, format, colours, idproject) is already documented in-schema with examples and cross-references. The description's 'Options: name, project, format, colours' is a summary of the schema, adding no syntax or default behavior beyond it, so 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 ('Creates the link's dynamic QR code, or updates it if it exists') and scopes it to 'one of their short links', which separates it from siblings like generate_qr_code, create_static_qr_code and generate_link_page_qrcode. An agent can identify the right tool 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?

Opens with an explicit trigger ('Use this when the user wants a QR code for one of their short links') and gives the follow-up step ('fetch the image with get_qr_code_by_id'), which routes the agent through a two-call flow. It stops short of naming when NOT to use it or which sibling handles the other QR cases.

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