addrbookFor publishers
← The evidence ledger

Evidence row 383180

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 68118ca1-4790-4cbf-88f7-82bac9f1aba1
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
e11b85f7bc776eaa2e644a2cc0c241bd013586bc770ce2b6f6c2f6656986d04f
Leaf
0xdadafbbaaed40f1f3c60e17ddc4dac5601bc179c0f630ceee60be154e06b1025

What was observed

{
  "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"
    }
  ]
}

What the leaf hashes

{"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"}

Proof

Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.

How to check it · This row as JSON