Skip to main content
Glama

QRStuff MCP Server

Server Details

Generate, update, manage, and track QR codes using the QRStuff platform.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
QRStuff
Claude
–

TDQS

B3.4/5.0

Scored across 62 tools

Disambiguation3/5

Descriptions are detailed and often explicitly cross-reference alternatives, which helps distinguish tools. However, the set contains many similar QR creation tools (generate_qr_code, create_static_qr_code, create_launchpad_qrcode, create_menumaker_qrcode, etc.) and overlapping scan analytics tools (get_total_scans, get_unique_users, get_scans_by_date, get_qrcode_scans, get_project_scans). These overlaps make misselection likely despite the guidance.

Naming Consistency3/5

Most names are readable snake_case verb_noun, but the convention is not fully consistent. The set mixes 'qrcode' and 'qr_code' (list_qrcodes, get_qrcode_scans vs get_qr_code_by_id, generate_qr_code), uses both 'create' and 'generate' for QR code creation, and varies singular/plural forms.

Tool Count2/5

62 tools is far above the typical well-scoped range and feels heavy for an MCP server. Many analytics endpoints and QR creation variants could be consolidated, even though the platform is broad and most tools have a defined role.

Completeness3/5

The surface covers a broad QR platform lifecycle: QR codes, short links, landing pages, scans, batches, account data, uploads, wallet links, and image scanning. However, core gaps are notable, such as no delete_qr_code operation and no create/delete project tools alongside project listing and restore.

Publisher details

Operator
QRStuff
Operator website
https://www.qrstuff.com
Vendor relationship
First-party
Trust center
Not available
Restrictions
Requires a QRStuff account via OAuth (free plan available). Some features require a paid plan.

Available Tools

62 tools
cancel_batchCancel batchA
DestructiveIdempotent
Inspect

Use this only when the user asks to stop a bulk job. Stops further processing of a submitted or running job. Confirm first.

Inputs: batch_id (required), batch_type. Returns: object

convert_vcard_to_digital_business_cardConvert vCard to digital business cardA
Destructive
Inspect

Use this when the user already has a vCard QR code in their account and wants it turned into a digital business card page. Changes that code's type; confirm with the user first. Needs the code ID from list_qrcodes.

Inputs: idqrcode (required). Returns: object

create_digital_business_cardCreate digital business cardA
Destructive
Inspect

Use this when the user wants a digital business card: a shareable mobile page with their name, role, company, phone, email, address and links, opened by QR code. Creates the card and its QR code in one step and returns both. The details are shown publicly on the card, so include only what the user wants shared. Pass idqrcode to turn an existing vCard QR code into a card. Do not use it for a plain contact QR code that stores the details in the code (use generate_qr_code with type VCARD).

Inputs: contact (required), idqrcode. Returns: object

create_digital_product_passportCreate Digital Product PassportAInspect

Use this when the user wants a GS1 Digital Link QR code or a Digital Product Passport for a product: a QR code carrying the product's GTIN that opens a page with product details, traceability, certifications or links. Needs a GTIN and product details. Creates a dynamic code in the account. Do not use it for ordinary web-link QR codes.

Inputs: gtin (required), product (required), qr_name, passport, +4 more. Returns: object

create_launchpad_qrcodeCreate landing page QR codeAInspect

Use this when the user wants a new landing page and a QR code that opens it in one step. Creates and publishes the page, a short link and a dynamic QR code, so confirm the title with the user first. Do not use it to edit an existing page.

Inputs: title (required), qr_name, project_id. Returns: object

create_menumaker_qrcodeCreate restaurant menu QR codeAInspect

Use this when the user wants a digital menu for a restaurant, cafe or bar opened by QR code. Creates a menu in QRStuff's menu builder and a dynamic QR code for it, and returns the code and a link to add items. To use an existing PDF menu, use generate_qr_code with type PDF instead.

Inputs: menu_name (required), qr_name. Returns: object

create_static_qr_codeCreate static QR codeA
Read-onlyIdempotent
Inspect

Use this when the user wants a QR code image for a web link, plain text, Wi-Fi network, email, phone number, text message or contact card and does not need to edit, track or manage it afterwards. Returns a PNG or SVG image and a download link. No account is needed. The code cannot be changed after it is made and no scan counts are kept. Do not use it when the user wants to edit the destination later, see scan numbers, add a logo, or make a code for a file, menu, landing page, business card or product (use generate_qr_code).

