Skip to main content
Glama

Prince of Post

Print a Royal Mail QR code as a label

create_royal_mail_label
Read-onlyIdempotent

Turns a Royal Mail QR code (the kind you show at a Post Office: Vinted digital labels, eBay Royal Mail QR codes, ASOS returns and other Royal Mail "Labels to Go" QR codes) into a 6x4 shipping label the user can print at home instead of queuing. If the user has an image or PDF of the QR code, call this with no arguments: a panel lets them pick the file, which is read on their device. Only pass qr_text if you already have the exact decoded text from a QR decoder. Never transcribe a QR code from an image.

Input Schema

NameRequiredDescriptionDefault
qr_textNoThe exact text a QR decoder returned for the QR code, unchanged, including every space. It is fields like QRCode=..., 1DBarcode=... and SendersDetails=... separated by |. Omit this if you only have an image of the QR code.

Output Schema

NameRequiredDescriptionDefault
postByNoThe date to post the parcel by, dd/mm/yyyy.
statusYesready: the label was made from qr_text. needs_file: the user still has to pick their QR code in the panel.
siteUrlNoPrince of Post, where the user can drop their QR code if the panel does not appear.
postcodeNoLast line of the delivery address, normally the postcode.
printUrlNoOpens the label on Prince of Post, ready to print at its true 6x4 size.
recipientNoFirst line of the delivery address.
trackingNumberNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the description's added value is the no-argument panel flow and the note that the file is read on the user's device — a privacy detail that explains why no server-side upload is needed. It stops short of describing the produced label's format or how the result is surfaced, though the output schema covers return values.

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?

Three sentences, front-loaded with the outcome and followed by the routing rule and the guardrail. The first sentence is heavy with stacked examples inside parentheses, which slows scanning slightly, but every clause carries discriminative information.

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?

For a single optional parameter with an output schema, everything an agent needs is present: when to call bare, when to supply qr_text, what the output is (a printable 6x4 label), and the one prohibition that prevents bad input. No relevant gap remains.

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?

Schema coverage is 100%, so the baseline is 3, but the description goes further by constraining qr_text's provenance ('exact decoded text from a QR decoder', 'never transcribe') and explaining the omit case. That is meaning beyond the shape of the string that the schema alone conveys.

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?

The description names a specific verb+resource transformation: converting a Royal Mail QR code into a 6x4 shipping label the user can print. The parenthetical examples (Vinted digital labels, eBay QR codes, ASOS returns, 'Labels to Go') pin down exactly which QR codes are in scope, so an agent knows what this tool is for without touching 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 Guidelines5/5

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

It gives explicit routing rules: call with no arguments when the user has an image or PDF (a file-picker panel handles it), and only pass qr_text when the decoded text is already in hand. It also states a hard exclusion — 'Never transcribe a QR code from an image' — which is the exact failure mode an agent would otherwise fall into.

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