视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
qrx【文档与办公】Make branded, print-ready art QR codes that always scan with QRX (qrx.codes). Use when a link needs a QR code that looks like artwork or matches a brand for print, packaging, signs, slides or event badges, and to list or re-point QRX codes. Not for plain QR codes the agent makes locally.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
QRX turns a short picture description (the prompt) and a destination link into an artistic QR code. Every code is checked to decode before it is returned, and it encodes a hosted short link, https://qrx.to/<id> on qrx.codes, which forwards scans to the destination. Treat the result as a design asset: a PNG the user can drop into print or digital layouts.
Use it when the user wants a QR code that is also a picture: on-brand, decorative, or eye-catching enough to earn a scan. Typical asks: a café menu code in a watercolour style, a conference badge code in the event's colours, a poster code that blends into the artwork, a product-packaging code, a wedding-invitation code.
Do not use it when:
| Tool | Use |
|---|---|
list_styles | List style ids and names. |
generate_qr_code | Start a code. Args: prompt (required, up to 1,000 characters), destination (required, an absolute http or https URL, up to 2,048 characters), optional style. Answers at once with the code's id and status: processing. |
get_qr_code | Get a code by id. Waits up to wait seconds (0 to 25, default 25) for a processing code to finish. Call again while it is still processing. |
list_qr_codes | The user's codes, newest first. limit 1 to 100 (default 20); pass nextCursor as cursor for the next page. |
change_qr_code_destination | Re-point a link code's short link to a new destination (id, destination: an absolute http or https URL). Printed codes follow at once. Only if the account's plan allows changing destinations; it replaces the old destination, so confirm with the user first. |
get_account | The plan, today's allowance, what is left, when it resets, and which features the account has (Wi-Fi codes, changing destinations). |
get_profile | The connected QRX account. |
The server needs the user to sign in to QRX (or an API key) before it connects. If the tools are missing, it is not connected: ask the user to sign in from their client's MCP or connector settings, or use the REST API instead (see references/rest-api.md).
https:// or http:// (add https:// if the user gave a bare domain, and confirm the exact link if it is ambiguous). The MCP tools make link codes only; for a Wi-Fi code, send the user to https://qrx.codes, and never ask them for a Wi-Fi password.list_styles and pick the closest style id; otherwise leave style out.generate_qr_code once. Keep the returned id; it never changes. Painting usually takes under a minute.get_qr_code using that id until status is succeeded or failed. Each call waits up to 25 seconds, so two or three calls are normal.
generate_qr_code again while a code is still processing: every generate counts against the user's allowance.imageUrl, a PNG), the short link the code encodes (shortUrl, https://qrx.to/<id> on qrx.codes), the destination, and the code's page (pageUrl). Tell the user to test-scan it with a phone before printing.failed: read error.message, simplify the prompt (fewer elements, more contrast), and offer one retry. Ask before making more than one extra attempt.For several variations, say how many will be made and that each counts against the allowance, then start them and poll each id.
The prompt describes the picture only. QRX handles the QR pattern itself.
More examples and fixes: references/prompt-guide.md.
get_account to see what is left today, when the count resets and which features the account has; act on the features it reports, not on the plan name.get_account, tell the user plainly what is left and when it resets (or that the feature is not included in their plan), and point them to their account at https://qrx.codes. Do not retry in a loop.The code encodes its short link (https://qrx.to/<id> on qrx.codes), not the destination itself. A code's id and short link never change. That keeps the pattern simple and, where the account's plan allows it, lets the user change the destination later with change_qr_code_destination without reprinting. Mention this when the user is printing in volume or the destination may change (seasonal menus, event pages).
Share the relevant points when the code is for print:
If the MCP tools are not available but the user has an API key, follow references/rest-api.md (create with POST https://qrx.codes/v1/codes, then GET https://qrx.codes/v1/codes/{id}?wait=45).
A café wants a menu QR code in watercolours:
1. Destination: https://example.com/menu (confirm the exact link).
2. find_ui style: list_styles, then pick the closest watercolour-style id.
3. generate_qr_code({"prompt": "a steaming flat white on a timber bench, watercolour, warm cream and espresso brown", "destination": "https://example.com/menu", "style": "<id>"})
4. Poll get_qr_code with the returned id until status is succeeded.
5. Show imageUrl, shortUrl, destination and pageUrl, and ask the owner to test-scan before printing.
REST fallback when the MCP server is not connected:
curl -sS -X POST "https://qrx.codes/v1/codes?wait=45" \
-H "Authorization: Bearer $QRX_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen 2>/dev/null || date +%s)" \
-d '{"prompt":"a lighthouse on a cliff at sunset, watercolour, navy and coral","destination":"https://example.com/menu"}'
get_account before promising either.