Generate QR codes and create, edit, and track dynamic QR codes with scan analytics.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 1 month ago Due for re-check
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The OpenQR MCP server exposes 17 tools, focused primarily on filesystem capabilities. Its published description reads: "Generate QR codes and create, edit, and track dynamic QR codes with scan analytics". It communicates over Streamable HTTP using the 2026-07-28 protocol revision, and does not require authorization to connect. MCPGrade currently rates OpenQR F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Tool input schema requests a secret" and "Unguarded destructive tools". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check OpenQR's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add OpenQR to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://openqr.uk/mcpStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
Generate a static QR code from any text/URL. Returns a PNG image (or SVG markup). Requires an OpenQR API key.
Create an editable (dynamic) QR code whose destination you can change later without reprinting. Requires an OpenQR API key.
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.
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: update_dynamic_qr
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "password"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: delete_folder
Tools that execute commands / write files / make arbitrary requests are exposed without annotations or guards.
delete_folder Delete a folder (its codes are un-filed, not deleted). RequiresRecommendationAnnotate destructive tools and require human approval.
tool: get_subdomain
A tool description tries to alter the model’s use of another tool.
k instead of serving, which happens when a Pro plan lapses. Requires an OpRecommendationDescriptions must describe only their own tool.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
tool: create_dynamic_qr
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "create_dynamic_qr"RecommendationScope tools to the minimum needed.
tool: delete_dynamic_qr
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "delete_dynamic_qr"RecommendationScope tools to the minimum needed.
tool: bulk_create_dynamic_qr
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "bulk_create_dynamic_qr"RecommendationScope tools to the minimum needed.
tool: list_folders
One tool both accesses the filesystem and reaches the network. Combining two capability classes in a single tool widens its blast radius and is the substrate for confused-deputy and exfiltration abuse.
list_folders List your folders (id and name). Requires an OpenQR API key. {"tyRecommendationSeparate filesystem and network capabilities into distinct, independently-scoped tools.
tool: create_folder
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "create_folder"RecommendationScope tools to the minimum needed.
tool: create_folder
One tool both accesses the filesystem and reaches the network. Combining two capability classes in a single tool widens its blast radius and is the substrate for confused-deputy and exfiltration abuse.
create_folder Create a folder to organise codes. Requires an OpenQR API key.RecommendationSeparate filesystem and network capabilities into distinct, independently-scoped tools.
tool: delete_folder
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "delete_folder"RecommendationScope tools to the minimum needed.
tool: delete_folder
One tool both accesses the filesystem and reaches the network. Combining two capability classes in a single tool widens its blast radius and is the substrate for confused-deputy and exfiltration abuse.
delete_folder Delete a folder (its codes are un-filed, not deleted). RequiresRecommendationSeparate filesystem and network capabilities into distinct, independently-scoped tools.
tool: list_themes
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "list_themes"RecommendationScope tools to the minimum needed.
tool: delete_theme
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "delete_theme"RecommendationScope tools to the minimum needed.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
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.
Get scan statistics for a dynamic QR code. Requires an OpenQR API key.
List your dynamic (editable) QR codes — id, short URL, destination, label and status. Requires an OpenQR API key.
Permanently delete a dynamic QR code. The short link stops working. Requires an OpenQR API key.
Create up to 200 dynamic QR codes at once. Requires an OpenQR API key.
List your folders (id and name). Requires an OpenQR API key.
Create a folder to organise codes. Requires an OpenQR API key.
Delete a folder (its codes are un-filed, not deleted). Requires an OpenQR API key.
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.
Save a reusable style theme. `style` is a QR style object (fgColor, bgColor, dotType, cornerSquareType, etc.). Requires an OpenQR API key.
Delete a saved theme. Codes already styled with it keep their look. Requires an OpenQR API key.
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
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. R
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.