Inputs: type (required), url, text, format, +17 more.

generate_qr_codeGenerate QR codeAInspect

Use this when the signed-in user wants a QR code saved to their QRStuff account: one they can edit later (dynamic), track scans on, style with colours, shapes, a logo or frame, or that opens a file, event, vCard, Wi-Fi, payment, app download, social links or any of 50+ other types. Creates and saves the code (output_type download shows it in the dashboard; preview saves it as a hidden draft for trying designs) and returns the image and download link. Set dynamic false for a code that never needs changing. Do not use it to change an existing code (use update_qr_code), to shorten a link (use create_short_link), or for a quick one-off code when the user is not signed in (use create_static_qr_code).

Inputs: input (required), output_type.

get_account_activityGet account activityA
Read-onlyIdempotent
Inspect

Use this when the user asks how much of their allowance they have used: dynamic codes created against the limit, and scans this month. Read-only.

Inputs: no named parameters. Returns: scans_this_month, monthly_scan_limit, dynamic_qr_code_limit, monthly_scan_limit…

get_account_entitlementsGet account entitlementsA
Read-onlyIdempotent
Inspect

Use this when the answer depends on what the user's account includes, for example "can I add a password to this code?". Returns the account's features and limits. Read-only. Use it to explain why something isn't available, never to promote a plan.

Inputs: no named parameters. Returns: object

get_account_overviewGet account overviewA
Read-onlyIdempotent
Inspect

Use this when the user wants a quick overview of their account: number of projects, QR codes, total scans and users. Read-only.

Inputs: no named parameters. Returns: scans, users, qrcodes, projects

get_account_scansGet account scansB
Read-onlyIdempotent
Inspect

Use this when the user wants scan data for the whole account, optionally grouped by date, country, region or device. Read-only.

Inputs: page, device, region, country, +4 more. Returns: result

get_batch_sample_fileGet batch sample fileA
Read-onlyIdempotent
Inspect

Use this when the user wants to create many QR codes or short links from a spreadsheet and needs the template. Returns a download link to an XLSX template for the chosen types. Read-only.

Inputs: data_types (required), batch_type. Returns: object

get_batch_statusGet batch statusA
Read-onlyIdempotent
Inspect

Use this when the user asks whether a bulk job has finished or how far it is. Read-only.

Inputs: batch_id (required), batch_type. Returns: object

get_project_scansGet project scansB
Read-onlyIdempotent
Inspect

Use this when the user wants the scan log for a project: time, code, country and device, with a chart. One page at a time. Read-only.

Inputs: idproject (required), page, end_date, per_page, +1 more.

get_qr_code_by_idGet QR code by IDA
Read-onlyIdempotent
Inspect

Use this when the user refers to one specific QR code by ID and wants its details, preview image or download link: type, name, destination, short link and styling. Read-only. If you don't have the ID, call list_qrcodes first.

Inputs: idqrcode (required).

get_qrcode_historyGet QR code historyA
Read-onlyIdempotent
Inspect

Use this when the user asks what changed on a QR code, when it was edited or deleted, or who changed it. Returns the audit log with actions and dates. Read-only.

Inputs: idqrcode (required), action, cursor, per_page. Returns: entries, per_page, next_cursor, prev_cursor

get_qrcode_scansGet QR code scansA
Read-onlyIdempotent
Inspect

Use this when the user wants the scan log for one QR code: time, country and device, with a chart. One page at a time. For just a total use get_total_scans. Read-only.

Inputs: idqrcode (required), page, end_date, per_page, +1 more.

get_qrcode_variant_rulesGet QR code variant rulesA
Read-onlyIdempotent
Inspect

Use this before manage_qrcode_variants, when the user wants one dynamic QR code to open different destinations for different people. Returns the condition fields (such as device), their allowed values and the comparison operators. Read-only.

Inputs: no named parameters. Returns: object

get_scans_by_countryGet scans by countryB
Read-onlyIdempotent
Inspect

Use this when the user wants scans per country. Read-only.

Inputs: page, scope, end_date, idqrcode, +3 more. Returns: total, buckets, per_page, last_page, +1 more

get_scans_by_dateGet scans by dateA
Read-onlyIdempotent
Inspect

Use this when the user wants scans per day for the account, a project or a code, for example for a chart. Read-only.

Inputs: page, scope, end_date, idqrcode, +3 more. Returns: total, buckets, per_page, last_page, +1 more

