Tools reference
Every tool the DynaQR MCP server offers, with inputs, plan and what it changes.
The assistant picks these tools itself, so you don't need to name them. This page lists what each one does and what it changes.
| Tool | What it does | Plan | Changes data |
|---|---|---|---|
generate_static_qr | Draws a static QR code image | All | No |
get_workspace | Plan and dynamic code usage | All | No |
list_codes | Finds codes and their ids | Starter+ | No |
get_code | One code, its rules and QR image | Starter+ | No |
create_dynamic_code | Creates a dynamic URL code | Starter+ | Yes |
update_destination | Changes where a code points | Starter+ | Yes, overwrites |
pause_code | Pauses or resumes a code | Starter+ | Yes, overwrites |
get_scan_stats | Scans and breakdowns for a code | Starter+ | No |
set_redirect_rules | Replaces a code's redirect rules | Pro+ | Yes, overwrites |
list_leads | Reads lead form submissions | Pro+ | No |
export_leads | Leads as CSV | Pro+ | No |
list_bio_pages | Finds bio pages and their ids | Starter+ | No |
create_bio_page | Creates a bio page | Starter+ | Yes |
update_bio_page | Edits a bio page | Starter+ | Yes, overwrites |
Every tool that changes data is marked so that assistants ask you before running it. Assistants that support confirmation forms also show a DynaQR form listing the exact change, and nothing changes unless you accept it.
Results include a short text summary for the assistant and structured data (ids, short links, numbers) it can use in follow-up steps. Tools that show a code also return the QR image as SVG.
generate_static_qr
Draws a QR code that contains the text or URL itself. Nothing is saved, the code can't be edited and scans aren't counted. It doesn't use a dynamic code slot. It also checks the design and passes on warnings such as low contrast.
Your assistant makes dynamic codes unless you ask for a static one. If it can't tell which you want, it asks first. Every static result ends with a warning that the code can't be changed once printed, and on the Free plan it also suggests a dynamic code. The same tool is available with no account on the free endpoint.
| Input | Required | Notes |
|---|---|---|
content | Yes | URL or text to encode, 1 to 2,000 characters |
foreground | No | Dot colour, hex like #000000 |
background | No | Background colour, hex (default #ffffff) |
dotStyle | No | square, rounded or dots |
cornerStyle | No | square, rounded or dot |
logoUrl | No | https URL of a logo for the centre |
frameText | No | Call to action under the code, up to 24 characters, e.g. SCAN ME |
Returns the image, the QR version (size), and any scannability warnings.
get_workspace
Returns the connected workspace's plan and how many dynamic code slots are used and available. No inputs.
list_codes
Lists dynamic codes, newest first, 100 per page, with id, status, destination, short link and tags. Archived codes are hidden unless you ask for archived ones.
| Input | Required | Notes |
|---|---|---|
search | No | Part of the name or short-link slug |
status | No | active, paused, archived or disabled |
tag | No | Only codes with this tag |
page | No | Page number, default 1 |
get_code
Shows one code: destination, status, short link, tags, created and updated dates, its redirect rules, and the QR image.
| Input | Required | Notes |
|---|---|---|
codeId | Yes | Code id from list_codes |
create_dynamic_code
Creates a dynamic code that redirects to a URL and counts scans. Uses one dynamic code slot (Starter 25, Pro 100, Business 500). Returns the QR image, short link and id.
| Input | Required | Notes |
|---|---|---|
name | Yes | Internal name, 1 to 120 characters |
url | Yes | Destination, http or https |
placement | No | Where it will be printed, shown in reports |
tags | No | Up to 20 tags |
update_destination
Changes the destination of a URL code. Printed codes open the new destination. The result includes the previous URL, so you can ask the assistant to undo it.
| Input | Required | Notes |
|---|---|---|
codeId | Yes | Code id |
url | Yes | New destination, http or https |
pause_code
Pauses a code (scans see a "temporarily unavailable" page) or resumes it.
| Input | Required | Notes |
|---|---|---|
codeId | Yes | Code id |
paused | Yes | true to pause, false to resume |
get_scan_stats
Scans, unique visitors and bot scans excluded, plus the top countries, cities, devices, operating systems, sources and matched rules for one code. Limited to the plan's history: one year on Starter, unlimited on Pro and Business.
| Input | Required | Notes |
|---|---|---|
codeId | Yes | Code id |
from | No | Start date (YYYY-MM-DD) or timestamp. Default: 30 days before to |
to | No | End date or timestamp. Default: now |
top | No | Rows per breakdown, 1 to 10, default 5 |
includeDaily | No | Also return scans per day |
set_redirect_rules
Replaces all redirect rules on a code. The assistant reads the current rules with get_code first and sends the full edited list; an empty list removes every rule. Conditions: country, region, city, device, language, time of day, days of the week and date range. Actions: redirect to a URL, or split traffic between 2 and 10 URLs for an A/B test. See Redirect rules in the API for the exact format.
| Input | Required | Notes |
|---|---|---|
codeId | Yes | Code id |
rules | Yes | Ordered list of up to 50 rules; the first match wins |
list_leads
Lists lead form submissions, newest first, 100 per page, with name, email, phone, message, the code and form they came from, and the country. Leads are personal data, so the assistant is told to show them only to you.
| Input | Required | Notes |
|---|---|---|
codeId | No | Only leads from this code |
formId | No | Only leads from this form |
from | No | Received on or after (date or timestamp) |
to | No | Received on or before (date or timestamp) |
page | No | Page number, default 1 |
export_leads
Same inputs as list_leads. Returns the page as CSV with the columns received, first_name, last_name, email, phone, message, code, form. Values that a spreadsheet would treat as formulas are made safe.
list_bio_pages
Lists bio pages with id, title, theme and number of links, and the plan's page limit. No inputs.
create_bio_page
Creates a mobile link page. Counts toward the plan's bio page limit (Starter 3, Pro 10, Business unlimited). The page goes live when a code points at it, which you set in the dashboard.
| Input | Required | Notes |
|---|---|---|
name | Yes | Internal name, up to 120 characters |
content.title | Yes | Heading, up to 80 characters |
content.description | No | Text under the heading, up to 300 characters |
content.theme | No | minimal (default), midnight, cobalt, dusk, editorial, playful, grove or blush |
content.links | No | Up to 30 buttons { label, url }, top to bottom. Labels up to 80 characters |
update_bio_page
Edits a bio page. Only the fields sent change. links replaces all link buttons; text, images, video, social links and lead forms added in the dashboard stay as they are. Changes go live on every code that shows the page.
| Input | Required | Notes |
|---|---|---|
bioPageId | Yes | Bio page id from list_bio_pages |
name | No | New internal name |
content.title | No | New heading |
content.description | No | New text; empty text clears it |
content.theme | No | New theme |
content.links | No | Complete new list of buttons; an empty list removes them |