Skip to main content
Glama

QRStuff MCP Server

Transfer QR code

transfer_qrcode
DestructiveIdempotent

Use this only when the user made a QR code without signing in and wants it moved into their account. Needs the code ID or short-URL key. Changes ownership.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "transfer_qrcode"
  }
}

Input Schema

NameRequiredDescriptionDefault
idqrcodeNoID of the QR code to move. Required if shorturl_key is not given.
idprojectNoOptional project ID from `list_projects` to file it in.
shorturl_keyNoShort-URL key of the QR code to move. Required if idqrcode is not given.

Output Schema

NameRequiredDescriptionDefault
okNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • addedInput schema / properties / idproject / anyOf
      Added value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "type": "integer"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / idproject / default
      Previous value: -0New value: +null
    • changedInput schema / properties / idproject / description
      Previous value: -"Project ID where the QR code should be transferred. Optional."New value: +"Optional project ID from `list_projects` to file it in."
    • removedInput schema / properties / idproject / type
      Removed value: -"integer"
    • addedInput schema / properties / idqrcode / anyOf
      Added value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "type": "integer"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / idqrcode / default
      Previous value: -0New value: +null
    • changedInput schema / properties / idqrcode / description
      Previous value: -"QR code ID to transfer. Use if customer provides numerical ID."New value: +"ID of the QR code to move. Required if shorturl_key is not given."
    • removedInput schema / properties / idqrcode / type
      Removed value: -"integer"
    • addedInput schema / properties / shorturl_key / anyOf
      Added value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / shorturl_key / default
      Previous value: -""New value: +null
    • changedInput schema / properties / shorturl_key / description
      Previous value: -"Short URL key (path without leading slash). Use if customer provides short URL."New value: +"Short-URL key of the QR code to move. Required if idqrcode is not given."
    • removedInput schema / properties / shorturl_key / type
      Removed value: -"string"
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds real context beyond that by stating the effect precisely — ownership transfers from the anonymous creator to the account — which is the one thing the hints cannot convey. It omits whether the receiving account must be authenticated and what happens if the code is already owned.

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, no filler, with the restrictive usage condition and the effect front-loaded before the prerequisite. Every sentence carries independent information.

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?

For a mutation tool with annotations and an output schema, the description supplies the trigger condition, the required inputs, and the resulting effect. The remaining gap is auth/precondition handling (must the target user be signed in, what if the code is already transferred), which matters for a destructive transfer.

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%, including the either/or requirement between idqrcode and shorturl_key, so the schema does the heavy lifting. The description restates 'ID or short-URL key' without adding format or syntax detail, and never mentions the optional idproject parameter. Baseline 3 applies.

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?

Names a specific verb+resource (transfer a QR code) and scopes it tightly: only for QR codes created by an unsigned-in user that must be moved into an account. That scoping condition implicitly separates it from move_qrcode_to_project and update_qr_code, though no sibling is named outright.

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?

"Use this only when..." gives both the selecting condition and an explicit restriction, and "Needs the code ID or short-URL key" tells the agent what input the call depends on. It stops short of naming the closest alternative (move_qrcode_to_project) for codes that are already owned.

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