get_scans_by_deviceGet scans by deviceB
Read-onlyIdempotent
Inspect

Use this when the user wants scans by phone platform (iOS, Android, other). Read-only.

Inputs: page, scope, end_date, idqrcode, +3 more. Returns: total, buckets, per_page, last_page, +1 more

get_scans_by_regionGet scans by regionB
Read-onlyIdempotent
Inspect

Use this when the user wants scans per state or region within one country (country code required). Read-only.

Inputs: country (required), page, scope, region, +5 more. Returns: total, buckets, per_page, last_page, +1 more

get_subscription_detailGet subscription detailA
Read-onlyIdempotent
Inspect

Fetch the current user's subscription detail via the QRStuff API.

Returns id, status, billing period, term dates, items with name, quantity, unit_price, amount, period.

Inputs: no named parameters. Returns: id, status, cancelled_at, billing_period, +4 more

get_top_performing_dateGet top performing dateA
Read-onlyIdempotent
Inspect

Use this when the user asks which day had the most scans. Read-only.

Inputs: scope, end_date, idqrcode, idproject, +1 more. Returns: date, scans, total_scan, percentage_of_total

get_top_performing_locationGet top performing locationA
Read-onlyIdempotent
Inspect

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

Inputs: scope, end_date, idqrcode, idproject, +1 more. Returns: scans, total_scan, country_code, country_name, +1 more

get_top_scannerGet top scannerA
Read-onlyIdempotent
Inspect

Use this when the user asks which of their QR codes was scanned most, for the account or one project (not for a single code). Read-only.

Inputs: scope, end_date, idproject, start_date. Returns: name, device, region, idqrcode, +2 more

get_total_scansGet total scansA
Read-onlyIdempotent
Inspect

Use this when the user asks how many scans they got in total, for the account, one project or one QR code, with growth against the previous period. Default period: last 30 days. For a day-by-day breakdown use get_scans_by_date; for individual scans use get_qrcode_scans. For scope qrcode send both idproject and idqrcode. Read-only.

Inputs: scope, end_date, idqrcode, idproject, +1 more. Returns: growth, total_scans

get_unique_usersGet unique usersA
Read-onlyIdempotent
Inspect

Use this when the user asks how many different people scanned, not how many scans. Same scopes and dates as get_total_scans. Read-only.

Inputs: scope, end_date, idqrcode, idproject, +1 more. Returns: growth, unique_users

get_user_profileGet user profileA
Read-onlyIdempotent
Inspect

Use this when the user asks which QRStuff account is connected or for their account name. Read-only.

Inputs: no named parameters. Returns: idclient, timezone, username, last_name, +9 more

list_batchesList batchesA
Read-onlyIdempotent
Inspect

Use this when the user asks what bulk jobs they have run, or you need a batch ID. Covers the last 30 days. Read-only.

Inputs: q, per_page, batch_type. Returns: object

list_deleted_projectsList deleted projectsA
Read-onlyIdempotent
Inspect

Use this when the user wants a deleted project back and you need to see which projects were deleted. Read-only.

Inputs: no named parameters.

list_projectsList projectsA
Read-onlyIdempotent
Inspect

Use this when the user wants to see their QR code projects (folders) or find a project ID, optionally by name. Returns name, ID, number of codes and total scans. Read-only.

Inputs: q, page, sort_by, per_page, +1 more.

list_qrcodesList QR codesA
Read-onlyIdempotent
Inspect

Use this when the user wants to find or browse their QR codes by name or project, or you need a code's ID before editing or checking its scans. Returns a paged table of name, ID, project and short link. Read-only. Does not create anything.

Inputs: q, page, sort_by, per_page, +2 more.

list_qr_data_typesList QR data typesA
Read-onlyIdempotent
Inspect

Use this when you need the exact fields for a QR code type before calling generate_qr_code (for example a coupon, PDF, event or GS1 passport), or the user asks what kinds of QR code can be made. Returns type names, labels, required data_fields, and whether a type needs a file upload or a dynamic code. Pass data_type for one type. Read-only.

Inputs: data_type. Returns: result

manage_qrcode_variantsManage QR code variantsA
DestructiveIdempotent
Inspect

Use this when the user wants one dynamic QR code to open different destinations depending on conditions such as the scanner's device (Smart Rules). Saves up to 10 variants for that code. Call get_qrcode_variant_rules first.

Inputs: idqrcode (required), variants (required). Returns: object

