Skip to main content
Glama

qrtap_code_stats

Retrieve aggregated anonymous scan statistics for one code, including total scans, a per-day series, and the mobile/tablet/desktop device split. Set a date range to inspect a specific period.

Instructions

Aggregated anonymous scan statistics for ONE code: total scans, a per-day series and the device split (mobile/tablet/desktop). Bots are excluded; QRTap stores no visitor IPs or user-agents, so no per-person data exists to return. Bound the window with from/to when the user asks about a period. For a whole batch use qrtap_group_stats; for plain totals across many codes use qrtap_list_codes with include_stats.

Input Schema

NameRequiredDescriptionDefault
toNoOptional range end (exclusive), ISO 8601.
fromNoOptional range start (inclusive), ISO 8601, e.g. 2026-07-01T00:00:00Z.
codeIdYesThe code id (UUID), as returned by qrtap_create_code, qrtap_create_codes_bulk or qrtap_list_codes. This is the internal id, not the short_url slug.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.4

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses that bots are excluded and that no IPs or user-agents are stored, so no per-person data can be returned. That is real behavioral context an agent could not infer. It stops short of stating auth requirements or aggregation granularity limits.

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 sentences, no filler, front-loaded with what the tool returns, then the privacy note, then the alternatives. Every clause does work.

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?

There is no output schema, yet the description names the returned fields (total, per-day series, device split), so an agent knows what to expect. With only one required parameter and full schema coverage, nothing material is missing.

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 coverage is 100%, so the schema already defines codeId, from and to with ISO 8601 formats. The description reinforces the intent of from/to ('bound the window ... when the user asks about a period'), which is mild added value, but adds no new syntax or constraints. Baseline 3 applies.

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 and resource ('aggregated anonymous scan statistics for ONE code') and enumerates exactly what is returned: total scans, per-day series, device split. The uppercase 'ONE' plus named sibling alternatives make it unmistakable against qrtap_group_stats and qrtap_list_codes.

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 routing: use this for a single code, use qrtap_group_stats for a whole batch, use qrtap_list_codes with include_stats for plain totals across many codes. It also says when to supply from/to ('when the user asks about a period'). Both the when and the when-not are covered.

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