Skip to main content
Glama

Build a geo: URI QR

qr_build_geo
Read-onlyIdempotent

Encode a latitude/longitude pair into a geo: URI QR. Scanning opens the location in the device's default maps app.

Input Schema

NameRequiredDescriptionDefault
latitudeYesLatitude in decimal degrees (-90 to 90).
longitudeYesLongitude in decimal degrees (-180 to 180).

Output Schema

NameRequiredDescriptionDefault
formatYesFile format the engine rendered: png, svg, jpg, webp or pdf.
payloadYesThe payload string the engine built and the QR encodes (WIFI:..., BEGIN:VCARD..., geo:...).
filePathNoPDF in the stdio package only: local temp file the PDF was written to.
mimeTypeNoMIME type of the rendered file (the engine's contentType).
sizeBytesNoSize of the rendered file in bytes, as reported by the engine.
resourceUriNoPDF on the remote server only: URI of the embedded resource block that carries the file.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "filePath": {
      +      "description": "PDF in the stdio package only: local temp file the PDF was written to.",
      +      "type": "string"
      +    },
      +    "format": {
      +      "description": "File format the engine rendered: png, svg, jpg, webp or pdf.",
      +      "type": "string"
      +    },
      +    "mimeType": {
      +      "description": "MIME type of the rendered file (the engine's contentType).",
      +      "type": "string"
      +    },
      +    "payload": {
      +      "description": "The payload string the engine built and the QR encodes (WIFI:..., BEGIN:VCARD..., geo:...).",
      +      "type": "string"
      +    },
      +    "resourceUri": {
      +      "description": "PDF on the remote server only: URI of the embedded resource block that carries the file.",
      +      "type": "string"
      +    },
      +    "sizeBytes": {
      +      "description": "Size of the rendered file in bytes, as reported by the engine.",
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "format",
      +    "payload"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already cover readOnly, idempotent, non-destructive and closed-world behavior, so the safety profile is fully carried by structured data. The description adds one genuinely useful fact beyond them – that scanning opens the coordinates in the device's default maps app – but says nothing about encoding precision, URI formatting, or error behavior for out-of-range input.

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?

Two short sentences, zero filler. The purpose is front-loaded and the scan-behavior detail follows immediately after, so nothing needs to be re-read.

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 two-parameter builder with a 100%-covered schema and an output schema, the description covers what the tool is and what the artifact does. The only minor gap is that it doesn't mention whether the returned QR payload is an image, string, or both – though the output schema presumably resolves that.

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%, with range bounds and units documented per parameter, so the schema does the heavy lifting. The description adds no syntax, formatting, or unit guidance beyond what latitude/longitude already declare, which is the expected baseline.

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?

The description names a specific verb (encode), a specific resource (latitude/longitude pair), and the output artifact (geo: URI QR). That distinguishes it from the vcard/wifi template builders by resource, though it never names a sibling explicitly for extra disambiguation.

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?

Usage is only implied: you call this when you want a scannable location QR. There is no explicit when-to-use condition, no when-not-to-use, and no pointer to qr_generate or qr_build_vcard as alternatives for other payload types.

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