Skip to main content
Glama
strait-link

Strait MCP server

Official
by strait-link

Get a QR code for a link

get_link_qr
Read-onlyIdempotent

Generates a print-ready QR code (PNG or SVG) for a link slug, with colour, logo, size and scan-tracking overrides, and returns the exact encoded URL.

Instructions

Read-only. A print-ready QR code for a link, in the workspace's QR style (Dashboard → Settings → QR codes); the options override it for this one code. Returns the image (PNG, or SVG markup) and the exact URL in the code. By default scans add utm_source=qr, so they show as the qr channel in analytics. Refused (400) if the colours have under 3:1 contrast.

Input Schema

NameRequiredDescriptionDefault
logoNoPut the app icon in the middle (default: the workspace setting)
sizeNoWidth and height in pixels, default 512
slugYesThe link's slug: the part after the link domain, e.g. `summer` in https://hilltop.strait.link/summer
colorNoCode colour as hex, e.g. 1f2937
trackNoAdd utm_source=qr so scans count as the qr channel (default true)
formatNopng (default) or svg
backgroundNoBackground colour as hex, e.g. ffffff

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.1

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses concrete behavior: the return is an image (PNG or SVG markup) plus the exact encoded URL, scans default to utm_source=qr (a real side effect on analytics), and calls are refused with 400 when colour contrast is under 3:1. These are exactly the traits annotations cannot convey.

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?

Effectively front-loaded ('Read-only.' then the resource), and every clause (return format, tracking default, contrast error) carries distinct information. Slightly dense but no wasted sentences.

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?

With no output schema, the description steps up to describe the return (PNG/SVG plus the exact URL) and states the error condition and tracking default. Nothing an agent needs to call it correctly is missing.

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 schema already documents each parameter; the description adds the relational meaning that options override workspace defaults for this one code and reinforces the contrast rule tied to colours. This is real added context beyond the schema's per-field descriptions.

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+resource ('A print-ready QR code for a link') and frames it as read-only. An agent can immediately tell this apart from get_link or get_analytics by the QR/image output it produces.

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?

The description explains that the per-call options override the workspace QR style, which clarifies behavior, but it never says when to choose this over siblings like get_link or when a QR is the appropriate artifact. Usage is implied through the defaults discussion rather than stated.

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