# QR for Agent (npm · qr-for-agent)

Dynamic QR codes for AI agents — custom styling, scan tracking, webhooks

- Trust score: 64/100 (medium)
- Change this week: +20
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `qr-for-agent`: 64/100 (this document), [markdown](https://verifymcp.io/servers/benswel-qr-for-agent/qr-for-agent.md), [page](https://verifymcp.io/servers/benswel-qr-for-agent/qr-for-agent)

## Channel facts

- Registry: `npm`
- Package: `qr-for-agent`
- Version: `0.12.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 54 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 69/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 5317 tokens (~143/item across 37 items; 37 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add benswel-qr-for-agent -- npx -y qr-for-agent
```

### Codex

```bash
codex mcp add benswel-qr-for-agent -- npx -y qr-for-agent
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "benswel-qr-for-agent": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "qr-for-agent"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add benswel-qr-for-agent --command npx --arg -y --arg qr-for-agent
```

### Hermes

```yaml
mcp_servers:
  benswel-qr-for-agent:
    command: "npx"
    args: ["-y", "qr-for-agent"]
```

### Other

```json
{
  "mcpServers": {
    "benswel-qr-for-agent": {
      "command": "npx",
      "args": [
        "-y",
        "qr-for-agent"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 64, +59)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] Licence: MIT

### 2026-08-01 (score 5, −21)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 26, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 44)

First indexed and scored.

## MCP tools (37)

### `create_qr_code` (~617 tokens)

Create a new managed QR code with optional custom styling. The QR code points to a short URL that redirects to your target URL. You can change the target URL later without regenerating the QR image. Supports custom colors, dot shapes, corner shapes, and logo embedding.

Input parameters:

- `background_color` (string): Hex color for QR code background. Default: #ffffff (white).
- `corner_style` (string): Shape of finder patterns (corner squares). square=classic, extra-rounded=smooth, dot=circular.
- `dot_style` (string): Shape of data modules. square=classic, rounded=soft corners, dots=circles, classy-rounded=organic.
- `error_correction` (string): Error correction level. L=7%, M=15% (default), Q=25%, H=30%. Auto-set to H when logo is provided.
- `expires_at` (string): ISO 8601 date-time. After this date, scanning returns 410 Gone instead of redirecting.
- `foreground_color` (string): Hex color for QR code dots. Default: #000000 (black).
- `format` (string): Image format. "svg" is recommended (smaller, scalable, text-parseable). Use "png" only if a bitmap is required.
- `frame_border_radius` (number): Frame corner radius. Only for 'rounded' style.
- `frame_color` (string): Hex color for frame background. Default: #000000.
- `frame_style` (string): Decorative frame around QR. 'banner_bottom': text below, 'banner_top': text above, 'rounded': rounded border with text.
- `frame_text` (string): CTA text on the frame (e.g. 'Scan Me!', 'View Menu'). Max 30 chars. Requires frame_style.
- `frame_text_color` (string): Hex color for frame text. Default: #ffffff.
- `gradient` (object): Apply a gradient to QR dots and corners instead of solid foreground_color.
- `gtm_container_id` (string): Google Tag Manager container ID (e.g. 'GTM-ABC123'). Enables GTM tracking on QR scans via an intermediate HTML page.
- `label` (string): An optional label to identify this QR code.
- `logo_size` (number): Logo size as ratio of QR width (0.15-0.3). Default: 0.2.
- `logo_url` (string): URL to a logo image (PNG/JPG/SVG) or data:base64 URI. Centered on the QR code.
- `margin` (number): Quiet zone margin in modules. Default: 2.
- `scheduled_at` (string): ISO 8601 date-time when target automatically switches to scheduled_url.
- `scheduled_url` (string): Replacement URL that activates at scheduled_at.
- `target_url` (string, required): The destination URL the QR code should redirect to.
- `width` (number): QR code width in pixels. Default: 400.

### `get_qr_code` (~51 tokens)

Retrieve details of an existing QR code by its short ID. Returns the current target URL, metadata, and timestamps.

Input parameters:

- `short_id` (string, required): The short ID of the QR code to look up.

### `update_qr_destination` (~180 tokens)

Change where an existing QR code redirects to. This is the key 'dynamic link' feature: the QR image stays the same, but scanning it will now go to the new URL. Ideal for updating campaigns, fixing broken links, or A/B testing.

Input parameters:

- `expires_at`: ISO 8601 expiration date. Set to null to remove expiration.
- `gtm_container_id`: Google Tag Manager container ID. Set to null to remove GTM tracking.
- `label` (string): Optionally update the label too.
- `scheduled_at`: ISO 8601 activation date for scheduled_url. Set to null to cancel.
- `scheduled_url`: Scheduled replacement URL. Set to null to cancel.
- `short_id` (string, required): The short ID of the QR code to update.
- `target_url` (string, required): The new destination URL.

### `list_qr_codes` (~64 tokens)

List all managed QR codes with pagination. Returns short IDs, target URLs, labels, and timestamps. Use this to browse or search for existing QR codes.

Input parameters:

- `limit` (number): Max results to return.
- `offset` (number): Number of results to skip.

### `delete_qr_code` (~52 tokens)

Permanently delete a QR code and all its scan analytics. The short URL will stop working immediately. This cannot be undone.

Input parameters:

- `short_id` (string, required): The short ID of the QR code to delete.

### `get_qr_analytics` (~88 tokens)

Get enriched scan analytics for a QR code. Returns total scans, daily trends, device/browser/country/referer breakdowns with percentages, and recent scan events with parsed user-agent and geo data.

Input parameters:

- `period` (string): Time period for aggregations. Default: 30d.
- `short_id` (string, required): The short ID of the QR code to get analytics for.

### `bulk_create_qr_codes` (~96 tokens)

Create multiple QR codes in a single request (up to 50). Each item supports the same options as create_qr_code. The quota check is all-or-nothing: if the batch would exceed your plan limit, no QR codes are created. Ideal for generating QR codes for product catalogs, event lists, or batch operations.

Input parameters:

- `items` (array, required): Array of QR codes to create. Max 50 per request.

### `bulk_update_qr_codes` (~67 tokens)

Update multiple QR codes in a single request (up to 50). Change target URLs and/or labels. Items with non-existent short_id are reported as not_found without failing the whole batch.

Input parameters:

- `items` (array, required): Array of QR code updates. Max 50 per request.

### `bulk_delete_qr_codes` (~67 tokens)

Delete multiple QR codes and their scan analytics in a single request (up to 50). Items with non-existent short_id are reported as not_found without failing the whole batch.

Input parameters:

- `short_ids` (array, required): Array of short_id strings to delete. Max 50 per request.

### `create_vcard_qr` (~268 tokens)

Create a QR code that encodes a contact card (vCard). When scanned by a phone camera, it prompts the user to save the contact. Supports all standard vCard fields and custom QR styling.

Input parameters:

- `address` (string): Street address.
- `background_color` (string): Hex color for background.
- `corner_style` (string): Corner shape.
- `dot_style` (string): Dot shape.
- `email` (string): Email address.
- `first_name` (string, required): Contact first name.
- `foreground_color` (string): Hex color for dots.
- `format` (string): Image format.
- `frame_color` (string): Frame background color.
- `frame_style` (string): Frame style around QR.
- `frame_text` (string): CTA text on frame (max 30 chars).
- `frame_text_color` (string): Frame text color.
- `label` (string): Label for this QR code.
- `last_name` (string, required): Contact last name.
- `logo_url` (string): Logo URL or data URI.
- `note` (string): Additional notes.
- `organization` (string): Company or organization.
- `phone` (string): Phone number.
- `title` (string): Job title.
- `url` (string): Website URL.

### `create_wifi_qr` (~251 tokens)

Create a QR code that encodes WiFi credentials. When scanned by a phone camera, it offers to auto-join the WiFi network. No internet connection needed to join — the credentials are encoded directly in the QR image.

Input parameters:

- `background_color` (string): Hex color for background.
- `corner_style` (string): Corner shape.
- `dot_style` (string): Dot shape.
- `encryption` (string): Encryption type. Default: WPA.
- `foreground_color` (string): Hex color for dots.
- `format` (string): Image format.
- `frame_color` (string): Frame background color.
- `frame_style` (string): Frame style around QR.
- `frame_text` (string): CTA text on frame (max 30 chars).
- `frame_text_color` (string): Frame text color.
- `hidden` (boolean): Whether the network is hidden. Default: false.
- `label` (string): Label for this QR code.
- `logo_url` (string): Logo URL or data URI.
- `password` (string): WiFi password. Omit for open networks (use encryption='nopass').
- `ssid` (string, required): WiFi network name (SSID).

### `update_vcard_qr` (~168 tokens)

Update the contact details of a vCard QR code. Only works on QR codes created with type='vcard'. Partial updates merge with existing data. Note: updating vCard data changes the QR image content.

Input parameters:

- `address` (string): Street address.
- `email` (string): Email address.
- `first_name` (string): Contact first name.
- `label` (string): Update the label.
- `last_name` (string): Contact last name.
- `note` (string): Additional notes.
- `organization` (string): Company or organization.
- `phone` (string): Phone number.
- `short_id` (string, required): The short ID of the vCard QR code to update.
- `title` (string): Job title.
- `url` (string): Website URL.

### `update_wifi_qr` (~117 tokens)

Update the WiFi credentials of a WiFi QR code. Only works on QR codes created with type='wifi'. Note: updating WiFi data changes the QR image content.

Input parameters:

- `encryption` (string): Encryption type.
- `hidden` (boolean): Whether the network is hidden.
- `label` (string): Update the label.
- `password` (string): WiFi password.
- `short_id` (string, required): The short ID of the WiFi QR code to update.
- `ssid` (string): WiFi network name.

### `create_email_qr` (~223 tokens)

Create a QR code that opens a pre-filled email when scanned. The recipient, subject, body, CC, and BCC can all be pre-set.

Input parameters:

- `background_color` (string): Hex color for background.
- `bcc` (string): BCC recipient(s).
- `body` (string): Email body text.
- `cc` (string): CC recipient(s).
- `corner_style` (string): Corner shape.
- `dot_style` (string): Dot shape.
- `foreground_color` (string): Hex color for dots.
- `format` (string): Image format.
- `frame_color` (string): Frame background color.
- `frame_style` (string): Frame style around QR.
- `frame_text` (string): CTA text on frame (max 30 chars).
- `frame_text_color` (string): Frame text color.
- `label` (string): Label for this QR code.
- `logo_url` (string): Logo URL or data URI.
- `subject` (string): Email subject line.
- `to` (string, required): Recipient email address.

### `create_sms_qr` (~189 tokens)

Create a QR code that opens a pre-filled SMS message when scanned. Set the phone number and optional message text.

Input parameters:

- `background_color` (string): Hex color for background.
- `corner_style` (string): Corner shape.
- `dot_style` (string): Dot shape.
- `foreground_color` (string): Hex color for dots.
- `format` (string): Image format.
- `frame_color` (string): Frame background color.
- `frame_style` (string): Frame style around QR.
- `frame_text` (string): CTA text on frame (max 30 chars).
- `frame_text_color` (string): Frame text color.
- `label` (string): Label for this QR code.
- `logo_url` (string): Logo URL or data URI.
- `message` (string): Pre-filled SMS message text.
- `phone_number` (string, required): Phone number to send SMS to.

### `create_phone_qr` (~176 tokens)

Create a QR code that initiates a phone call when scanned. The phone number is encoded directly in the QR code.

Input parameters:

- `background_color` (string): Hex color for background.
- `corner_style` (string): Corner shape.
- `dot_style` (string): Dot shape.
- `foreground_color` (string): Hex color for dots.
- `format` (string): Image format.
- `frame_color` (string): Frame background color.
- `frame_style` (string): Frame style around QR.
- `frame_text` (string): CTA text on frame (max 30 chars).
- `frame_text_color` (string): Frame text color.
- `label` (string): Label for this QR code.
- `logo_url` (string): Logo URL or data URI.
- `phone_number` (string, required): Phone number to call.

### `create_event_qr` (~247 tokens)

Create a QR code that adds a calendar event when scanned. Encodes a standard iCalendar VEVENT that calendar apps can import.

Input parameters:

- `background_color` (string): Hex color for background.
- `corner_style` (string): Corner shape.
- `description` (string): Event description.
- `dot_style` (string): Dot shape.
- `end` (string, required): Event end date-time in ISO 8601 format.
- `foreground_color` (string): Hex color for dots.
- `format` (string): Image format.
- `frame_color` (string): Frame background color.
- `frame_style` (string): Frame style around QR.
- `frame_text` (string): CTA text on frame (max 30 chars).
- `frame_text_color` (string): Frame text color.
- `label` (string): Label for this QR code.
- `location` (string): Event location.
- `logo_url` (string): Logo URL or data URI.
- `start` (string, required): Event start date-time in ISO 8601 format (e.g. 2026-03-15T09:00:00Z).
- `summary` (string, required): Event title/summary.

### `create_text_qr` (~182 tokens)

Create a QR code that contains plain text. When scanned, the text is displayed directly. Useful for messages, notes, or any freeform content.

Input parameters:

- `background_color` (string): Hex color for background.
- `content` (string, required): Plain text content to encode.
- `corner_style` (string): Corner shape.
- `dot_style` (string): Dot shape.
- `foreground_color` (string): Hex color for dots.
- `format` (string): Image format.
- `frame_color` (string): Frame background color.
- `frame_style` (string): Frame style around QR.
- `frame_text` (string): CTA text on frame (max 30 chars).
- `frame_text_color` (string): Frame text color.
- `label` (string): Label for this QR code.
- `logo_url` (string): Logo URL or data URI.

### `create_location_qr` (~208 tokens)

Create a QR code that opens a map location when scanned. Encodes geographic coordinates that map apps can parse.

Input parameters:

- `background_color` (string): Hex color for background.
- `corner_style` (string): Corner shape.
- `dot_style` (string): Dot shape.
- `foreground_color` (string): Hex color for dots.
- `format` (string): Image format.
- `frame_color` (string): Frame background color.
- `frame_style` (string): Frame style around QR.
- `frame_text` (string): CTA text on frame (max 30 chars).
- `frame_text_color` (string): Frame text color.
- `label` (string): Human-readable place name (shown on map).
- `latitude` (number, required): Geographic latitude (-90 to 90).
- `logo_url` (string): Logo URL or data URI.
- `longitude` (number, required): Geographic longitude (-180 to 180).
- `qr_label` (string): Label for this QR code (internal).

### `create_social_qr` (~262 tokens)

Create a QR code that links to social media profiles. When scanned via the short URL, returns a JSON object with all platform links. Provide at least one platform link.

Input parameters:

- `background_color` (string): Hex color for background.
- `corner_style` (string): Corner shape.
- `dot_style` (string): Dot shape.
- `facebook` (string): Facebook profile/page URL.
- `foreground_color` (string): Hex color for dots.
- `format` (string): Image format.
- `frame_color` (string): Frame background color.
- `frame_style` (string): Frame style around QR.
- `frame_text` (string): CTA text on frame (max 30 chars).
- `frame_text_color` (string): Frame text color.
- `github` (string): GitHub profile URL.
- `instagram` (string): Instagram profile URL.
- `label` (string): Label for this QR code.
- `linkedin` (string): LinkedIn profile URL.
- `logo_url` (string): Logo URL or data URI.
- `tiktok` (string): TikTok profile URL.
- `twitter` (string): Twitter/X profile URL.
- `website` (string): Personal/company website URL.
- `youtube` (string): YouTube channel URL.

### `create_app_store_qr` (~227 tokens)

Create a QR code that redirects to the correct app store based on the 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.

Input parameters:

- `android_url` (string): Google Play Store URL.
- `background_color` (string): Hex color for background.
- `corner_style` (string): Corner shape.
- `dot_style` (string): Dot shape.
- `fallback_url` (string): Fallback URL for non-mobile devices.
- `foreground_color` (string): Hex color for dots.
- `format` (string): Image format.
- `frame_color` (string): Frame background color.
- `frame_style` (string): Frame style around QR.
- `frame_text` (string): CTA text on frame (max 30 chars).
- `frame_text_color` (string): Frame text color.
- `ios_url` (string): Apple App Store URL.
- `label` (string): Label for this QR code.
- `logo_url` (string): Logo URL or data URI.

### `update_social_qr` (~134 tokens)

Update the social media links of a Social QR code. Partial updates merge with existing data.

Input parameters:

- `facebook` (string): Facebook URL.
- `github` (string): GitHub URL.
- `instagram` (string): Instagram URL.
- `label` (string): Update the label.
- `linkedin` (string): LinkedIn URL.
- `short_id` (string, required): The short ID of the Social QR code to update.
- `tiktok` (string): TikTok URL.
- `twitter` (string): Twitter/X URL.
- `website` (string): Website URL.
- `youtube` (string): YouTube URL.

### `update_app_store_qr` (~94 tokens)

Update the app store URLs of an App Store QR code. Partial updates merge with existing data.

Input parameters:

- `android_url` (string): Google Play Store URL.
- `fallback_url` (string): Fallback URL.
- `ios_url` (string): Apple App Store URL.
- `label` (string): Update the label.
- `short_id` (string, required): The short ID of the App Store QR code to update.

### `create_webhook` (~85 tokens)

Register a webhook endpoint to receive real-time notifications when QR codes are scanned. Returns an HMAC-SHA256 secret for verifying webhook signatures — store it securely, it is only shown once.

Input parameters:

- `events` (array): Events to subscribe to. Currently supported: "qr.scanned".
- `url` (string, required): The endpoint URL that will receive POST requests with scan event data.

### `list_webhooks` (~29 tokens)

List all registered webhook endpoints for your API key. The HMAC secret is not included for security.

### `delete_webhook` (~50 tokens)

Delete a webhook endpoint and all its delivery logs. The endpoint will stop receiving events immediately.

Input parameters:

- `webhook_id` (number, required): The ID of the webhook to delete. Use list_webhooks to find IDs.

### `register` (~47 tokens)

Register for an API key. Provide your email to get a key immediately.

Input parameters:

- `email` (string, required): Your email address.
- `label` (string): An optional label to identify this API key.

### `get_usage` (~18 tokens)

Get current usage and quota for your API key.

### `upgrade_to_pro` (~56 tokens)

Upgrade to the Pro plan ($19/month) for unlimited QR codes, scans, and webhooks. Returns a Stripe Checkout URL — tell the user to open it in their browser to complete payment. The upgrade takes effect automatically after payment.

### `manage_billing` (~51 tokens)

Open the Stripe billing portal to manage your subscription, update payment method, or cancel. Returns a portal URL — tell the user to open it in their browser. Only works if you have an active Pro subscription.

### `set_utm_params` (~202 tokens)

Set UTM tracking parameters on a URL QR code. These parameters are automatically appended to the target URL on every scan redirect. Use this to track QR code scans in Google Analytics or other analytics tools. Set 'clear' to true to remove all UTM parameters.

Input parameters:

- `campaign` (string): utm_campaign value (e.g. 'summer_2026').
- `clear` (boolean): Set to true to remove all UTM parameters from this QR code.
- `content` (string): utm_content value (A/B test variant).
- `medium` (string): utm_medium value (e.g. 'print', 'qr', 'social').
- `short_id` (string, required): The short ID of the QR code (must be type='url').
- `source` (string): utm_source value (e.g. 'flyer', 'email', 'poster').
- `term` (string): utm_term value (paid search keyword).

### `set_redirect_rules` (~210 tokens)

Set conditional redirect rules on a URL QR code. Rules are evaluated top-to-bottom; each rule has an array of conditions (AND logic) — all must match. First matching rule's URL is used. If no rule matches, the default target_url applies. Conditions: 'device' (mobile/tablet/desktop), 'os' (iOS/Android/Windows/macOS/Linux), 'country' (ISO alpha-2 like 'FR'), 'language' (ISO 639-1 like 'fr'), 'time_range' ({start:'09:00',end:'17:00',timezone:'Europe/Paris'}), 'ab_split' ({percentage:50}). Combine conditions in a single rule for AND logic (e.g. mobile + FR). Pass an empty array to remove all rules.

Input parameters:

- `rules` (array, required): Array of redirect rules. Empty array to clear all rules.
- `short_id` (string, required): The short ID of the QR code (must be type='url').

### `set_custom_domain` (~95 tokens)

Set a custom domain for your QR code short URLs (Pro plan required). When set, all new QR codes will use https://your-domain.com/r/... instead of the default URL. You must configure DNS (CNAME) to point to the QR Agent server. Pass domain=null to remove the custom domain.

Input parameters:

- `domain` (required): Your custom domain without protocol (e.g. 'qr.mybrand.com'). Pass null to remove.

### `get_custom_domain` (~35 tokens)

Get your current custom domain configuration and DNS verification status. Returns the domain, whether DNS is active or pending, and setup instructions.

### `bulk_create_from_csv` (~114 tokens)

Create up to 500 QR codes from CSV data. Pro plan required. Send the CSV content as a string. Required column: target_url. Optional columns: label, format, type, foreground_color, background_color, dot_style, corner_style, frame_style, frame_text, expires_at. Returns all created QR codes.

Input parameters:

- `csv_content` (string, required): CSV content as a string with header row. Example: "target_url,label\nhttps://example.com,My QR\nhttps://other.com,Other QR"

### `record_conversion` (~189 tokens)

Record a post-scan conversion event (purchase, signup, etc.) for a QR code you own. Use this to track ROI — e.g., when a user scans a QR code and then makes a purchase, record a 'purchase' conversion with the order value. For client-side tracking without code, use the tracking pixel: <img src="https://yourhost/t/{short_id}?event=purchase&value=49.99">.

Input parameters:

- `event` (string, required): The conversion event name (e.g., "purchase", "signup", "add_to_cart"). Use consistent names to aggregate stats.
- `metadata` (object): Optional JSON metadata (e.g., product ID, order number).
- `short_id` (string, required): The short_id of the QR code this conversion is for.
- `value` (number): Optional monetary value of the conversion (e.g., 49.99).

### `get_conversions` (~108 tokens)

Get conversion statistics for a QR code. Returns total conversions, total value, breakdowns by event name, daily trends, and recent events. Use this to measure QR code ROI and understand which codes drive the most value.

Input parameters:

- `event` (string): Filter by event name (e.g., 'purchase').
- `period` (string): Time period for aggregations. Default: 30d.
- `short_id` (string, required): The short_id of the QR code to get conversion stats for.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/benswel-qr-for-agent/qr-for-agent#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 64
- 2026-08-01: 5
- 2026-07-31: 26
- 2026-07-29: 44
- 2026-07-28: 44
- 2026-07-27: 44

## Links

- npm package: https://www.npmjs.com/package/qr-for-agent
- Socket report: https://socket.dev/npm/package/qr-for-agent
- Repository: https://github.com/benswel/qr-for-agent-api
- Changelog RSS feed: https://verifymcp.io/servers/benswel-qr-for-agent/qr-for-agent/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/benswel-qr-for-agent/qr-for-agent/changelog.json
- HTML version of this page: https://verifymcp.io/servers/benswel-qr-for-agent/qr-for-agent
