Public leaderboard

Public assessment

benswel/qr-agent-core (qr-for-agent)

qr-for-agent · v0.12.0 · scanned

What changed in the harness

Selection accuracy 98→100, token cost up 2%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

19.4 / 30

19.4 out of 30
03Economics

12.2 / 20

12.2 out of 20
04Discoverability

12.6 / 20

12.6 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

27 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
create_qr_code
no_return_description
Create a new managed QR code with optional custom styling. The QR image encodes a short URL that redirects to your target URL, and you can change the target URL later without regenerating the QR image. Supports custom colors, dot/corner shapes, logo embedding, gradients, frames, expiration dates, scheduled URL switching, and GTM tracking. Returns the created QR code record with its short ID, the short redirect URL, current target URL, metadata, and timestamps.
update_qr_destination
no_return_description
Change where an existing QR code redirects to without regenerating the QR image: the QR image stays the same, but scanning it now goes to the new URL. Ideal for updating campaigns, fixing broken links, or A/B testing. You can also update the label, expiration (pass null to remove), scheduled URL switch, and GTM tracking. Returns the updated QR code record with its short ID, new target URL, metadata, and timestamps.
delete_qr_code
no_return_description
Permanently delete a QR code and all of its scan analytics; the short URL stops working immediately and the action cannot be undone. Returns a confirmation of the deletion with the deleted short ID.
bulk_create_qr_codes
no_return_description
Create up to 50 QR codes in a single request; each item accepts the same options as create_qr_code (target URL, label, styling, logo, expiration, scheduled URL). The quota check is all-or-nothing: if the batch would exceed your plan limit, no QR codes are created. Ideal for product catalogs, event lists, or batch operations. Returns the created QR code records, each with its short ID, short redirect URL, and metadata.
bulk_update_qr_codes
no_return_description
Update up to 50 QR codes in a single request, changing their target URLs, labels, expiration, and scheduled URLs. Items with non-existent short_ids are reported as not_found without failing the whole batch. Returns per-item results indicating whether each update succeeded or the short_id was not found.
bulk_delete_qr_codes
no_return_description
Delete up to 50 QR codes and their scan analytics in a single request. Items with non-existent short_ids are reported as not_found without failing the whole batch. Returns per-item results indicating whether each QR code was deleted or the short_id was not found.
create_vcard_qr
params_unexplained no_return_description
Create a QR code that encodes a contact card (vCard); scanning it with a phone camera prompts the user to save the contact. Supports standard vCard fields (first/last name, organization, job title, contact email, contact phone number, website, street address, notes) plus custom colors, dot/corner styles, logo embedding, and decorative frames with optional CTA text (text color defaults to #ffffff on a #000000 frame). Returns the created QR code record with its short ID and the short redirect URL; the vCard content is encoded directly in the QR image.
create_wifi_qr
params_unexplained no_return_description
Create a QR code that encodes WiFi credentials; scanning it with a phone camera offers to auto-join the network. The credentials are encoded directly in the QR image, so no internet connection is needed to join. Specify the SSID, password (omit for open networks with encryption=nopass), encryption type, and whether the network is hidden, plus custom colors, dot/corner styles, logo embedding, and decorative frames with optional CTA text (text color defaults to #ffffff on a #000000 frame). Returns the created QR code record with its short ID and the short redirect URL.
update_vcard_qr
params_unexplained no_return_description
Update the contact details of a QR code created with type='vcard'. Partial updates merge with existing data: omit a field to keep its current value. You can update the contact's first/last name, organization, job title, email, phone number, website, street address, notes, and label. Note that changing vCard data re-encodes the QR image content. Returns the updated QR code record with its short ID and timestamps.
update_wifi_qr
no_return_description
Update the WiFi credentials (SSID, password, encryption, hidden) of a QR code created with type='wifi'. Omitted fields keep their current values, and you can also update the label. Note that changing WiFi data re-encodes the QR image content. Returns the updated QR code record with its short ID and timestamps.
create_email_qr
params_unexplained no_return_description
Create a QR code that, when scanned, opens a pre-filled email compose window. You can preset the recipient, subject, body, CC, and BCC, and apply custom colors, dot/corner styles, logo embedding, and decorative frames with optional CTA text (text color defaults to #ffffff on a #000000 frame). Returns the created QR code record with its short ID and the short redirect URL.
create_sms_qr
params_unexplained no_return_description
Create a QR code that, when scanned, opens a pre-filled SMS message to a given phone number, with optional message text. Supports custom colors, dot/corner styles, logo embedding, and decorative frames with optional CTA text (text color defaults to #ffffff on a #000000 frame). Returns the created QR code record with its short ID and the short redirect URL.
create_phone_qr
name_restates_behavior params_unexplained no_return_description
Create a QR code that, when scanned on a mobile device, opens the phone dialer pre-filled with the given number so users can call it with one tap, useful for support lines or offline contact cards. The phone number is encoded directly in the QR image. Supports custom colors, dot/corner styles, logo embedding, and decorative frames with optional CTA text (text color defaults to #ffffff on a #000000 frame). Returns the created QR code record with its short ID and the short redirect URL.
create_event_qr
params_unexplained no_return_description
Create a QR code that encodes a standard iCalendar VEVENT; scanning it with a calendar app offers to add the event. Provide a title, ISO 8601 start and end date-times, and optionally a location and description, plus custom colors, dot/corner styles, logo embedding, and decorative frames with optional CTA text (text color defaults to #ffffff on a #000000 frame). Returns the created QR code record with its short ID and the short redirect URL.
create_text_qr
params_unexplained no_return_description
Create a QR code that encodes plain text; scanning it displays the text directly, useful for messages, notes, or other freeform content. Supports custom colors, dot/corner styles, logo embedding, and decorative frames with optional CTA text (text color defaults to #ffffff on a #000000 frame). Returns the created QR code record with its short ID and the short redirect URL.
create_location_qr
params_unexplained no_return_description
Create a QR code that encodes geographic coordinates; scanning it opens the location in a map app. Provide latitude and longitude, plus an optional place name shown on the map and an optional internal label, along with custom colors, dot/corner styles, logo embedding, and decorative frames with optional CTA text (text color defaults to #ffffff on a #000000 frame). Returns the created QR code record with its short ID and the short redirect URL.
create_social_qr
params_unexplained
Create a QR code that links to social media profiles; scanning its short URL returns a JSON object with all provided platform links. Provide at least one platform link (Facebook, Instagram, Twitter/X, LinkedIn, YouTube, TikTok, GitHub, or website), plus optional styling: custom colors, dot/corner styles, logo embedding, and decorative frames with optional CTA text (text color defaults to #ffffff on a #000000 frame). Returns the created QR code record with its short ID.
create_app_store_qr
params_unexplained
Create a QR code that routes users to the correct app store based on their device: iPhones go to the App Store, Android devices go to Google Play, and other devices go to the fallback URL. Provide at least one store URL, plus optional styling: custom colors, dot/corner styles, logo embedding, and decorative frames with optional CTA text (text color defaults to #ffffff on a #000000 frame). Returns the created QR code record with its short ID.
update_social_qr
name_restates_behavior no_return_description
Update the social media profile links of a Social QR code (created with create_social_qr). Partial updates merge with existing data: omitted platforms keep their current URLs while provided ones are replaced, and you can also update the label. Returns the updated QR code record with its short ID and timestamps.
update_app_store_qr
name_restates_behavior params_unexplained no_return_description
Update the store links of an App Store QR code (created with create_app_store_qr). You can change the iOS App Store URL, the Android Google Play URL, and the fallback URL used for non-mobile devices (e.g., desktop browsers that match neither platform). Partial updates merge with existing data, and you can also update the label. Returns the updated QR code record with its short ID and timestamps.
list_webhooks
no_return_description
List all registered webhook endpoints for your API key. Returns each endpoint's URL, subscribed events, and creation timestamps; HMAC-SHA256 secrets are not included for security.
delete_webhook
name_restates_behavior no_return_description
Delete a webhook endpoint by ID along with all of its stored delivery logs. The endpoint stops receiving events immediately and its historical deliveries are removed. Returns a confirmation, including the deleted webhook's ID, so the caller can verify which endpoint was removed. Use list_webhooks to find IDs.
get_usage
name_restates_behavior no_return_description
Retrieve usage and quota totals for your calling API key. Returns your current usage figures and the remaining quota on your plan, so you can tell how close you are to your limits.
set_utm_params
no_return_description
Set or update UTM tracking parameters on a URL QR code; they are appended to the target URL on every scan redirect. Use clear=true to remove all UTM parameters. Returns a confirmation that the QR code's UTM parameters were updated or removed.
set_redirect_rules
no_return_description
Set conditional redirect rules on a URL QR code, replacing any existing rules. Rules are evaluated top-to-bottom: each rule's conditions are ANDed, the first matching rule's target_url wins, and the default target_url applies if nothing matches. Pass an empty rules array to clear all rules. Returns a confirmation that the redirect rules were updated for the QR code.
set_custom_domain
no_return_description
Set a custom domain (Pro plan required) so new QR code short URLs use https://your-domain.com/r/... instead of the default. Point your DNS CNAME at the QR Agent server; pass domain=null to remove the custom domain. Returns a confirmation of the domain change and the DNS verification status when applicable.
record_conversion
no_return_description
Record a post-scan conversion (e.g., purchase, signup) for a QR code you own, tracking ROI with an optional monetary value and metadata. Returns a confirmation that the conversion event was recorded for the given QR code.

Selection evidence

Confusable tool pairs.

10 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
create_qr_code bulk_create_qr_codes medium A task like 'create QR codes for my 30 products' is ambiguous about count: the agent could call the single create tool repeatedly or the bulk tool once; scope (one vs many) must be inferred from natural language.
delete_qr_code bulk_delete_qr_codes medium Task 'delete these QR codes' (plural) is ambiguous between repeated single deletes and the batch delete tool; both take short IDs and neither name nor default phrasing forces the bulk choice.
create_email_qr create_sms_qr medium Both create QRs opening a pre-filled message when scanned; a vague task like 'make a QR that sends a message to 555-1234' or 'pre-fill a message QR' could be read as either email or SMS since the user may not say the channel.
create_event_qr create_location_qr medium create_event_qr itself has a 'location' parameter, so a task like 'make a QR for the event at this venue/address' could wrongly select the map-location tool instead of the calendar-event tool, or vice versa.
create_qr_code create_text_qr medium A task like 'put this content/text in a QR code' is ambiguous between the URL-redirect QR tool and the plain-text-encoding tool; whether the content is a link or raw text isn't always explicit.
get_qr_code list_qr_codes medium Tasks like 'show me my QR codes' or 'find the QR for my campaign' are ambiguous between fetching one code's details and listing to search; the agent may pick get before knowing a short_id, or list when a specific code was meant.
get_qr_code get_qr_analytics medium 'Get information/report/data on QR abc123' is ambiguous between returning the code's metadata (get_qr_code) and its scan analytics metrics (get_qr_analytics); both take a short_id and both sound like retrieval.
get_qr_analytics get_conversions medium Both are stats endpoints for a QR code taking short_id and period, so a vague task like 'how is my QR performing, give me the numbers' could select scan analytics instead of conversion ROI stats.
update_qr_destination update_social_qr medium Social QRs resolve via a short URL, so 'change where my social QR points to the new page' is ambiguous between the generic redirect-update tool and the social-link update tool; the QR type must be known to disambiguate.
bulk_create_qr_codes bulk_create_from_csv medium Both bulk-create QR codes; a task like 'generate QR codes in bulk from this list/spreadsheet' is ambiguous between the JSON items-array tool and the CSV-content tool, which differ in input format and limits.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard