{"id":383180,"recorded_at":"2026-10-27T00:09:58.500805Z","observed_at":"2026-10-27T00:09:58.500757Z","subject_kind":"endpoint","subject":"68118ca1-4790-4cbf-88f7-82bac9f1aba1","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":23,"tools":[{"description":"Create up to 200 dynamic QR codes at once. Requires an OpenQR API key.","inputSchema":{"properties":{"codes":{"description":"Codes to create.","items":{"properties":{"destination":{"type":"string"},"label":{"type":"string"}},"required":["destination"],"type":"object"},"type":"array"},"theme":{"description":"A saved theme id or name applied to every code created.","type":"string"}},"required":["codes"],"type":"object"},"name":"bulk_create_dynamic_qr"},{"description":"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.","inputSchema":{"properties":{},"type":"object"},"name":"clear_subdomain"},{"description":"Create an editable (dynamic) QR code whose destination you can change later without reprinting. Requires an OpenQR API key.","inputSchema":{"properties":{"destination":{"description":"The http(s) URL the code should point to.","type":"string"},"label":{"description":"Optional label.","type":"string"},"theme":{"description":"A saved theme id or name to style the code with.","type":"string"}},"required":["destination"],"type":"object"},"name":"create_dynamic_qr"},{"description":"Create a folder to organise codes. Requires an OpenQR API key.","inputSchema":{"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"name":"create_folder"},{"description":"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.","inputSchema":{"properties":{"id":{"description":"The dynamic code id the alias should point at.","type":"string"},"slug":{"description":"Optional custom back-half (oqr.to/<slug>): 3–48 letters, numbers or hyphens. Omit for a random one.","type":"string"}},"required":["id"],"type":"object"},"name":"create_link_alias"},{"description":"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.","inputSchema":{"properties":{"fields":{"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).","type":"object"},"label":{"description":"Optional label for your dashboard.","type":"string"},"theme":{"description":"A saved theme id or name to style the code with.","type":"string"},"type":{"description":"The payload type.","enum":["url","text","email","phone","sms","whatsapp","wifi","geo","vcard"],"type":"string"}},"required":["type","fields"],"type":"object"},"name":"create_static_qr"},{"description":"Save a reusable style theme. `style` is a QR style object (fgColor, bgColor, dotType, cornerSquareType, etc.). Requires an OpenQR API key.","inputSchema":{"properties":{"name":{"type":"string"},"style":{"description":"QR style JSON (colours, dot/corner shapes, logo, gradient, frame…).","type":"object"}},"required":["name","style"],"type":"object"},"name":"create_theme"},{"description":"Permanently delete a dynamic QR code. The short link stops working. Requires an OpenQR API key.","inputSchema":{"properties":{"id":{"description":"The dynamic code id.","type":"string"}},"required":["id"],"type":"object"},"name":"delete_dynamic_qr"},{"description":"Delete a folder (its codes are un-filed, not deleted). Requires an OpenQR API key.","inputSchema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"name":"delete_folder"},{"description":"Delete a saved theme. Codes already styled with it keep their look. Requires an OpenQR API key.","inputSchema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"name":"delete_theme"},{"description":"Build a static EPC/SEPA payment payload (EPC069-12, the GiroCode/BezahlCode European banks scan) and optionally render it as a QR image. Returns the payload string by default. Static and untracked — nothing is saved to the library. Requires an OpenQR API key.","inputSchema":{"properties":{"amount":{"description":"Optional EUR amount, e.g. 12.34.","type":"string"},"bic":{"description":"Optional BIC, 8 or 11 chars.","type":"string"},"force":{"description":"Build even when validation reports problems (they return as warnings).","type":"boolean"},"format":{"description":"Return a rendered image instead of the payload string.","enum":["png","svg"],"type":"string"},"iban":{"description":"IBAN, with or without spaces (checksum-validated).","type":"string"},"name":{"description":"Beneficiary name, ≤70 chars.","type":"string"},"purpose":{"description":"Optional 4-character purpose code.","type":"string"},"reference":{"description":"ISO 11649 creditor reference, ≤35 chars. Mutually exclusive with text.","type":"string"},"size":{"description":"Image size, 96–2048 (default 512).","type":"number"},"text":{"description":"Unstructured remittance text, ≤140 chars. Mutually exclusive with reference.","type":"string"}},"required":["name","iban"],"type":"object"},"name":"generate_epc_code"},{"description":"Build a static PIX (BR Code) payment payload for Brazil and optionally render it as a QR image. Returns the payload string by default (render it with generate_qr, or pass format). Static and untracked — nothing is saved to the library. Requires an OpenQR API key.","inputSchema":{"properties":{"amount":{"description":"Optional amount in BRL, e.g. 10.50.","type":"string"},"city":{"description":"Merchant city, ≤15 chars.","type":"string"},"description":{"description":"Optional description, ≤25 chars.","type":"string"},"force":{"description":"Build even when validation reports problems (they return as warnings) — e.g. a check-digit warning you have verified yourself.","type":"boolean"},"format":{"description":"Return a rendered image instead of the payload string.","enum":["png","svg"],"type":"string"},"key":{"description":"PIX key: CPF, CNPJ, email, +55 phone or random (EVP) key.","type":"string"},"name":{"description":"Merchant name, ≤25 chars (diacritics stripped to ASCII).","type":"string"},"singleUse":{"description":"Emit point-of-initiation 11: the code works for one payment only. Default reusable.","type":"boolean"},"size":{"description":"Image size, 96–2048 (default 512).","type":"number"},"txid":{"description":"Transaction id, 1-25 letters/digits. Defaults to ***.","type":"string"}},"required":["key","name","city"],"type":"object"},"name":"generate_pix_code"},{"description":"Generate a static QR code from any text/URL. Returns a PNG image (or SVG markup). Requires an OpenQR API key.","inputSchema":{"properties":{"data":{"description":"The content to encode (URL or text).","type":"string"},"format":{"description":"Output format (default png).","enum":["png","svg"],"type":"string"},"size":{"description":"Pixel size, 96–2048 (default 512).","type":"number"},"theme":{"description":"A saved theme id or name. Applies the theme's colours; full styling applies to dynamic codes.","type":"string"}},"required":["data"],"type":"object"},"name":"generate_qr"},{"description":"Build a static UPI (upi://pay) payment payload for India and optionally render it as a QR image. Returns the payload string by default. Static and untracked — nothing is saved to the library. Requires an OpenQR API key.","inputSchema":{"properties":{"amount":{"description":"Optional amount in INR, e.g. 25.50.","type":"string"},"force":{"description":"Build even when validation reports problems (they return as warnings).","type":"boolean"},"format":{"description":"Return a rendered image instead of the payload string.","enum":["png","svg"],"type":"string"},"note":{"description":"Optional payment note (≤50 chars keeps every UPI app happy).","type":"string"},"payeeName":{"description":"Payee name shown in the payer's app.","type":"string"},"size":{"description":"Image size, 96–2048 (default 512).","type":"number"},"vpa":{"description":"Virtual payment address, e.g. name@bank.","type":"string"}},"required":["vpa","payeeName"],"type":"object"},"name":"generate_upi_code"},{"description":"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.","inputSchema":{"properties":{"id":{"description":"The code id.","type":"string"}},"required":["id"],"type":"object"},"name":"get_dynamic_qr"},{"description":"Get scan statistics for a dynamic QR code. Requires an OpenQR API key.","inputSchema":{"properties":{"id":{"description":"The dynamic code id.","type":"string"}},"required":["id"],"type":"object"},"name":"get_scans"},{"description":"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.","inputSchema":{"properties":{},"type":"object"},"name":"get_subdomain"},{"description":"List your dynamic (editable) QR codes — id, short URL, destination, label and status. Requires an OpenQR API key.","inputSchema":{"properties":{"limit":{"description":"Max codes to return, 1–500 (default 200).","type":"number"}},"type":"object"},"name":"list_dynamic_qr"},{"description":"List your folders (id and name). Requires an OpenQR API key.","inputSchema":{"properties":{},"type":"object"},"name":"list_folders"},{"description":"List the link aliases of one dynamic code. Requires an OpenQR API key.","inputSchema":{"properties":{"id":{"description":"The dynamic code id.","type":"string"}},"required":["id"],"type":"object"},"name":"list_link_aliases"},{"description":"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.","inputSchema":{"properties":{},"type":"object"},"name":"list_themes"},{"description":"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.","inputSchema":{"properties":{"subdomain":{"description":"3–32 letters, numbers or hyphens, e.g. \"acme\".","type":"string"}},"required":["subdomain"],"type":"object"},"name":"set_subdomain"},{"description":"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.","inputSchema":{"properties":{"android_destination":{"description":"App links: Android scanners follow this http(s) URL instead of destination (e.g. the Google Play page). Pass null to clear.","type":["string","null"]},"destination":{"description":"New http(s) URL.","type":"string"},"folder_id":{"description":"Move into a folder id, or null to un-file.","type":["string","null"]},"id":{"description":"The dynamic code id.","type":"string"},"ios_destination":{"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.","type":["string","null"]},"label":{"description":"New label.","type":"string"},"lock_hint":{"description":"Optional hint shown on the unlock page, e.g. \"Ask at the bar\". Max 60 characters.","type":["string","null"]},"password":{"description":"Pro: require this password before the code redirects (min 4 characters). Pass null to remove all protection.","type":["string","null"]},"pause_until":{"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.","type":["string","null"]},"pin":{"description":"Pro: require a 4-digit PIN before the code redirects. Exactly 4 digits. Pass null to remove all protection.","type":["string","null"]},"slug":{"description":"Custom short-link back-half (oqr.to/<slug>): 3–48 letters, numbers or hyphens.","type":"string"},"status":{"description":"Pause the code (it stops resolving — scanners see an inactive page) or reactivate it. Free allows 1 active code; Pro 25.","enum":["active","paused"],"type":"string"},"tags":{"description":"Replace the code's tags (max 10).","items":{"type":"string"},"type":"array"},"theme":{"description":"A saved theme id or name to restyle the code with.","type":"string"}},"required":["id"],"type":"object"},"name":"update_dynamic_qr"}]},"body_sha256":"e11b85f7bc776eaa2e644a2cc0c241bd013586bc770ce2b6f6c2f6656986d04f","prev_id":null,"leaf":"0xdadafbbaaed40f1f3c60e17ddc4dac5601bc179c0f630ceee60be154e06b1025","leaf_text":"{\"body\":\"e11b85f7bc776eaa2e644a2cc0c241bd013586bc770ce2b6f6c2f6656986d04f\",\"id\":383180,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793059798500757,\"prev\":null,\"subject\":\"68118ca1-4790-4cbf-88f7-82bac9f1aba1\",\"subject_kind\":\"endpoint\"}","day":null,"proof":[]}