qrforprint MCP
An official MCP server for qrforprint that allows AI agents to preview static QR codes, list existing codes with scan counts, create dynamic link codes, and change their destinations. It supports various QR types including URL, text, email, phone, SMS, WhatsApp, social, App Store, PDF, image, audio, Wi-Fi, vCard, location, and event. Static code previews require no account, while listing, creating, and modifying dynamic codes require user sign-in.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://qrforprint.com/mcpWhat you can do with it
- Preview a QR code for a web address, plain text, email, phone call, text message, WiFi network or contact card.
- List your codes with their short links, destinations and scan counts.
- Create a dynamic link code that can be changed later without reprinting.
- Change where a code goes after it has been printed.
Source and maintenance
Protocol and capabilities
- Server
- qrforprint 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 4 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
4 advertised
preview_qr_code — Preview a QR code
Draws a black and white preview of a static QR code for a web address, plain text, email, phone call, text message, WiFi network or contact card. Returns the PNG image and a link that opens the same content in the qrforprint editor, where it can be styled and downloaded as PNG, SVG, PDF or EPS. Nothing is saved and no account is needed. A static code cannot be changed after it is printed.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"type"
],
"properties": {
"org": {
"type": "string",
"maxLength": 200,
"description": "type vcard: company."
},
"url": {
"type": "string",
"maxLength": 2048,
"description": "type url: the web address, starting with http:// or https://."
},
"text": {
"type": "string",
"maxLength": 3000,
"description": "type text: the plain text to encode."
},
"type": {
"enum": [
"url",
"text",
"email",
"phone",
"sms",
"wifi",
"vcard"
],
"type": "string",
"description": "What the code holds: url, text, email, phone, sms, wifi or vcard (contact card)."
},
"email": {
"type": "string",
"maxLength": 320,
"description": "type email: the recipient address."
},
"phone": {
"type": "string",
"maxLength": 40,
"description": "type phone: the number to call, international format such as +14155550123."
},
"title": {
"type": "string",
"maxLength": 200,
"description": "type vcard: job title."
},
"smsBody": {
"type": "string",
"maxLength": 1000,
"description": "type sms: optional message text."
},
"lastName": {
"type": "string",
"maxLength": 100,
"description": "type vcard: last name."
},
"smsPhone": {
"type": "string",
"maxLength": 40,
"description": "type sms: the number the text message goes to."
},
"vcardUrl": {
"type": "string",
"maxLength": 2048,
"description": "type vcard: website."
},
"wifiSsid": {
"type": "string",
"maxLength": 64,
"description": "type wifi: the network name (SSID)."
},
"emailBody": {
"type": "string",
"maxLength": 2000,
"description": "type email: optional message body."
},
"firstName": {
"type": "string",
"maxLength": 100,
"description": "type vcard: first name."
},
"vcardEmail": {
"type": "string",
"maxLength": 320,
"description": "type vcard: email address."
},
"vcardPhone": {
"type": "string",
"maxLength": 40,
"description": "type vcard: phone number."
},
"wifiHidden": {
"type": "boolean",
"description": "type wifi: true if the network name is hidden."
},
"emailSubject": {
"type": "string",
"maxLength": 300,
"description": "type email: optional subject."
},
"wifiPassword": {
"type": "string",
"maxLength": 128,
"description": "type wifi: the network password."
},
"wifiEncryption": {
"enum": [
"WPA",
"WEP",
"nopass"
],
"type": "string",
"description": "type wifi: WPA (default), WEP, or nopass for an open network."
}
}
}{
"title": "Preview a QR code",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_my_codes — List my QR codes
Lists the QR codes saved in the signed-in qrforprint account, newest first, 50 per page: name, type, static or dynamic, short link, destination, total scans for dynamic codes, creation date, whether the code is disabled, and a link to edit it on qrforprint.com.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Page number, starting at 1."
}
}
}{
"title": "List my QR codes",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_dynamic_link_code — Create a dynamic link QR code
Creates a dynamic QR code in the signed-in qrforprint account. The code holds a short qrforprint link that forwards to the given web address, so the destination can be changed later without reprinting, and scans are counted. Free accounts can have 3 dynamic codes. Returns the short link, the QR image and a link to style and download it on qrforprint.com.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"destination_url"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"description": "A name to find the code by later, such as 'Table menu'."
},
"destination_url": {
"type": "string",
"maxLength": 2048,
"description": "The web address the code opens, starting with http:// or https://."
}
}
}{
"title": "Create a dynamic link QR code",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}update_code_destination — Change where a QR code goes
Changes the web address a dynamic link QR code in the signed-in qrforprint account forwards to. Printed copies keep working and open the new address from the next scan. Accepts the code ID or its short link. Static codes, disabled codes and photo, PDF or voice note codes cannot be changed with this tool.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code",
"destination_url"
],
"properties": {
"code": {
"type": "string",
"maxLength": 300,
"description": "The code ID or its short link, as shown by list_my_codes."
},
"destination_url": {
"type": "string",
"maxLength": 2048,
"description": "The new web address, starting with http:// or https://."
}
}
}{
"title": "Change where a QR code goes",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1537 ms
- 95th percentile latency
- 1537 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1537 ms · metadata changed · 4 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http qrforprint-mcp https://qrforprint.com/mcpCodex
codex mcp add qrforprint-mcp --url https://qrforprint.com/mcpCursor
{
"mcpServers": {
"qrforprint-mcp": {
"url": "https://qrforprint.com/mcp"
}
}
}Cline
{
"mcpServers": {
"qrforprint-mcp": {
"type": "streamableHttp",
"url": "https://qrforprint.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"qrforprint-mcp": {
"type": "http",
"url": "https://qrforprint.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http qrforprint-mcp https://qrforprint.com/mcpClaude Desktop
{
"mcpServers": {
"qrforprint-mcp": {
"url": "https://qrforprint.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"qrforprint-mcp": {
"serverUrl": "https://qrforprint.com/mcp"
}
}
}Let your agent find its tools
Find servers like qrforprint MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run qrforprint MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.