OpenQR
官方生成二维码,并通过托管的MCP服务器(17个工具)和免费REST API管理动态(可编辑)二维码,附带扫描分析功能。
你可以用 OpenQR MCP 做什么?
- 生成静态二维码 — 通过
generate_qr从任何文本或 URL 生成二维码,支持返回 PNG 或 SVG 格式。 - 创建可编辑的动态码 — 使用
create_dynamic_qr生成二维码,其目标地址可在后续修改,无需重新打印。 - 更新与管理二维码 — 通过
update_dynamic_qr修改目标地址、标签、标签组或文件夹,或使用list_dynamic_qr和delete_dynamic_qr进行列表查看与删除。 - 批量生成用于印刷活动 — 使用
bulk_create_dynamic_qr一次生成最多 200 个动态二维码。 - 通过文件夹和主题进行组织 — 使用
create_folder创建文件夹,并通过create_theme保存可复用的样式预设,以应用一致的品牌形象。 - 追踪扫描分析 — 使用
get_scans获取任意动态二维码的扫描统计数据,包括国家级别的数据。
文档
OpenQR
免费、开源、无水印的二维码生成器。 完全在浏览器中运行——无追踪、无需注册、无限制。
大多数在线二维码生成器以“免费”为诱饵,然后添加水印、限制下载大小、将矢量导出置于付费墙之后,或者通过他们的服务器路由你的二维码,这样当你停止付费时它就会失效。二维码只是一个开放标准(ISO/IEC 18004),生成它不需要任何成本。OpenQR 保持了这一点。
本仓库是基础生成器工具——参考开源实现。它刻意保持小巧且易于分叉。
托管版本:免费 API、MCP 服务器和可编辑二维码
本仓库中的所有内容都是且将保持免费,无水印、无过期。位于 openqr.uk 的托管版本为需要可编辑二维码和自动化的用户增加了可选账户层:
- 动态/可编辑二维码,带扫描分析功能。打印后仍可更改目标地址。免费账户可免费创建 3 个(7 天按国家统计的扫描数据);Pro 版无限量,价格为每月 £9 或每年 £72,同时解锁完整分析历史、城镇和地区详情、设备和来源细分(支持 CSV 导出)、品牌子域名以及密码保护二维码。
- 免费 REST API。 以编程方式生成二维码和管理动态二维码。OpenAPI 规范见
/openapi.json;交互式文档见 openqr.uk/api。 - 托管 MCP 服务器,地址为
https://openqr.uk/mcp(Streamable HTTP,17 个工具)。可直接从 Claude、Cursor 或任何 MCP 客户端生成和管理二维码。已列入官方 MCP 注册表。支持远程的客户端可直接连接该 URL;仅支持 stdio 的客户端可通过设置npx -y @open-qr/mcp和OPENQR_API_KEY进行桥接(详情)。
本仓库中的静态生成器从不调用上述任何功能。它保持 100% 客户端运行(见隐私),并且使用或自托管生成器均不需要其中任何功能。
工具
位于 https://openqr.uk/mcp 的托管 MCP 服务器提供以下 17 个工具。每个工具都需要免费 API 密钥——在 openqr.uk/api 创建一个,并在 MCP 连接时作为 Authorization: Bearer oqr_... 传入。
| 工具 | 功能 |
|---|---|
generate_qr | 从任何文本或 URL 生成静态二维码。返回 PNG 图像或 SVG 标记。 |
create_dynamic_qr | 创建可编辑二维码,其目标地址可在之后更改而无需重新打印。 |
update_dynamic_qr | 更改动态二维码的目标地址、标签、自定义短链接、标签或文件夹。 |
get_dynamic_qr | 获取单个二维码的完整详情:目标地址、短链接、标签、类型、标签、文件夹、状态、创建日期。 |
get_scans | 动态二维码的扫描统计。 |
list_dynamic_qr | 列出你的动态二维码,包含 id、短 URL、目标地址、标签和状态。 |
delete_dynamic_qr | 永久删除动态二维码。其短链接将停止工作。 |
bulk_create_dynamic_qr | 一次创建最多 200 个动态二维码。 |
list_folders | 列出你的文件夹。 |
create_folder | 创建文件夹以组织二维码。 |
delete_folder | 删除文件夹。其中的二维码将被取消归档,而非删除。 |
list_themes | 列出已保存的样式主题。通过传入其 id 或名称作为 theme 来应用。 |
create_theme | 保存可复用的样式主题(颜色、圆点和角样式)。 |
delete_theme | 删除已保存的主题。已使用该主题样式的二维码保持其外观不变。 |
get_subdomain | 显示账户上的品牌子域名,以及其是否被暂停。 |
set_subdomain | 认领或更改品牌子域名,使二维码也能在 {name}.oqr.to 解析。仅限 Pro。 |
clear_subdomain | 释放品牌子域名。二维码在普通短链接上保持可用。 |
它还提供 5 个资源和 4 个提示:
- 资源是内置的二维码样式预设,位于
openqr://preset/classic、/teal、/high-contrast、/dots和/classy。读取一个并将其样式传递给create_theme。 - 提示为
create_tracked_qr、bulk_qr_for_print、brand_a_qr和qr_scan_report。
功能特性
- 无水印、无大小限制、无需注册——每个功能都免费
- 隐私优先设计——二维码完全在浏览器中生成;内容永远不会触及服务器
- 随处导出——PNG / WebP 最高 4096px,以及真正的矢量 SVG 和 PDF
- 完整样式——颜色、渐变、圆点和角样式、Logo 嵌入、“扫描我”边框
- 智能输入——粘贴链接或文本,类型自动检测
- 丰富负载——URL、文本、电子邮件、电话、短信、WhatsApp、Wi-Fi,以及基于地图的位置选择器
- 一键复制、可分享的设计链接、浅色/深色模式、响应式、键盘无障碍
快速开始
pnpm install
pnpm dev # http://localhost:3011
构建与自托管
pnpm build
pnpm start # serves on :3011 (standalone output)
这是一个标准的 Next.js 应用——可托管在任何地方(VPS、树莓派、Cloudflare、任何反向代理之后)。运行无需环境变量、无需数据库、无需密钥。
嵌入
<Generator/> 组件是自包含且可配置的:
import { Generator } from "@/components/generator/generator";
// Full page (default OpenQR logo header):
<Generator />
// Embedded widget, your own branding, no default header:
<Generator embedded header={<MyLogo />} />
// Inject your own post-download call-to-action:
<Generator renderSuccess={(variant) => <MySupportCluster variant={variant} />} />
该工具零分析。如果你想要匿名 UI 事件(例如使用了哪种导出格式——绝不包含二维码内容),可注入一个处理器:
import { setTrackHandler } from "@/lib/analytics";
setTrackHandler((action, name, category) => myAnalytics.track(category, action, name));
隐私
二维码生成 100% 在浏览器中完成。唯一可选的外发调用在位置工具中:来自 CARTO 的地图瓦片和通过 OpenStreetMap 的 Nominatim 进行的地址查询。其他一切都不会离开设备。
技术栈
Next.js 16(App Router)· React 19 · TypeScript(严格模式)· Tailwind v4 ·
qr-code-styling · Leaflet · pnpm。
贡献
参见 CONTRIBUTING.md。保持简单、无障碍、客户端运行且免费——任何功能都不应要求付费才能去除水印或解锁格式。
许可证
AGPL-3.0 © 2026 Sam Moreton。
你可以在 AGPL-3.0 下自由使用、研究、修改、自托管和重新分发 OpenQR。如果你以网络服务形式运行修改版本,AGPL 要求你在相同许可证下提供源代码。如果这不适合你的使用场景,可提供商业许可证——参见 NOTICE。