create_qr_codeLABSCO SUMMARY
The QR image stays put; the destination does not have to.
Dynamic redirection is the whole argument — once a code is printed you cannot reprint it, so being able to change where it points, add campaign parameters or route by device is what separates this from an image generator. The analytics and conversion tools close the loop by telling you whether the scan led anywhere.
What it is
A QR-as-a-service API with an MCP server in front of it. The codes point at short URLs you can re-aim at any time, so the printed image never has to change.
What you get
- create_qr_code makes a URL code with optional custom styling; update_qr_destination changes where an existing code sends people
- Typed codes for the things people actually encode: create_vcard_qr, create_wifi_qr, create_email_qr, create_sms_qr, create_phone_qr, create_event_qr, create_text_qr, create_location_qr, create_social_qr and create_app_store_qr, with update tools for several of them
- list_qr_codes, get_qr_code and delete_qr_code cover the rest of the lifecycle
- get_qr_analytics returns scan statistics broken down by device, browser, operating system, country, city and referrer
- record_conversion and get_conversions tie post-scan events, such as a purchase or a signup, back to the code that led there
- bulk_create_qr_codes, bulk_update_qr_codes, bulk_delete_qr_codes and bulk_create_from_csv handle batches
- set_utm_params appends campaign parameters to the destination; set_redirect_rules routes by device, operating system, country, language, time range or an A/B split
- create_webhook, list_webhooks and delete_webhook deliver signed scan events to your own endpoint
- set_custom_domain and get_custom_domain put short links on your own domain; register, get_usage, upgrade_to_pro and manage_billing cover the account side
Requirements
An API key, which the register tool can obtain with just an email address, or which the server prints on first start if you self-host it. Node for the local server; the hosted API is the default target. Custom domains and CSV bulk upload sit on the paid tier.
Setup effort
One command plus a key — npx qr-for-agent, then supply credentials
USE CASES
Printing something before the landing page exists
Create the code now, point it somewhere temporary, and re-aim it when the real page ships.
Measuring whether a physical campaign worked
Read scans broken down by device, place and referrer, then check how many of them converted.
Sending iPhone and Android scans to different places
Set conditional rules on the code so device, country, language or time of day decides the destination.
Putting contact details or network access on a card
Generate a contact card or WiFi credentials code rather than encoding a URL that leads to them.
Generating a code per table, room or product
Create the batch in one call, or upload the whole list as CSV on the paid tier.
Reacting to a scan in your own system
Register a webhook for signed scan events, and post the conversion back when the visit turns into something.
37 tools
Listed in project docs. Your client may show a different list.
get_qr_codeupdate_qr_destinationlist_qr_codesdelete_qr_codeget_qr_analyticsbulk_create_qr_codesbulk_update_qr_codesbulk_delete_qr_codescreate_vcard_qrcreate_wifi_qrcreate_email_qrcreate_sms_qrcreate_phone_qrcreate_event_qrcreate_text_qrcreate_location_qrcreate_social_qrcreate_app_store_qrupdate_vcard_qrupdate_wifi_qrupdate_social_qrupdate_app_store_qrcreate_webhooklist_webhooksdelete_webhookregisterget_usageupgrade_to_promanage_billingset_utm_paramsset_redirect_rulesset_custom_domainget_custom_domainbulk_create_from_csvrecord_conversionget_conversionsBEFORE YOU INSTALL
What to know first
Tools you get
37 tools named in the project's documentation.
Requires
- npx on PATH
- API_KEY in your environment
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
npx qr-for-agentMCP Clients
Claude Desktop, Cursor
{
"mcpServers": {
"qr-for-agent": {
"command": "npx",
"args": [
"-y",
"qr-for-agent"
],
"env": {
"API_KEY": "<YOUR_API_KEY>",
"BASE_URL": "https://api.qrforagent.com"
}
}
}
}