QRCodeKIT
by qrcodekit.com · remote · no sign-in to list tools · v1.0.0 · published by com.qrcodekit
Branded short links, instant page & file hosting, and dynamic QR codes with unified analytics.
14 tools: 9 can delete or cancel things, 2 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels9Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http qrcodekit https://mcp.v2.qrcodekit.com/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "render_file_upload_qr_form" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "render_file_upload_qr_form" says "upload": a word for a change.
The description mentions "credentials".
What this check looks forMatched text
description: "...cted file to QRCodeKIT without exposing credentials. Not intended for direct use; prefer 'U..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Deletes or cancels 9Claude Code: deny
delete_linkMove an existing QRCodeKIT link and its QR code to the active account's trash.No findings
Why it is in this group
- The name "delete_link" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Move an existing QRCodeKIT link and its QR code to the active account's trash. Use this only when the user asks to delete, remove, or discard a specific link. Reversible from the QRCodeKIT web app. Resolve the exact qr_id before deleting when the target is ambiguous.
Annotations the server declares
- title: Delete Link
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
host_fileUpload and host a local PDF, image, document, spreadsheet, or other file, and get a permanent public short link plus a downloadable dynamic QR code that opens or downloads it.No findings
Why it is in this group
- The description's first verb is "upload": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Upload and host a local PDF, image, document, spreadsheet, or other file, and get a permanent public short link plus a downloadable dynamic QR code that opens or downloads it. Use this when the user wants to publish or share an attached PDF or file — a PDF menu, brochure, catalog, CV, ticket, presentation, or any document — without a separate file-hosting account. QRCodeKIT copies the attachment to its own asset storage and validates PDFs as real PDF documents. When `qr_id` is provided, replace the hosted file while preserving the existing public URL and printed QR code.
Annotations the server declares
- title: Share a File or PDF by Link
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
save_app_store_linkCreate a device-routing smart link and dynamic QR code for a mobile app: the same short link sends iPhone users to the Apple App Store and Android users to Google Play.No findings
Why it is in this group
- The name "save_app_store_link" says "save": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a device-routing smart link and dynamic QR code for a mobile app: the same short link sends iPhone users to the Apple App Store and Android users to Google Play. Use this for 'download our app' campaigns in print, ads, websites, or link-in-bio pages. An app name and at least one store URL (iOS or Android) are required; an icon URL is optional. When `qr_id` is provided, update the app destinations while preserving the existing short link and QR code.
Annotations the server declares
- title: App Download Smart Link
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
save_email_linkCreate a short link and dynamic QR code that opens a pre-filled email with a recipient, required subject, optional body, and optional CC recipients.No findings
Why it is in this group
- The name "save_email_link" says "save": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a short link and dynamic QR code that opens a pre-filled email with a recipient, required subject, optional body, and optional CC recipients. Use this for 'contact us' flows, support or quote requests, RSVPs, feedback, reservations, or other email calls to action. When `qr_id` is provided, update the email details while preserving the existing short link and QR code.
Annotations the server declares
- title: Email Action Link
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
save_file_url_qrCreate or update a permanent short link and dynamic QR code for a file or PDF that is already hosted at a public URL.No findings
Why it is in this group
- The name "save_file_url_qr" says "save": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create or update a permanent short link and dynamic QR code for a file or PDF that is already hosted at a public URL. Use this as a fallback when the host cannot pass an attached file; prefer host_file for local or host-native attachments. When `qr_id` is provided, update the file destination while preserving the existing short link and QR code. Also used as the finalizer step by the in-chat upload form.
Annotations the server declares
- title: Link a Hosted File
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
save_html_file_qrPublish a single-page static HTML site live on the web and get a permanent public URL and shareable link, plus a downloadable dynamic QR code that opens it.No findings
Why it is in this group
- The name "save_html_file_qr" says "save": a word for a change.
- The description's first verb is "publish": a word for a change that another call does not undo.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Publish a single-page static HTML site live on the web and get a permanent public URL and shareable link, plus a downloadable dynamic QR code that opens it. Use this when the user asks to create, publish, deploy, host, share, or put online a landing page, one-pager, business page, digital menu, event page, portfolio, product page, campaign page, or microsite — especially when they do not have a website or hosting provider. No separate hosting account, build step, or deployment token is required. Accepts one complete HTML document up to 6 MB: a single file, not a multi-page site. When `qr_id` is provided, update the hosted page in place while preserving its public URL and printed QR code.
Annotations the server declares
- title: Host Static HTML Page
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
save_short_linkCreate a branded short link and dynamic QR code for an existing website URL, with an optional custom slug (e.g.No findings
Why it is in this group
- The name "save_short_link" says "save": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a branded short link and dynamic QR code for an existing website URL, with an optional custom slug (e.g. qrkit.co/summer-sale). Use this when the user already has a destination URL and wants to shorten or brand it, track visits, or get a QR code for it: every link includes a scannable QR code that opens the same destination, and clicks and scans are tracked together in one analytics dashboard. When `qr_id` is provided, change the destination while preserving the existing short URL and printed QR code. Use set_link_slug instead when the user wants to rename the slug of an existing link.
Annotations the server declares
- title: Save Short Link
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
save_whatsapp_linkCreate a short link and dynamic QR code that opens a WhatsApp conversation with a phone number in international format and an optional pre-filled message.No findings
Why it is in this group
- The name "save_whatsapp_link" says "save": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a short link and dynamic QR code that opens a WhatsApp conversation with a phone number in international format and an optional pre-filled message. Use this for 'chat with us' or contact buttons, customer support, reservations, sales enquiries, printed signage, business cards, or link-in-bio pages. When `qr_id` is provided, update the phone number or message while preserving the existing short link and QR code.
Annotations the server declares
- title: WhatsApp Chat Link
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
set_link_slugChange the custom slug (short code) of an existing QRCodeKIT short link, for any link type — e.g.No findings
Why it is in this group
- The name "set_link_slug" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Change the custom slug (short code) of an existing QRCodeKIT short link, for any link type — e.g. turn qrkit.co/x7Ab9c into qrkit.co/summer-sale. The link keeps its identity and analytics. Use this only when the user explicitly wants to rename the short URL; to change a destination, use the corresponding save tool instead. WARNING: warn the user that the previous short URL stops redirecting and the QR image is regenerated, so any printed or shared copies of the old QR must be replaced.
Annotations the server declares
- title: Change Link Slug
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Changes things 2Claude Code: ask
create_file_upload_sessionWidget-only helper: mint a one-time upload session so the file upload form can send the selected file to QRCodeKIT without exposing credentials.1 finding
Why it is in this group
- The name "create_file_upload_session" says "create": a word for a change.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...cted file to QRCodeKIT without exposing credentials. Not intended for direct use; prefer 'U..."
Description, as the server wrote it Widget-only helper: mint a one-time upload session so the file upload form can send the selected file to QRCodeKIT without exposing credentials. Not intended for direct use; prefer 'Upload a File → Get a Link & QR'.
Annotations the server declares
- title: Create File Upload Session
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
render_file_upload_qr_formOpen an interactive form for the user to upload a file or PDF from their device and get a permanent short link plus a downloadable dynamic QR code.1 finding
Why it is in this group
- The name "render_file_upload_qr_form" says "upload": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "render_file_upload_qr_form" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "render_file_upload_qr_form" says "upload": a word for a change.
Description, as the server wrote it Open an interactive form for the user to upload a file or PDF from their device and get a permanent short link plus a downloadable dynamic QR code. Use this on Claude and other MCP hosts that cannot pass an attached file directly, whenever the user wants to share or host a PDF, menu, brochure, CV, ticket, or other file by link or QR. The form uploads the file to QRCodeKIT and saves the link; when `qr_id` is provided, it replaces the file of an existing link while preserving its short URL and QR code.
Annotations the server declares
- title: Upload a File → Get a Link & QR
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 3Claude Code: allow
get_link_statsRetrieve analytics for the whole QRCodeKIT account or for one link.No findings
Why it is in this group
- The name "get_link_stats" says "get": a word for reading.
Description, as the server wrote it Retrieve analytics for the whole QRCodeKIT account or for one link. Reports total, unique, and repeat visits, unique-visitor ratio, activity over time, and — when the account plan supports advanced analytics — breakdowns by country, city, device, operating system, and browser. Account-wide results also include the number of links and the top links ranked by lifetime visits. Use this when the user asks about QR scans, short-link clicks, campaign performance, audience location, devices, trends, comparisons, or top-performing links. Every visit to the short URL is counted, so link clicks and QR scans are combined: one campaign can live in a printed QR, an Instagram bio, and an email and report in one place. Select a link by qr_id, slug, or part of its title via `qr`; omit it for the whole account. Defaults to the last 30 days; the interval can be auto, hourly, daily, weekly, or monthly. The structured result contains the full tables for answering questions about the data.
Annotations the server declares
- title: Link & QR Analytics
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_linksReturn the account's QRCodeKIT links as structured data: title, destination or hosted content, short URL, slug, QR image download URLs, timestamps, and lifetime visits.No findings
Why it is in this group
- The name "list_links" says "list": a word for reading.
Description, as the server wrote it Return the account's QRCodeKIT links as structured data: title, destination or hosted content, short URL, slug, QR image download URLs, timestamps, and lifetime visits. Lifetime visits combine short-link clicks and QR scans. Use this when the assistant needs to search, filter by link type, compare, inspect, or process existing links programmatically. Use show_links instead when the user asks to see, show, display, preview, or download their links or QR codes.
Annotations the server declares
- title: List Links & QR Codes
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
show_linksDisplay the account's QRCodeKIT links in an interactive gallery: short URL, QR image, combined click-and-scan totals, and download actions.No findings
Why it is in this group
- The name "show_links" says "show": a word for reading.
Description, as the server wrote it Display the account's QRCodeKIT links in an interactive gallery: short URL, QR image, combined click-and-scan totals, and download actions. Available QR assets may include SVG, PNG, PDF, and EPS. Use this when the user asks to see, show, preview, display, or download their links or QR codes. When qr_id is provided, show only that link; otherwise show links from the active account.
Annotations the server declares
- title: Show Links & QR Codes
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http qrcodekit https://mcp.v2.qrcodekit.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__qrcodekit__list_links",
"mcp__qrcodekit__show_links",
"mcp__qrcodekit__get_link_stats"
],
"ask": [
"mcp__qrcodekit__render_file_upload_qr_form",
"mcp__qrcodekit__create_file_upload_session"
],
"deny": [
"mcp__qrcodekit__save_short_link",
"mcp__qrcodekit__save_html_file_qr",
"mcp__qrcodekit__host_file",
"mcp__qrcodekit__save_file_url_qr",
"mcp__qrcodekit__save_whatsapp_link",
"mcp__qrcodekit__save_email_link",
"mcp__qrcodekit__save_app_store_link",
"mcp__qrcodekit__set_link_slug",
"mcp__qrcodekit__delete_link"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as qrcodekit. Review it before you use it.