Generate, edit and track dynamic (editable) QR codes with scan analytics. Hosted MCP and REST API.
MCPpedia last refreshed this data
uk.openqr/qr is an MCP server that generate, edit and track dynamic (editable) QR codes with scan analytics. Hosted MCP and REST API. Its tool list has not been published yet over http, requires no API key, and scores 82/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"uk-openqr-qr": {
"args": [
"-y",
"pnpm"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Generate, edit and track dynamic (editable) QR codes with scan analytics. Hosted MCP and REST API.
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
pnpm: Virtual store linker path traversal via unvalidated depPath name in lockfileToDepGraph
## Summary The virtual store linker constructs package installation directories using `path.join(modules, pkgName)` where `pkgName` is extracted from lockfile `packages` keys via `dp.parse(depPath).name` without validation. A crafted `pnpm-lock.yaml` with traversal sequences in depPath keys (e.g., `../../../tmp/pwned@1.0.0`) causes package content to be written to arbitrary filesystem paths during `pnpm install`. This is an incomplete fix of GHSA-fr4h-3cph-29xv — the `safeJoinModulesDir` conta
pnpm: A tarball dependency's manifest `name` escapes node_modules → arbitrary file write/overwrite on install
## Summary When resolving a package, pnpm uses the resolved **manifest `name`** as a raw path segment for the isolated-linker import target. A tarball dependency whose `package.json` `name` is a scoped path traversal (`@x/../../…/<abs path>`) is therefore extracted **outside `node_modules`**, to an attacker-chosen absolute path, and can **overwrite existing files** there. Attacker controls the destination, filenames, and contents → arbitrary file write → **code execution** (e.g. `~/.zshrc`, `.gi
pnpm: Environment secrets exfiltrated via env-placeholder expansion in proxy settings read from an untrusted pnpm-workspace.yaml
## Summary pnpm expands `${VAR}` environment placeholders in the `httpProxy` / `httpsProxy` / `noProxy` settings read from a project's `pnpm-workspace.yaml`. Because a project manifest is repository-controlled, a malicious repository that a victim merely clones and runs `pnpm install` in can route all install traffic through an attacker proxy whose hostname or userinfo embeds — and thereby exfiltrates — an environment secret such as `NPM_TOKEN` or `GITHUB_TOKEN`. This bypasses a trust boundary
pnpm: Environment secrets exfiltrated via env-placeholder expansion in proxy settings read from an untrusted pnpm-workspace.yaml
## Summary pnpm expands `${VAR}` environment placeholders in the `httpProxy` / `httpsProxy` / `noProxy` settings read from a project's `pnpm-workspace.yaml`. Because a project manifest is repository-controlled, a malicious repository that a victim merely clones and runs `pnpm install` in can route all install traffic through an attacker proxy whose hostname or userinfo embeds — and thereby exfiltrates — an environment secret such as `NPM_TOKEN` or `GITHUB_TOKEN`. This bypasses a trust boundary
pnpm: pacquet trust-lockfile install can create dependency symlinks outside the project
## Summary A crafted lockfile alias could reach several install-time filesystem joins. With `--trust-lockfile` or a frozen lockfile, traversal segments could create links outside the intended project or `node_modules` boundary. This patch validates dependency names and every virtual-store slot before creating directories, links, bins, or hoisted entries. ## Security boundary - A shared safe-join helper rejects traversal, absolute, platform-specific, and reserved dependency names before filesy
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in other
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 60-95% fewer tokens, same answers. Library, proxy, MCP server.
SQL for Android APK and DEX files: classes, methods, strings, references and smali.
A curated list of skills, tools, tutorials, and capabilities for AI coding agents (Claude, Codex, Antigravity, Copilot, VS Code)
MCP Security Weekly
Get CVE alerts and security updates for uk.openqr/qr and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Free, open-source, watermark-free QR code generator. Runs entirely in your browser — no tracking, no sign-up, no limits.
Most online QR generators bait you with "free" and then add a watermark, cap your download size, hide vector export behind a paywall, or route your code through their servers so it dies when you stop paying. A QR code is just an open standard (ISO/IEC 18004) that costs nothing to generate. OpenQR keeps it that way.
This repository is the basic generator tool — the reference open-source implementation. It is deliberately small and easy to fork.
If OpenQR is useful to you, a star on the repository helps other people find it. That is the whole ask.
Everything in this repo is and stays free, with no watermark and no expiry. The hosted build at openqr.uk adds an optional account layer for people who want editable codes and automation:
/openapi.json; interactive docs
at openqr.uk/api.https://openqr.uk/mcp (Streamable HTTP).
Generate and manage QR codes directly from Claude, Cursor or any MCP client. Listed
in the official MCP Registry.
Remote-capable clients connect to that URL directly; stdio-only clients can
bridge to it with npx -y @open-qr/mcp and OPENQR_API_KEY set
(details).The static generator in this repository never calls any of that. It stays 100% client-side (see Privacy), and none of it is required to use or self-host the generator.
Get a free key at openqr.uk/api, then point your client at the server with the key as an auth header.
Claude Code:
claude mcp add --transport http openqr https://openqr.uk/mcp \
--header "Authorization: Bearer oqr_YOUR_KEY"
Cursor (~/.cursor/mcp.json), and any other client that speaks Streamable HTTP:
{
"mcpServers": {
"openqr": {
"url": "https://openqr.uk/mcp",
"headers": {
"Authorization": "Bearer oqr_YOUR_KEY"
}
}
}
}
The hosted MCP server at https://openqr.uk/mcp exposes these tools (run tools/list for the live set). Every tool
requires a free API key — create one at openqr.uk/api and pass
it as Authorization: Bearer oqr_... on the MCP connection.
| Tool | What it does |
|---|---|
generate_qr | Generate a static QR code from any text or URL. Returns a PNG image or SVG markup. |
create_dynamic_qr | Create an editable QR code whose destination you can change later without reprinting. |
update_dynamic_qr | Change a dynamic code's destination, label, custom short link, tags or folder. |
get_dynamic_qr | Get one code's full details: destination, short link, label, type, tags, folder, status, created date. |
get_scans | Scan statistics for a dynamic code. |
list_dynamic_qr | List your dynamic codes |