Short links + QR codes for AI agents. Account required to create links via MCP. Public beta.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer API key or OAuth access token for account tools (shorten_url, shorten_urls, get_link, create_qr). tools/list, resolve_short_url and begin_registration do not need a token. Never paste permanent secrets into chat. See https://xn--s7y.xn--3ds443g/en/docs/mcp
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
客户端无法启动 OAuth 时的后备入口。返回浏览器注册链接。本工具不创建账号,不接收密码,也不代用户同意条款。 Fallback when the client cannot start OAuth. Returns a browser registration link. This tool does not create an account, accept a password, or accept terms for the user.
Browser signup page language. Does not accept email, password, or acceptance. API language preference. Canonical values: en and zh-CN. Documented aliases normalized to the canonical value: zh-cn, zh-Hans, zh-hans, zh_Hans, zh_hans. Traditional Chinese is not supported. EN, ZH-CN, and bare zh are rejected. Omitted or blank defaults to en. This preference does not rewrite URL bytes, translate parameter names, or use the caller's location. Website routes stay /zh-cn.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Tool list last changed Oct 25, 2026.
客户端无法启动 OAuth 时的后备入口。返回浏览器注册链接。本工具不创建账号,不接收密码,也不代用户同意条款。 Fallback when the client cannot start OAuth. Returns a browser registration link. This tool does not create an account, accept a password, or accept terms for the user.
| Argument | Type | Description |
|---|---|---|
| locale | string | Browser signup page language. Does not accept email, password, or acceptance. API language preference. Canonical values: en and zh-CN. Documented aliases normalized to the canonical value: zh-cn, zh-Hans, zh-hans, zh_Hans, zh_hans. Traditional Chinese is not supported. EN, ZH-CN, and bare zh are rejected. Omitted or blank defaults to en. This preference does not rewrite URL bytes, translate parameter names, or use the caller's location. Website routes stay /zh-cn. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"examples": [
{
"locale": "en"
},
{
"locale": "zh-CN"
}
],
"properties": {
"locale": {
"enum": [
"en",
"zh-CN",
"zh-cn",
"zh-Hans",
"zh-hans",
"zh_Hans",
"zh_hans"
],
"type": "string",
"description": "Browser signup page language. Does not accept email, password, or acceptance. API language preference. Canonical values: en and zh-CN. Documented aliases normalized to the canonical value: zh-cn, zh-Hans, zh-hans, zh_Hans, zh_hans. Traditional Chinese is not supported. EN, ZH-CN, and bare zh are rejected. Omitted or blank defaults to en. This preference does not rewrite URL bytes, translate parameter names, or use the caller's location. Website routes stay /zh-cn."
}
},
"additionalProperties": false
}为已有短链返回可扫描二维码。默认 PNG 512×512,并包含 image/png 图片块。仅当 format 为 svg 时返回 SVG,且不以 image 块返回。二维码中编码的是带有 ?s=qr 来源标记的短链接(使用 ASCII 域名),与 GET /v1/links/{id}/qr 返回的二维码内容一致。需要已注册账号,且必须是该链接的所有者。不新建短链,也不抓取目标地址。PNG 边长仅 256、512、1024,SVG 忽略边长。可能包含短期 image_url 及其到期时间;该链接不是 API 密钥、OAuth 令牌或会话。返回已存储短链的二维码:默认 PNG,请求时为 SVG;可用时附带短期 image_url。二维码编码的是 qr_tracking_url。未显示图片时,可使用 image_url(如有)或短链。 Return a scannable QR for an existing short link. Default PNG is 512×512 and includes an image/png image block. SVG is returned only when format is svg, and not as an image block. The matrix encodes the tracking URL with ?s=qr (ASCII host), the same payload as GET /v1/links/{id}/qr. A registered account that owns the link is required. Does not create a link and does not fetch the destination. PNG size is 256, 512, or 1024. SVG ignores size. A short-lived image_url and its expiry may be included. That URL is not an API key, an OAuth token, or a session. Returns the stored link's QR as PNG, or SVG when requested, with a short-lived image URL where available. The QR encodes qr_tracking_url. Where an image is not displayed, image_url (when present) or the short link reaches the same code.
| Argument | Type | Description |
|---|---|---|
| id | string | Existing short code. Mutually exclusive with short_url. |
| size | any | PNG square pixels. Default 512. Allowed: 256, 512, or 1024. Ignored when format is svg. |
| format | string | Image format. Default png. svg only when requested. SVG ignores size. |
| short_url | string | Existing short URL to tag for QR. Mutually exclusive with id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"examples": [
{
"id": "example"
},
{
"short_url": "https://xn--s7y.xn--3ds443g/example"
},
{
"id": "example",
"size": 512,
"format": "png"
}
],
"properties": {
"id": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Existing short code. Mutually exclusive with short_url."
},
"size": {
"anyOf": [
{
"type": "number",
"const": 256
},
{
"type": "number",
"const": 512
},
{
"type": "number",
"const": 1024
}
],
"description": "PNG square pixels. Default 512. Allowed: 256, 512, or 1024. Ignored when format is svg."
},
"format": {
"enum": [
"png",
"svg"
],
"type": "string",
"description": "Image format. Default png. svg only when requested. SVG ignores size."
},
"short_url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Existing short URL to tag for QR. Mutually exclusive with id."
}
},
"additionalProperties": false
}按 id 查询当前授权账号拥有的链接。需要已注册账号。无需账号的公开状态查询请使用 resolve_short_url。 Fetch one link by id, only a link owned by the signed-in account. A registered account is required. For a public status check, use resolve_short_url.
| Argument | Type | Description |
|---|---|---|
| id* | string | Short code / link id |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"examples": [
{
"id": "example"
}
],
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Short code / link id"
}
}
}查询本站短码或本站短链的已保存状态;仅 active 时返回目标地址。无需账号。不查询其他短链服务;查询结果不是安全检测结论。 Look up a 短.在线 code or short URL and return its saved state. The destination is returned only when active. No account required. Does not look up other shorteners. The result is not a security verdict.
| Argument | Type | Description |
|---|---|---|
| url | string | Full short URL (Unicode or punycode). Mutually exclusive with code. |
| code | string | Short code. Mutually exclusive with url. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"examples": [
{
"url": "https://xn--s7y.xn--3ds443g/example"
},
{
"code": "example"
}
],
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Full short URL (Unicode or punycode). Mutually exclusive with code."
},
"code": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Short code. Mutually exclusive with url."
}
},
"additionalProperties": {}
}为 HTTP 或 HTTPS 目标地址创建一条短链。需要已注册账号。返回链接状态;状态为 active 时,同时返回 Unicode 显示地址和 ASCII 地址。创建两条或更多短链时使用 shorten_urls。重试同一操作时,必须复用相同的 idempotency_key。 Create one HTTP or HTTPS short link. A registered account is required. Returns the state, and when active, the Unicode display URL and the ASCII URL. For two or more, use shorten_urls. A retry of the same operation must reuse the same idempotency_key.
| Argument | Type | Description |
|---|---|---|
| url* | string | Destination HTTPS/HTTP URL to shorten. Required. Do not send longUrl. |
| alias | string | Optional custom path segment (stored lowercase). Do not send customSlug. |
| title | string | Optional link title, at most 256 characters. |
| locale | string | API language preference. Canonical values: en and zh-CN. Documented aliases normalized to the canonical value: zh-cn, zh-Hans, zh-hans, zh_Hans, zh_hans. Traditional Chinese is not supported. EN, ZH-CN, and bare zh are rejected. Omitted or blank defaults to en. This preference does not rewrite URL bytes, translate parameter names, or use the caller's location. Website routes stay /zh-cn. |
| idempotency_key* | string | Client-generated unique key for this create. Required. Replays within 24h. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"examples": [
{
"url": "https://example.com/notes",
"alias": "notes",
"title": "Notes",
"locale": "en",
"idempotency_key": "example-create-1"
}
],
"required": [
"url",
"idempotency_key"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Destination HTTPS/HTTP URL to shorten. Required. Do not send longUrl."
},
"alias": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Optional custom path segment (stored lowercase). Do not send customSlug."
},
"title": {
"type": "string",
"maxLength": 256,
"description": "Optional link title, at most 256 characters."
},
"locale": {
"type": "string",
"description": "API language preference. Canonical values: en and zh-CN. Documented aliases normalized to the canonical value: zh-cn, zh-Hans, zh-hans, zh_Hans, zh_hans. Traditional Chinese is not supported. EN, ZH-CN, and bare zh are rejected. Omitted or blank defaults to en. This preference does not rewrite URL bytes, translate parameter names, or use the caller's location. Website routes stay /zh-cn."
},
"idempotency_key": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Client-generated unique key for this create. Required. Replays within 24h."
}
}
}一次同步创建 1 到 100 条短链。按 client_ref 对应结果,允许部分成功。需要已注册账号。批量重试只有三种情况,不要混用。示例:key 为 batch-1,两项 client_ref 分别为 notes(https://example.com/notes)和 draft(https://example.com/draft)。notes 成功,draft 的 retryable 为 true。(1) 传输结果不确定(没有拿到已完成的响应、IDEMPOTENCY_IN_PROGRESS、幂等锁不可用,或因瞬时数据库错误且一条都未创建而返回 503):用同一个 key 原样重发整批。已完成的批次返回已保存的结果,notes 不会再次创建。key 已被释放时,同一批会重新执行。(2) 已完成且某项 retryable 为 true:重放 batch-1 只返回已保存的结果,不会重试 draft。只用新 key(例如 batch-1-draft)发送 draft,并保留 client_ref draft,不要带上 notes。去掉 notes 后仍用 batch-1 会返回 IDEMPOTENCY_CONFLICT。(3) 校验错误:改正请求,不要把同一份无效请求当作网络重试。key 尚未保存的 400(重复 client_ref、缺少 items、BATCH_TOO_LARGE)改正后可以继续用同一个 key。已完成且 retryable 为 false 的项已保存;修改请求体后继续使用原 key,会返回 IDEMPOTENCY_CONFLICT,改正后的项必须用新 key。 Create 1 to 100 short links in one synchronous request. Match each result by client_ref. Partial success is allowed. A registered account is required. Batch retry has three cases; do not mix them. Worked example: key batch-1 with client_ref notes (https://example.com/notes) and draft (https://example.com/draft). notes succeeds and draft is retryable true. (1) Uncertain transport outcome — no completed body, IDEMPOTENCY_IN_PROGRESS, an unavailable idempotency lock, or 503 because a transient database error created nothing: resend the entire unchanged batch with the same key. A completed batch returns the stored result and notes is not created again. A released key runs that same batch again. (2) Completed batch with retryable true: replaying batch-1 returns the stored body and does not retry draft. Send only draft, keeping client_ref draft, under a new key such as batch-1-draft. Do not include notes. Dropping notes and reusing batch-1 returns IDEMPOTENCY_CONFLICT. (3) Validation error: fix the request. Do not resend the same invalid body as a network retry. A 400 before the key is stored (duplicate client_ref, missing items, BATCH_TOO_LARGE) may reuse the key after the body is corrected. A completed item with retryable false is stored; a changed body on that key returns IDEMPOTENCY_CONFLICT, so send the corrected item with a new key.
| Argument | Type | Description |
|---|---|---|
| items* | array | Synchronous batch items (1 to 100). Each item creates one short link. |
| idempotency_key* |
| string |
| Client-generated unique key for this create. Required. Replays within 24h. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"examples": [
{
"items": [
{
"url": "https://example.com/notes",
"alias": "notes",
"title": "Notes",
"locale": "zh-cn",
"client_ref": "item-1"
}
],
"idempotency_key": "example-batch-1"
}
],
"required": [
"items",
"idempotency_key"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"client_ref",
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Destination HTTPS/HTTP URL to shorten. Required. Do not send longUrl."
},
"alias": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Optional custom path segment (stored lowercase). Do not send customSlug."
},
"title": {
"type": "string",
"maxLength": 256,
"description": "Optional link title, at most 256 characters."
},
"locale": {
"type": "string",
"description": "API language preference. Canonical values: en and zh-CN. Documented aliases normalized to the canonical value: zh-cn, zh-Hans, zh-hans, zh_Hans, zh_hans. Traditional Chinese is not supported. EN, ZH-CN, and bare zh are rejected. Omitted or blank defaults to en. This preference does not rewrite URL bytes, translate parameter names, or use the caller's location. Website routes stay /zh-cn."
},
"client_ref": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Batch item correlation id. Do not join on array index. The link_created event stores client_ref only when it is 1 to 64 characters matching [A-Za-z0-9._:-]. Any other value is omitted from that event. link_create_failed uses the same rule."
}
}
},
"maxItems": 100,
"minItems": 1,
"description": "Synchronous batch items (1 to 100). Each item creates one short link."
},
"idempotency_key": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Client-generated unique key for this create. Required. Replays within 24h."
}
}
}