Skip to main content
Glama

QRStuff MCP Server

Get top performing location

get_top_performing_location
Read-onlyIdempotent

Use this when the user asks which country scans come from most. For a full country list use get_scans_by_country. Read-only.

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": "get_top_performing_location"
  }
}

Input Schema

NameRequiredDescriptionDefault
scopeNoaccount for everything, project for one project (needs idproject), qrcode for one code (needs idqrcode and its idproject).account
end_dateNoEnd of the period, YYYY-MM-DD. Leave empty for today. Always send it when the user names a period.
idqrcodeNoQR code ID from `list_qrcodes`. Required when scope is qrcode. Never guess an ID.
idprojectNoProject ID from `list_projects`. Required when scope is project or qrcode. Never guess an ID.
start_dateNoStart of the period, YYYY-MM-DD. Leave empty for the last 30 days. Always send it when the user names a period.

Output Schema

NameRequiredDescriptionDefault
scansNo
total_scanNo
country_codeNo
country_nameNo
percentage_of_totalNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / end_date / description
      Previous value: -"End date YYYY-MM-DD. REQUIRED when the user asks for a specific period; do not omit if they mention dates. Defaults to today only when no range given."New value: +"End of the period, YYYY-MM-DD. Leave empty for today. Always send it when the user names a period."
    • changedInput schema / properties / idproject / description
      Previous value: -"Project ID. Required when scope=project or qrcode."New value: +"Project ID from `list_projects`. Required when scope is project or qrcode. Never guess an ID."
    • changedInput schema / properties / idqrcode / description
      Previous value: -"QR code ID. Required when scope=qrcode."New value: +"QR code ID from `list_qrcodes`. Required when scope is qrcode. Never guess an ID."
    • changedInput schema / properties / scope / description
      Previous value: -"Scope: account (default), project, or qrcode"New value: +"account for everything, project for one project (needs idproject), qrcode for one code (needs idqrcode and its idproject)."
    • changedInput schema / properties / start_date / description
      Previous value: -"Start date YYYY-MM-DD. REQUIRED when the user asks for a specific period; do not omit if they mention dates. Defaults to 30 days ago only when no range given."New value: +"Start of the period, YYYY-MM-DD. Leave empty for the last 30 days. Always send it when the user names a period."
  2. First observed

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the trailing 'Read-only' adds nothing. The one piece of added context is implicit: this returns a single top location rather than a list, which shapes how the agent should present results. It says nothing about how scope selection changes the answer or what happens when there is no scan data, gaps the annotations do not cover.

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?

Two short sentences, with the primary use case front-loaded and the alternative second. The trailing 'Read-only' is redundant against readOnlyHint=true and is the only wasted token.

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?

An output schema exists, so return values need not be described, and the schema fully documents all five parameters. The description supplies routing and intent framing, which is most of the remaining burden. It is only slightly thin on behavior beyond the read-only profile, e.g. what 'top' means when there are ties or no data.

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%: the schema already explains `scope`'s enum semantics and dependency on `idproject`/`idqrcode`, date formats, defaults, and the 'never guess an ID' constraint. The description adds no parameter guidance at all, so 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?

The description gives a concrete verb-in-context ('the user asks which country scans come from most'), which makes the tool's output unambiguous, and it names the sibling `get_scans_by_country` for the bulk case. It never states the operation in the tool's own terms (e.g. 'returns the single top country by scan count'), so differentiation relies on a user-intent framing rather than a direct statement of what is returned.

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?

Explicit when-to-use ('when the user asks which country scans come from most') plus an explicit alternative and its condition ('For a full country list use `get_scans_by_country`'). An agent can route between the two without inspecting either schema.

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