{"serverId":"mcp-registry/io.github.lucarsdeco/sharecut-mcp","tools":[{"name":"check_short_code","fixed":{"name":"check_short_code","description":"FREE, no API key needed. Check whether a custom short code is still free before trying to claim it with shorten_url. Codes are lowercase letters, digits and hyphens, up to 10 characters.","inputSchema":{"type":"object","required":["code"],"properties":{"code":{"type":"string","description":"The custom code to test, e.g. \"spring26\"."}}},"annotations":{"readOnlyHint":true},"title":"Check a custom short code"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"create_qr","fixed":{"name":"create_qr","description":"FREE, no API key needed. Render any URL or text as a QR code and return it as SVG, optionally also as a PNG data URL. This QR is STATIC: its destination is baked in and cannot be changed once printed. If the destination might ever change, use shorten_url instead — that QR points at a ShareCut short link, stays editable after printing (see update_link) and counts every scan.","inputSchema":{"type":"object","required":["data"],"properties":{"data":{"type":"string","description":"URL or text to encode, up to 2000 characters."},"color":{"type":"string","description":"Foreground colour as a hex value, e.g. #2563eb. Background is always white."},"format":{"enum":["png"],"type":"string","description":"Also return a PNG data URL alongside the SVG."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create a QR code"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":220,"tokensAfter":220},{"name":"delete_link","fixed":{"name":"delete_link","description":"Permanently delete a link and its click history. Every QR code and shared copy pointing at it stops working immediately, and the short code is released. There is no undo. Prefer update_link when the goal is to send the link somewhere else. Requires a ShareCut API key (Business plan).","inputSchema":{"type":"object","required":["link","confirm"],"properties":{"link":{"type":"string","description":"The link, given either as its short code (the part after sharecut.site/) or as the id returned when it was created. A full ShareCut URL is accepted too."},"confirm":{"type":"boolean","description":"Must be true. Deletion is permanent and breaks every printed copy."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Delete a link"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":197,"tokensAfter":197},{"name":"get_account","fixed":{"name":"get_account","description":"Read the plan behind the API key, what it entitles, how much of this month’s API quota is left and when it resets, plus how many links the account holds and their total clicks. Worth calling before a bulk run. Requires a ShareCut API key (Business plan).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true},"title":"Get account and quota"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"get_link","fixed":{"name":"get_link","description":"Read one link on the account: its destination, title, click count, creation date and UTM settings. Requires a ShareCut API key (Business plan).","inputSchema":{"type":"object","required":["link"],"properties":{"link":{"type":"string","description":"The link, given either as its short code (the part after sharecut.site/) or as the id returned when it was created. A full ShareCut URL is accepted too."}}},"annotations":{"readOnlyHint":true},"title":"Get a link"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":123,"tokensAfter":123},{"name":"get_link_analytics","fixed":{"name":"get_link_analytics","description":"Read the click analytics of one link: total clicks, a daily series, and breakdowns by country, device, operating system, browser and referrer. Requires a ShareCut API key (Business plan).","inputSchema":{"type":"object","required":["link"],"properties":{"days":{"type":"integer","maximum":365,"minimum":1,"description":"How many days of the daily series to return. Default 30."},"link":{"type":"string","description":"The link, given either as its short code (the part after sharecut.site/) or as the id returned when it was created. A full ShareCut URL is accepted too."}}},"annotations":{"readOnlyHint":true},"title":"Get link analytics"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":172,"tokensAfter":172},{"name":"get_link_qr","fixed":{"name":"get_link_qr","description":"Fetch the QR code for an existing link, ready to print. Returns the artwork saved on the link when there is one (frames, colours and logo set in the ShareCut editor), otherwise renders a plain code for its short URL. Requires a ShareCut API key (Business plan).","inputSchema":{"type":"object","required":["link"],"properties":{"link":{"type":"string","description":"The link, given either as its short code (the part after sharecut.site/) or as the id returned when it was created. A full ShareCut URL is accepted too."},"color":{"type":"string","description":"Foreground hex colour for a plain code, e.g. #2563eb."},"style":{"enum":["stored","plain"],"type":"string","description":"Saved artwork if any (default), or force a plain black-and-white code."},"format":{"enum":["png"],"type":"string","description":"Also return a PNG data URL. Applies when a plain code is rendered."}}},"annotations":{"readOnlyHint":true},"title":"Get the QR code of a link"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":256,"tokensAfter":256},{"name":"list_links","fixed":{"name":"list_links","description":"List the links on the account the API key belongs to: short links, link-in-bio pages and restaurant menus, with their click counts. Filter by type or by a search term, and sort by newest or by most clicked. Requires a ShareCut API key (Business plan).","inputSchema":{"type":"object","properties":{"q":{"type":"string","description":"Match against short code, title, description and destination."},"sort":{"enum":["created","clicks"],"type":"string","description":"Newest first (default) or most clicked first."},"type":{"enum":["short","linktree","menu"],"type":"string","description":"Only links of this kind."},"limit":{"type":"integer","maximum":100,"minimum":1,"description":"How many to return. Default 20."},"offset":{"type":"integer","minimum":0,"description":"How many to skip, for paging. Default 0."}}},"annotations":{"readOnlyHint":true},"title":"List links"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":237,"tokensAfter":237},{"name":"update_link","fixed":{"name":"update_link","description":"Re-point an existing short link at a new destination, or change its title, description or UTM parameters. This is what makes a printed QR code reusable: the code encodes the short link, so changing the destination redirects every copy already printed, shared or stuck on a wall, and the click history is kept. The new destination is screened with Google Web Risk. The short code itself never changes here, because changing it would break every copy already out there. Requires a ShareCut API key (Bus","inputSchema":{"type":"object","required":["link"],"properties":{"url":{"type":"string","description":"The new http(s) destination. Short links only — a menu or link-in-bio page has no single destination."},"utm":{"type":"object","properties":{"term":{"type":"string"},"medium":{"type":"string"},"source":{"type":"string"},"content":{"type":"string"},"campaign":{"type":"string"}},"description":"UTM parameters appended at redirect time. Pass an empty object to switch UTM tracking off."},"link":{"type":"string","description":"The link, given either as its short code (the part after sharecut.site/) or as the id returned when it was created. A full ShareCut URL is accepted too."},"title":{"type":"string","description":"New label for the owner dashboard."},"description":{"type":"string","description":"New description."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Change where a link points"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":380,"tokensAfter":380}],"toolsChanged":9,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}