MCP Server Documentation
Generate QR codes for URLs, contacts, WiFi, events, and more via the Model Context Protocol.
Overview
The qr-generator MCP server provides 11 tools for generating QR codes across multiple formats: URLs, plain text, vCards, MeCards, WiFi networks, email, phone, SMS, calendar events, X/Twitter profiles, and raw vCard text. It supports full contact fields including name, phone numbers, emails, postal addresses (with GPS coordinates), organization, title, website, and notes.
No authentication is required. All processing is stateless and in-memory — no data is stored or logged.
Connection
Remote (Claude.ai / Claude Desktop)
Connect via Streamable HTTP transport. Add to your MCP client configuration:
{
"mcpServers": {
"qr-generator": {
"type": "streamable-http",
"url": "https://qr.beyondtheinnovation.com/mcp"
}
}
}Local (Claude Code / Cursor)
Run locally via stdio transport. Requires Bun installed:
{
"mcpServers": {
"qr-generator": {
"command": "bun",
"args": ["run", "src/mcp/stdio.ts"],
"cwd": "/path/to/bti7-qr-generator"
}
}
}The local version includes an additional generate_vcard_qr_file tool that saves QR codes directly to disk.
Tools
generate_vcard_qrread-onlyGenerate a QR code image from vCard contact data. Returns a base64-encoded PNG image alongside the raw vCard text.
Parameters
| Name | Type | Description |
|---|---|---|
| firstName | string? | First name |
| lastName | string? | Last name |
| prefix | string? | Name prefix (Mr., Dr.) |
| suffix | string? | Name suffix (Jr., PhD) |
| org | string? | Organization / company |
| title | string? | Job title |
| phones | array? | Phone numbers — each with type (CELL, WORK, HOME, FAX) and value |
| emails | array? | Email addresses — each with type (WORK, HOME) and value |
| addresses | array? | Postal addresses — street, city, state, zip, country, poBox, geo (lat,lng) |
| url | string? | Website URL |
| note | string? | Additional notes |
| width | number? | Image width in pixels (default: 800) |
| darkColor | string? | QR dot color, hex (default: #000000) |
| lightColor | string? | Background color, hex (default: #ffffff) |
Response
Returns two content items: a text block with the generated vCard string, and an image block with the base64-encoded PNG QR code.
generate_vcard_textread-onlyGenerate raw vCard 3.0 text without a QR code. Useful for creating .vcf files or embedding contact data in other formats.
Accepts the same contact parameters as generate_vcard_qr (excluding width, darkColor, lightColor). Returns the vCard string as plain text.
All QR Tools
All QR tools below also accept optional styling parameters: width (number, default 800), darkColor (hex string), and lightColor (hex string). Each returns a base64-encoded PNG image.
generate_url_qrread-onlyGenerate a QR code for a URL or website link.
Params: url (string, required)
generate_text_qrread-onlyGenerate a QR code encoding plain text.
Params: text (string, required)
generate_wifi_qrread-onlyGenerate a QR code for joining a WiFi network. Scanning auto-connects on most devices.
Params: ssid (string, required), password (string), encryption ("WPA" | "WEP" | "nopass"), hidden (boolean)
generate_email_qrread-onlyGenerate a QR code that opens a pre-filled email compose window.
Params: to (string, required), subject (string), body (string)
generate_phone_qrread-onlyGenerate a QR code that initiates a phone call when scanned.
Params: phone (string, required)
generate_sms_qrread-onlyGenerate a QR code that opens an SMS compose window with a pre-filled message.
Params: phone (string, required), message (string)
generate_event_qrread-onlyGenerate a QR code for a calendar event (iCalendar format).
Params: title (string, required), startDate (string, required, YYYY-MM-DD), startTime (string, HH:MM), endDate (string), endTime (string), location (string), description (string), allDay (boolean)
generate_mecard_qrread-onlyGenerate a compact contact QR code using the MeCard format. Widely supported on Android.
Params: firstName (string), lastName (string) — at least one required. Also: phone, email, org, url, address, note
generate_xprofile_qrread-onlyGenerate a QR code linking to an X (Twitter) profile.
Params: username (string, required)
Examples
1. URL QR code
"Create a QR code for my website https://gamified.studio"
{
"name": "generate_url_qr",
"arguments": {
"url": "https://gamified.studio"
}
}Returns a PNG QR code that opens the URL when scanned.
2. vCard text for file export
"Generate a vCard for Dr. Sarah Lee, CMO at HealthCorp, with her office address."
{
"name": "generate_vcard_text",
"arguments": {
"prefix": "Dr.",
"firstName": "Sarah",
"lastName": "Lee",
"title": "Chief Medical Officer",
"org": "HealthCorp",
"emails": [{ "type": "WORK", "value": "sarah.lee@healthcorp.com" }],
"phones": [{ "type": "WORK", "value": "+1-555-0200" }],
"addresses": [{
"type": "WORK",
"street": "100 Medical Dr",
"city": "Boston",
"state": "MA",
"zip": "02101",
"country": "US"
}]
}
}Returns raw vCard 3.0 text (BEGIN:VCARD ... END:VCARD) ready to save as a .vcf file.
3. Custom-styled QR code
"Make a navy-blue QR code for Gamified Studio with the website and contact email."
{
"name": "generate_vcard_qr",
"arguments": {
"org": "Gamified Studio",
"url": "https://gamified.studio",
"emails": [{ "type": "WORK", "value": "so@gamified.studio" }],
"width": 600,
"darkColor": "#1e3a5f",
"lightColor": "#ffffff"
}
}Returns a 600px navy-blue QR code. Custom colors are useful for matching brand guidelines on printed materials.
4. WiFi QR code
"Generate a WiFi QR for my office network 'GamifiedHQ' with WPA password 'welcome2025'"
{
"name": "generate_wifi_qr",
"arguments": {
"ssid": "GamifiedHQ",
"password": "welcome2025",
"encryption": "WPA"
}
}Returns a QR code that auto-connects to the WiFi network when scanned on most smartphones.
Technical Details
- Protocol: MCP (Model Context Protocol) over Streamable HTTP
- Endpoint:
https://qr.beyondtheinnovation.com/mcp - Authentication: None required
- Session: Stateful (UUID-based session IDs)
- vCard format: vCard 3.0 (RFC 2426)
- QR output: PNG, base64-encoded
- Data retention: None — all processing is in-memory, discarded after response
Support
For questions, issues, or feedback, contact so@gamified.studio.