{"name":"minipages.cloud","version":"1.0.0","icon":"https://minipages.cloud/favicon.svg","icons":[{"src":"https://minipages.cloud/favicon.svg","mimeType":"image/svg+xml","sizes":["any"]}],"description":"minipages.cloud — the agentic link-in-bio platform. Create, edit, and manage beautiful link-in-bio pages by chatting.","_welcome":"Welcome! I can create a beautiful link-in-bio page for you in 30 seconds. Just tell me your name, your links, and your vibe.\n\nYou can create, edit, and delete your mini pages anytime.\n\nOnce your page is live I can also give you real-time analytics — total views, unique visitors, top clicked links, top countries and where your traffic comes from.\n\nWant to start? Or if you already have a Linktree or other link-in-bio, just share the URL and I'll import your links automatically!","protocolVersion":"2024-11-05","capabilities":{"tools":{"listChanged":true}},"tools":[{"name":"create_minipage","title":"Create Mini Page","description":"Create a new mini page — a link-in-bio / bio link page (Linktree-style) — live for the authenticated user. Returns a live URL. The server auto-generates a polished, vibrant color palette from `theme_style` using the same AI engine as the web app — you can pass any free-form theme description.","annotations":{"title":"Create Mini Page","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"username":{"type":"string","description":"URL slug (2-50 chars, letters/numbers/_/-)"},"creator_name":{"type":"string","description":"Display name shown on the page"},"bio_text":{"type":"string","description":"Optional short bio"},"links":{"type":"array","minItems":1,"items":{"type":"object","properties":{"label":{"type":"string"},"url":{"type":"string","description":"Full URL including http(s)://"},"emoji":{"type":"string","description":"Optional single emoji shown as an icon before the link label (e.g. '🌐')."}},"required":["label","url"]}},"theme_style":{"type":"string","description":"Free-form theme description in any language (e.g. 'cute pink with hearts', 'dark neon gaming', 'earthy forest cabin', 'luxury gold art deco'). The server generates a polished 5-color palette automatically. Pass explicit `colors` to override."},"emoji_style":{"type":"string","description":"Visual emoji style. Either a preset name ('minimal' | 'playful' | 'professional' | 'trendy' | 'none') or raw emoji characters used as the page motif (e.g. '🍙✨', '✨🌴✈️'). Max 32 chars.","maxLength":32},"colors":{"type":"array","description":"Optional explicit hex palette like ['#FFC0CB','#DA70D6']. Overrides the AI-generated palette.","items":{"type":"string","pattern":"^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"},"minItems":1,"maxItems":10},"button_text_color":{"type":"string","description":"Optional hex color for button text (e.g. '#000000' or '#FFFFFF'). If omitted, picked automatically for readability.","pattern":"^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"}},"required":["username","creator_name","links"]}},{"name":"edit_minipage","title":"Edit Mini Page","description":"Edit or update an existing mini page (link-in-bio page) owned by the authenticated user — change name, bio, links, theme, colors, avatar, or campaign banner. Before calling, use get_minipage to read current values. If background_image_url is set on the page, do NOT change colors or theme_style without first telling the user the background image will override them and asking them to remove it at https://minipages.cloud.","annotations":{"title":"Edit Mini Page","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"username":{"type":"string","description":"URL slug of the page to edit"},"creator_name":{"type":"string"},"bio_text":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"url":{"type":"string"},"emoji":{"type":"string","description":"Optional single emoji shown as an icon before the link label (e.g. '🌐')."}},"required":["label","url"]}},"theme_style":{"type":"string","description":"Free-form theme description in any language (e.g. 'cute pink with hearts', 'dark neon gaming', 'earthy forest cabin', 'luxury gold art deco'). The server generates a polished 5-color palette automatically. Pass explicit `colors` to override."},"emoji_style":{"type":"string","description":"Visual emoji style. Either a preset name ('minimal' | 'playful' | 'professional' | 'trendy' | 'none') or raw emoji characters used as the page motif (e.g. '🍙✨', '✨🌴✈️'). Max 32 chars.","maxLength":32},"colors":{"type":"array","description":"Optional hex colors like ['#FFC0CB','#DA70D6']. Overrides theme palette.","items":{"type":"string","pattern":"^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"},"minItems":1,"maxItems":10},"avatar_url":{"type":"string","description":"URL (https) of the creator's profile avatar — the circular profile photo at the top of the page. Note: stored in the DB column `background_image`, but this is NOT the full-page background image.","pattern":"^https://"},"campaign_enabled":{"type":"boolean","description":"Enable or disable the campaign banner on the page."},"campaign_heading":{"type":"string","description":"Top heading of the banner (e.g. 'Popup Coupon', 'Monday Sale'). Seeded to 'Popup Coupon' at creation; fully editable."},"campaign_title":{"type":"string","description":"Item / offer line shown below the heading (e.g. 'סלמון ואבוקדו ב-16₪')."},"campaign_subtitle":{"type":"string","description":"Optional smaller subtitle line shown directly below the title."},"campaign_button_text":{"type":"string","description":"Button text shown in the campaign banner."},"campaign_ends_at":{"type":"string","description":"ISO 8601 timestamp when the campaign ends. Pass null to remove.","nullable":true},"campaign_deadline_display":{"type":"string","description":"How the deadline is shown: 'countdown' (live HH:MM:SS) or 'fixed_date' (formatted date/time label derived from campaign_ends_at in the creator's timezone/locale).","enum":["countdown","fixed_date"]},"campaign_countdown_label":{"type":"string","description":"Label shown next to the live countdown (e.g. 'Time Left:', 'נותר:')."},"campaign_fixed_date_prefix":{"type":"string","description":"Prefix string prepended to the formatted fixed date (e.g. 'until ', 'עד ')."},"campaign_bg_color":{"type":"string","description":"Banner background hex like '#RRGGBB'. Null/empty to clear.","pattern":"^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$","nullable":true},"campaign_mode":{"type":"string","description":"'phone' or 'coupon_pool'.","enum":["phone","coupon_pool"]},"campaign_discount_percent":{"type":"integer","description":"Discount percentage (0-100).","minimum":0,"maximum":100},"campaign_coupon_codes":{"type":"array","description":"Pre-defined pool of coupon codes.","items":{"type":"string"}},"creator_timezone":{"type":"string","description":"Creator's IANA timezone (e.g. 'Asia/Jerusalem', 'America/New_York'). Used to format fixed-date deadline labels."},"creator_locale":{"type":"string","description":"Creator's BCP-47 locale (e.g. 'he-IL', 'en-US'). Used to format fixed-date deadline labels."}},"required":["username"]}},{"name":"get_minipage","title":"Get Mini Page","description":"Get / read / view the full current data for a single mini page (link-in-bio page) owned by the authenticated user (creator_name, bio_text, links, theme_style, emoji_style, colors, avatar_url, background_image_url, updated_at, url). USAGE RULE: Always call this FIRST with a guessed slug (e.g. the name/handle the user mentioned) before list_my_minipages — only fall back to list_my_minipages if this returns not found. Use this before edit_minipage to read existing values so you can merge changes safely. IMPORTANT: If background_image_url is set, any color or theme_style change via edit_minipage will be visually overridden by the background image — warn the user and ask them to remove the background first at https://minipages.cloud before applying color changes.","annotations":{"title":"Get Mini Page","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"username":{"type":"string","description":"URL slug of the page to fetch"}},"required":["username"]}},{"name":"delete_minipage","title":"Delete Mini Page","description":"Deletes a mini page owned by the authenticated user. The page is removed immediately and recoverable for a short retention window before permanent purge.","annotations":{"title":"Delete Mini Page","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"username":{"type":"string"}},"required":["username"]}},{"name":"list_my_minipages","title":"List My Mini Pages","description":"Lists all mini pages owned by the authenticated user. Prefer get_minipage with a guessed slug first — only call this as a fallback when the slug is unknown or get_minipage returned not found.","annotations":{"title":"List My Mini Pages","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{}}},{"name":"create_popup_sale","title":"Create Popup Coupon","description":"Create or replace a Popup Coupon campaign banner on a mini page. Seeds banner defaults (heading='Popup Coupon', deadline_display='countdown', countdown_label='Time Left:', fixed_date_prefix='until ', style='subtle'); all are editable later via edit_minipage. Auto-generates coupon codes.","annotations":{"title":"Create Popup Coupon","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"username":{"type":"string","description":"Page slug"},"description":{"type":"string","description":"Item / offer line shown below the heading (e.g. 'סלמון צלוי ואבוקדו ב-16₪ בלבד'). Do NOT include the heading."},"heading":{"type":"string","description":"Optional banner heading. Defaults to 'Popup Coupon'."},"subtitle":{"type":"string","description":"Optional smaller subtitle line shown under the title."},"discount_percent":{"type":"integer","minimum":0,"maximum":100,"description":"Discount percentage (0 to hide)"},"num_coupons":{"type":"integer","minimum":1,"maximum":500,"description":"Number of coupon codes to generate"},"ends_at":{"type":"string","description":"ISO 8601 end datetime"},"button_text":{"type":"string","description":"Button label. Default: 'קבל קופון'"},"bg_color":{"type":"string","description":"Banner background hex color (optional)","pattern":"^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"},"timezone":{"type":"string","description":"Creator's IANA timezone (e.g. 'Asia/Jerusalem'). Stored on the page if not already set."},"locale":{"type":"string","description":"Creator's BCP-47 locale (e.g. 'he-IL'). Stored on the page if not already set."}},"required":["username","description","num_coupons","ends_at"]}},{"name":"get_analytics","title":"Get Mini Page Analytics","description":"Returns visitor analytics for a mini page owned by the authenticated user: total views, unique visitors, top links by clicks, top countries, top referrers, and daily views over time.","annotations":{"title":"Get Mini Page Analytics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"username":{"type":"string","description":"URL slug of the page"},"date_range":{"type":"string","description":"'today' | 'week' | 'month' | 'all' (default: 'week')","enum":["today","week","month","all"]}},"required":["username"]}},{"name":"get_next_inquiry","title":"Get Next Business Inquiry","description":"Returns the single best undelivered business inquiry for a mini page owned by the authenticated user. Messages are AI-filtered for quality (spam/low-effort notes are auto-discarded) and returned best first. This is a pure read — it does NOT mark the inquiry as delivered. After you successfully reply via reply_to_inquiry, call mark_inquiry_delivered to remove it from the queue. If AI scoring is unavailable, returns { inquiry: null, scoring_unavailable: true }.","annotations":{"title":"Get Next Business Inquiry","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"username":{"type":"string","description":"URL slug of the page"}},"required":["username"]}},{"name":"mark_inquiry_delivered","title":"Mark Inquiry Delivered","description":"Call this after successfully replying to an inquiry to mark it as delivered. Do not call before the reply is confirmed.","annotations":{"title":"Mark Inquiry Delivered","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"username":{"type":"string","description":"URL slug of the page that owns the inquiry"},"inquiry_id":{"type":"string","description":"UUID of the inquiry to mark delivered"}},"required":["username","inquiry_id"]}},{"name":"reply_to_inquiry","title":"Reply to Business Inquiry","description":"Stores the creator's reply to a specific business inquiry. If the original sender left an email, returns sender_email and suggested_subject so Claude can hand off to the Gmail MCP (or another email tool) to actually send the message. If no email is on file, the reply is stored as pending for manual delivery. After a successful send, call mark_inquiry_delivered.","annotations":{"title":"Reply to Business Inquiry","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"username":{"type":"string","description":"URL slug of the page that received the inquiry"},"inquiry_id":{"type":"string","description":"UUID of the inquiry to reply to"},"message":{"type":"string","description":"The reply text to send back to the sender"}},"required":["username","inquiry_id","message"]}},{"name":"import_links_from_url","title":"Import Links From URL","description":"Fetches a public link-in-bio page (e.g. Linktree, Beacons, Bio.site, another MiniPage) and extracts ONLY the user's outbound links as a list of {label, url} objects, ready to be passed into create_minipage. Does NOT copy any design, colors, fonts, layout, avatar, or background. Strips platform branding/footer/admin links.\n\nMANDATORY CONFIRMATION FLOW: Before calling this tool, you MUST present the following checkbox to the user in chat and wait for an explicit confirmation reply:\n\n    ☐ I confirm this link in bio belongs to me\n\nOnly after the user explicitly confirms ownership may you call this tool with confirmed=true. The tool will refuse (400) if confirmed is false or missing. The authenticated user_id and confirmed_at timestamp are logged server-side as an ownership attestation.","annotations":{"title":"Import Links From URL","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"Full public URL (https://) of the link-in-bio page to import links from.","pattern":"^https?://"},"confirmed":{"type":"boolean","description":"Must be true. Confirms the user explicitly checked the ownership checkbox in chat."}},"required":["url","confirmed"]}}],"authorization_servers":["https://minipages.cloud"]}