Servidor MCP

OpenQR

uk.openqr/qr
Datos y analítica Marketing y publicidad Público y accesible MCP 2026-07-28

Qué hace este MCP

Creates and manages static or editable dynamic QR codes, short-link aliases, folders, themes, and scan analytics.

bulk_create_dynamic_qr
Create up to 200 dynamic QR codes at once. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['codes'], 'properties': {'codes': {'type': 'array', 'items': {'type': 'object', 'required': ['destination'], 'properties': {'label': {'type': 'string'}, 'destination': {'type': 'string'}}}, 'description': 'Codes to create.'}, 'theme': {'type': 'string', 'description': 'A saved theme id or name applied to every code created.'}}}
clear_subdomain
Release the branded subdomain. Codes stay live on the plain short link; only the {name}.oqr.to form stops resolving. The name becomes claimable by someone else. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'properties': {}}
create_dynamic_qr
Create an editable (dynamic) QR code whose destination you can change later without reprinting. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['destination'], 'properties': {'label': {'type': 'string', 'description': 'Optional label.'}, 'theme': {'type': 'string', 'description': 'A saved theme id or name to style the code with.'}, 'destination': {'type': 'string', 'description': 'The http(s) URL the code should point to.'}}}
create_folder
Create a folder to organise codes. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string'}}}
create_link_alias
Create an extra short link (link alias) that resolves where one of your dynamic codes points: share a different slug per channel while the QR keeps its own slug, so QR scans and link clicks are counted separately. Free accounts have no alias allowance; Pro includes 10. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The dynamic code id the alias should point at.'}, 'slug': {'type': 'string', 'description': 'Optional custom back-half (oqr.to/<slug>): 3–48 letters, numbers or hyphens. Omit for a random one.'}}}
create_static_qr
Save a static QR code to your library from structured fields: wifi, contact (vCard), email, SMS, WhatsApp, location, text, phone or URL. Static codes bake the content into the code itself — no short link, no scan analytics, not editable later. Render the returned payload with generate_qr. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['type', 'fields'], 'properties': {'type': {'enum': ['url', 'text', 'email', 'phone', 'sms', 'whatsapp', 'wifi', 'geo', 'vcard'], 'type': 'string', 'description': 'The payload type.'}, 'label': {'type': 'string', 'description': 'Optional label for your dashboard.'}, 'theme': {'type': 'string', 'description': 'A saved theme id or name to style the code with.'}, 'fields': {'type': 'object', 'description': 'Field names depend on type. url: url. text: text. email: email, subject?, body?. phone: phone. sms: phone, message?. whatsapp: phone (country code, digits only), message?. wifi: ssid, password?, encryption? (WPA|WEP|nopass), hidden? (boolean). geo: lat, lng. vcard: firstName?, lastName?, phone?, email?, org?, title?, url?, address? (a name/phone/email is required).'}}}
create_theme
Save a reusable style theme. `style` is a QR style object (fgColor, bgColor, dotType, cornerSquareType, etc.). Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['name', 'style'], 'properties': {'name': {'type': 'string'}, 'style': {'type': 'object', 'description': 'QR style JSON (colours, dot/corner shapes, logo, gradient, frame…).'}}}
delete_dynamic_qr
Permanently delete a dynamic QR code. The short link stops working. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The dynamic code id.'}}}
delete_folder
Delete a folder (its codes are un-filed, not deleted). Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}}}
delete_theme
Delete a saved theme. Codes already styled with it keep their look. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}}}
generate_qr
Generate a static QR code from any text/URL. Returns a PNG image (or SVG markup). Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'string', 'description': 'The content to encode (URL or text).'}, 'size': {'type': 'number', 'description': 'Pixel size, 96–2048 (default 512).'}, 'theme': {'type': 'string', 'description': "A saved theme id or name. Applies the theme's colours; full styling applies to dynamic codes."}, 'format': {'enum': ['png', 'svg'], 'type': 'string', 'description': 'Output format (default png).'}}}
get_dynamic_qr
Get the full details of one of your QR codes by id: destination, short link, label, type, tags, folder, status and created date. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The code id.'}}}
get_scans
Get scan statistics for a dynamic QR code. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The dynamic code id.'}}}
get_subdomain
Show the branded subdomain on this account ({name}.oqr.to). Reports whether it is currently suspended — a suspended subdomain redirects to the plain short link instead of serving, which happens when a Pro plan lapses. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'properties': {}}
list_dynamic_qr
List your dynamic (editable) QR codes — id, short URL, destination, label and status. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max codes to return, 1–500 (default 200).'}}}
list_folders
List your folders (id and name). Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'properties': {}}
list_link_aliases
List the link aliases of one dynamic code. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The dynamic code id.'}}}
list_themes
List your saved style themes (id, name) — apply one by passing its id or name as `theme` to generate/create/update tools. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'properties': {}}
set_subdomain
Claim or change the branded subdomain so codes also resolve at {name}.oqr.to. Pro only. Codes keep working on the plain short link either way, so changing this never breaks anything already printed. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['subdomain'], 'properties': {'subdomain': {'type': 'string', 'description': '3–32 letters, numbers or hyphens, e.g. "acme".'}}}
update_dynamic_qr
Edit a dynamic QR code: change its destination, label, custom short link (slug), tags or folder. Pass only the fields you want to change. Requires an OpenQR API key.
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The dynamic code id.'}, 'pin': {'type': ['string', 'null'], 'description': 'Pro: require a 4-digit PIN before the code redirects. Exactly 4 digits. Pass null to remove all protection.'}, 'slug': {'type': 'string', 'description': 'Custom short-link back-half (oqr.to/<slug>): 3–48 letters, numbers or hyphens.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': "Replace the code's tags (max 10)."}, 'label': {'type': 'string', 'description': 'New label.'}, 'theme': {'type': 'string', 'description': 'A saved theme id or name to restyle the code with.'}, 'status': {'enum': ['active', 'paused'], 'type': 'string', 'description': 'Pause the code (it stops resolving — scanners see an inactive page) or reactivate it. Free allows 1 active code; Pro 25.'}, 'password': {'type': ['string', 'null'], 'description': 'Pro: require this password before the code redirects (min 4 characters). Pass null to remove all protection.'}, 'folder_id': {'type': ['string', 'null'], 'description': 'Move into a folder id, or null to un-file.'}, 'lock_hint': {'type': ['string', 'null'], 'description': 'Optional hint shown on the unlock page, e.g. "Ask at the bar". Max 60 characters.'}, 'destination': {'type': 'string', 'description': 'New http(s) URL.'}, 'pause_until': {'type': ['string', 'null'], 'description': 'ISO 8601 timestamp: schedule a pause until then (scanners see the inactive page; the code self-resumes at the deadline). Pass null to clear the schedule. Future timestamps only, active codes only.'}, 'ios_destination': {'type': ['string', 'null'], 'description': 'App links: iOS scanners follow this http(s) URL instead of destination (e.g. the App Store page). Pass null to clear. Applies to the plain redirect only.'}, 'android_destination': {'type': ['string', 'null'], 'description': 'App links: Android scanners follow this http(s) URL instead of destination (e.g. the Google Play page). Pass null to clear.'}}}
Añadido
clear_subdomain
17 de September de 2026 a las 12:55
Añadido
set_subdomain
17 de September de 2026 a las 12:55
Añadido
get_subdomain
17 de September de 2026 a las 12:55
Añadido
delete_theme
17 de September de 2026 a las 12:55
Añadido
create_theme
17 de September de 2026 a las 12:55
Añadido
list_themes
17 de September de 2026 a las 12:55
Añadido
delete_folder
17 de September de 2026 a las 12:55
Añadido
create_folder
17 de September de 2026 a las 12:55
Añadido
list_folders
17 de September de 2026 a las 12:55
Añadido
bulk_create_dynamic_qr
17 de September de 2026 a las 12:55
Añadido
delete_dynamic_qr
17 de September de 2026 a las 12:55
Añadido
list_dynamic_qr
17 de September de 2026 a las 12:55
Añadido
list_link_aliases
17 de September de 2026 a las 12:55
Añadido
create_link_alias
17 de September de 2026 a las 12:55
Añadido
get_scans
17 de September de 2026 a las 12:55
Añadido
get_dynamic_qr
17 de September de 2026 a las 12:55
Añadido
update_dynamic_qr
17 de September de 2026 a las 12:55
Añadido
create_static_qr
17 de September de 2026 a las 12:55
Añadido
create_dynamic_qr
17 de September de 2026 a las 12:55
Añadido
generate_qr
17 de September de 2026 a las 12:55