create_social_qr
Generate QR codes that link to multiple social media profiles. When scanned, the short URL returns a JSON object containing all platform links for easy access.
Instructions
Create a QR code that links to social media profiles. When scanned via the short URL, returns a JSON object with all platform links. Provide at least one platform link.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| No | Facebook profile/page URL. | ||
| No | Instagram profile URL. | ||
| No | Twitter/X profile URL. | ||
| No | LinkedIn profile URL. | ||
| youtube | No | YouTube channel URL. | |
| tiktok | No | TikTok profile URL. | |
| github | No | GitHub profile URL. | |
| website | No | Personal/company website URL. | |
| label | No | Label for this QR code. | |
| format | No | Image format. | svg |
| foreground_color | No | Hex color for dots. | |
| background_color | No | Hex color for background. | |
| dot_style | No | Dot shape. | |
| corner_style | No | Corner shape. | |
| logo_url | No | Logo URL or data URI. | |
| frame_style | No | Frame style around QR. | |
| frame_text | No | CTA text on frame (max 30 chars). | |
| frame_color | No | Frame background color. | |
| frame_text_color | No | Frame text color. |
Implementation Reference
- packages/mcp/src/tools.ts:581-587 (handler)The handler function for 'create_social_qr' that sends a POST request to '/api/qr' with social media data.
handler: async (input: Record<string, unknown>) => { const { facebook, instagram, twitter, linkedin, youtube, tiktok, github, website, ...rest } = input; return apiRequest("/api/qr", { method: "POST", body: { type: "social", social_data: { facebook, instagram, twitter, linkedin, youtube, tiktok, github, website }, ...rest }, }); }, - packages/mcp/src/tools.ts:560-580 (schema)The input schema definition for 'create_social_qr' using Zod, detailing required social profile links and QR code styling options.
inputSchema: z.object({ facebook: z.string().optional().describe("Facebook profile/page URL."), instagram: z.string().optional().describe("Instagram profile URL."), twitter: z.string().optional().describe("Twitter/X profile URL."), linkedin: z.string().optional().describe("LinkedIn profile URL."), youtube: z.string().optional().describe("YouTube channel URL."), tiktok: z.string().optional().describe("TikTok profile URL."), github: z.string().optional().describe("GitHub profile URL."), website: z.string().optional().describe("Personal/company website URL."), label: z.string().optional().describe("Label for this QR code."), format: z.enum(["svg", "png"]).default("svg").describe("Image format."), foreground_color: z.string().regex(/^#[0-9A-Fa-f]{6}$/).optional().describe("Hex color for dots."), background_color: z.string().regex(/^#[0-9A-Fa-f]{6}$/).optional().describe("Hex color for background."), dot_style: z.enum(["square", "rounded", "dots", "classy-rounded"]).optional().describe("Dot shape."), corner_style: z.enum(["square", "extra-rounded", "dot"]).optional().describe("Corner shape."), logo_url: z.string().optional().describe("Logo URL or data URI."), frame_style: z.enum(["none", "banner_bottom", "banner_top", "rounded"]).optional().describe("Frame style around QR."), frame_text: z.string().max(30).optional().describe("CTA text on frame (max 30 chars)."), frame_color: z.string().regex(/^#[0-9A-Fa-f]{6}$/).optional().describe("Frame background color."), frame_text_color: z.string().regex(/^#[0-9A-Fa-f]{6}$/).optional().describe("Frame text color."), }),