move_qrcode_to_projectMove QR code to projectA
Idempotent
Inspect

Use this when the user wants to move a QR code into another project (folder). Needs the code ID and the target project ID from list_projects.

Inputs: idqrcode (required), idproject (required). Returns: ok

restore_deleted_projectRestore deleted projectA
Idempotent
Inspect

Use this when the user wants a deleted project restored. Needs the project ID from list_deleted_projects.

Inputs: idproject (required). Returns: ok

restore_deleted_qrcodeRestore deleted QR codeA
Idempotent
Inspect

Use this when the user says a QR code was deleted by mistake and wants it back. Needs the code ID or short-URL key. Restores it to their account.

Inputs: idqrcode, shorturl_key. Returns: ok

scan_business_cardScan business cardA
Read-only
Inspect

Use this when the user shares a photo of a printed business card and wants the details pulled out, for example to build a digital business card. Reads name, phone, email, company and address from a JPEG or PNG and returns fields to pass to create_digital_business_card. Creates nothing. Not for QR codes (use scan_qr_code).

Inputs: image, mime_type, base64_image. Returns: object

scan_qr_codeScan QR codeA
Read-onlyIdempotent
Inspect

Use this when the user shares a picture of a QR code and wants to know what it contains or where it leads. Reads every QR code in a PNG, JPEG or WebP image and returns the decoded content and its type (link, Wi-Fi, contact, event, email, phone, payment, text). Read-only; creates nothing. Do not use it for counting how many times a code was scanned (use get_qrcode_scans) or for business cards (use scan_business_card).

Inputs: image, base64_image. Returns: object

search_knowledge_baseSearch knowledge baseA
Read-onlyIdempotent
Inspect

Search the official QRStuff knowledge base and help documentation for guides, tutorials, feature explanations, and FAQs about QR codes, short links, and account settings.

Inputs: query (required). Returns: matches

submit_batchSubmit batchAInspect

Use this when the user has filled in the bulk spreadsheet and wants the codes made. Starts a background job that creates one QR code or short link per row; check it with get_batch_status. Upload the XLSX with upload_file first (and a ZIP for file-based types).

Inputs: batch_name (required), batch_file_id (required), idproject, batch_type, +1 more. Returns: object

transfer_qrcodeTransfer QR codeA
DestructiveIdempotent
Inspect

Use this only when the user made a QR code without signing in and wants it moved into their account. Needs the code ID or short-URL key. Changes ownership.

Inputs: idqrcode, idproject, shorturl_key. Returns: ok

update_qr_codeUpdate QR codeA
DestructiveIdempotent
Inspect

Use this when the user wants to change a QR code already in their account: where a dynamic code points, its text or content, or its look (colours, shapes, logo, frame, size). Call get_qr_code_by_id first and send the full merged settings; this overwrites the saved settings. A static code that is already printed cannot change what it encodes. Do not use it to make a new code (use generate_qr_code).

Inputs: input (required).

update_qrcode_variant_statusUpdate QR code variant statusA
DestructiveIdempotent
Inspect

Use this when the user wants to switch one Smart Rule variant on or off. Needs the variant ID.

Inputs: status (required), idqrcode_variant (required). Returns: object

upload_fileUpload fileAInspect

Use this only as a step before generate_qr_code, update_qr_code or submit_batch, when the user has given a file to put behind a code (PDF, image, audio, video) or a logo or background image. Uploads it to the user's QRStuff storage and returns an idfs_file ID. Makes no QR code by itself.

Inputs: file, mime_type, base64_data. Returns: idfs_file

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Generate QR codes and create, edit and track dynamic (editable) QR codes with scan analytics, folders, style themes and branded subdomain management. Free REST API with an OpenAPI spec alongside; every tool takes a free API key.
      12
      AGPL 3.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables generating QR codes from URLs or text without an API key, and creating trackable short links whose printed QR codes can be re-pointed after printing.
      56 npm
      MIT
    • A
      license
      A
      quality
      F
      maintenance
      Dynamic QR code platform for AI agents. Create, customize, and track QR codes without regenerating images. 37 tools covering 11 QR types (URL, vCard, WiFi, event…).
      37
      3
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI clients to generate QR codes for URLs, WiFi networks, contacts, text and email, and to list saved codes and read scan analytics by time range, device, OS and approximate location. Connects over a remote streamable HTTP endpoint with no installation required, though the analytics and account tools require an API key.
      3
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources