{"server":"xn--3ds443g.xn--s7y/duan-online","count":6,"tools":[{"name":"begin_registration","title":"Connect account · 浏览器注册入口（短.在线）","description":"客户端无法启动 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.","input_schema":{"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},"output_schema":{"type":"object","oneOf":[{"type":"object","required":["ok","request_id","signup_url","expires_at","resume_token"],"properties":{"ok":{"type":"boolean","const":true},"expires_at":{"type":"string"},"request_id":{"type":"string"},"signup_url":{"type":"string"},"resume_token":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["ok","request_id","error","code","message","type","title","retryable"],"properties":{"ok":{"type":"boolean","const":false},"code":{"type":"string"},"type":{"type":"string"},"error":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"request_id":{"type":"string"}},"additionalProperties":false}],"$schema":"https://json-schema.org/draft/2020-12/schema"},"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:18:55.416Z"},{"name":"create_qr","title":"QR image · 二维码图片（短.在线）","description":"为已有短链返回可扫描二维码。默认 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.","input_schema":{"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},"output_schema":{"type":"object","oneOf":[{"type":"object","required":["ok","request_id","id","state","short_url","short_url_ascii","qr_tracking_url","status_url","host_display","mime_type","pixel_size","image_available"],"properties":{"id":{"type":"string"},"ok":{"type":"boolean","const":true},"state":{"type":"string","const":"active"},"image_url":{"type":"string","description":"Short-lived URL for this QR image. Omitted when signing is not configured. Not an API key, OAuth token, or session."},"mime_type":{"type":"string","const":"image/png","description":"image/png. A PNG image block is included."},"short_url":{"type":"string"},"pixel_size":{"anyOf":[{"type":"number","const":256},{"type":"number","const":512},{"type":"number","const":1024}],"description":"PNG square pixels."},"request_id":{"type":"string"},"status_url":{"type":"string"},"host_display":{"type":"string","description":"Neutral summary of the returned QR: format, the encoded qr_tracking_url, and image_url availability."},"image_available":{"type":"boolean","const":true,"description":"True only when a PNG image block is included."},"qr_tracking_url":{"type":"string","description":"ASCII tracking URL encoded in the image, including ?s=qr."},"short_url_ascii":{"type":"string"},"image_url_expires_at":{"type":"string","description":"ISO-8601 expiry of image_url. Present only together with image_url."}},"additionalProperties":false},{"type":"object","required":["ok","request_id","id","state","short_url","short_url_ascii","qr_tracking_url","status_url","host_display","mime_type","pixel_size","image_available"],"properties":{"id":{"type":"string"},"ok":{"type":"boolean","const":true},"state":{"type":"string","const":"active"},"image_url":{"type":"string","description":"Short-lived URL for this QR image. Omitted when signing is not configured. Not an API key, OAuth token, or session."},"mime_type":{"type":"string","const":"image/svg+xml","description":"image/svg+xml. SVG is not sent as an image block."},"short_url":{"type":"string"},"pixel_size":{"type":"null","description":"Null for SVG."},"request_id":{"type":"string"},"status_url":{"type":"string"},"host_display":{"type":"string","description":"Neutral summary of the returned QR: format, the encoded qr_tracking_url, and image_url availability."},"image_available":{"type":"boolean","const":false,"description":"False for SVG. Hosts do not render an SVG image block. Use the SVG text, resource, or image_url."},"qr_tracking_url":{"type":"string","description":"ASCII tracking URL encoded in the image, including ?s=qr."},"short_url_ascii":{"type":"string"},"image_url_expires_at":{"type":"string","description":"ISO-8601 expiry of image_url. Present only together with image_url."}},"additionalProperties":false},{"type":"object","required":["ok","request_id","message","type","title","code","retryable"],"properties":{"id":{"type":"string"},"ok":{"type":"boolean","const":false},"code":{"type":"string"},"type":{"type":"string"},"error":{"type":"string"},"state":{"enum":["quarantined","disabled","blocked","expired"],"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"request_id":{"type":"string"},"image_available":{"type":"boolean","const":false}},"additionalProperties":false}],"$schema":"https://json-schema.org/draft/2020-12/schema"},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:18:55.416Z"},{"name":"get_link","title":"Get link · 查询单条链接（短.在线）","description":"按 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.","input_schema":{"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"}}},"output_schema":{"type":"object","oneOf":[{"type":"object","required":["ok","request_id","id","state","created_at","status_url","short_url","short_url_ascii","destination"],"properties":{"id":{"type":"string"},"ok":{"type":"boolean","const":true},"state":{"type":"string","const":"active"},"short_url":{"type":"string"},"created_at":{"type":"string"},"request_id":{"type":"string"},"status_url":{"type":"string"},"destination":{"type":"string"},"short_url_ascii":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["ok","request_id","id","state","created_at","status_url","type","title","code"],"properties":{"id":{"type":"string"},"ok":{"type":"boolean","const":true},"code":{"type":"string"},"type":{"type":"string"},"state":{"enum":["quarantined","disabled","blocked","expired"],"type":"string"},"title":{"type":"string"},"created_at":{"type":"string"},"expired_at":{"type":"string"},"request_id":{"type":"string"},"status_url":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["ok","request_id","error","code","message","type","title","retryable"],"properties":{"ok":{"type":"boolean","const":false},"code":{"type":"string"},"type":{"type":"string"},"error":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"request_id":{"type":"string"}},"additionalProperties":false}],"$schema":"https://json-schema.org/draft/2020-12/schema"},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:18:55.416Z"},{"name":"resolve_short_url","title":"Inspect short link · 查询本站短链（短.在线）","description":"查询本站短码或本站短链的已保存状态；仅 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.","input_schema":{"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":{}},"output_schema":{"type":"object","oneOf":[{"type":"object","required":["ok","request_id","id","state","created_at","status_url","short_url","short_url_ascii","destination"],"properties":{"id":{"type":"string"},"ok":{"type":"boolean","const":true},"state":{"type":"string","const":"active"},"short_url":{"type":"string"},"created_at":{"type":"string"},"request_id":{"type":"string"},"status_url":{"type":"string"},"destination":{"type":"string"},"short_url_ascii":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["ok","request_id","id","state","created_at","status_url","type","title","code"],"properties":{"id":{"type":"string"},"ok":{"type":"boolean","const":true},"code":{"type":"string"},"type":{"type":"string"},"state":{"enum":["quarantined","disabled","blocked","expired"],"type":"string"},"title":{"type":"string"},"created_at":{"type":"string"},"expired_at":{"type":"string"},"request_id":{"type":"string"},"status_url":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["ok","request_id","error","code","message","type","title","retryable"],"properties":{"ok":{"type":"boolean","const":false},"code":{"type":"string"},"type":{"type":"string"},"error":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"request_id":{"type":"string"}},"additionalProperties":false}],"$schema":"https://json-schema.org/draft/2020-12/schema"},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:18:55.416Z"},{"name":"shorten_url","title":"Shorten URL · 缩短链接（短.在线）","description":"为 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.","input_schema":{"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."}}},"output_schema":{"type":"object","oneOf":[{"type":"object","required":["ok","request_id","id","state","short_url","short_url_ascii","destination","qr_tracking_url","qr_url","created_at","status_url"],"properties":{"id":{"type":"string"},"ok":{"type":"boolean","const":true},"state":{"type":"string","const":"active"},"qr_url":{"type":"string"},"short_url":{"type":"string"},"created_at":{"type":"string"},"request_id":{"type":"string"},"status_url":{"type":"string"},"destination":{"type":"string"},"qr_tracking_url":{"type":"string"},"short_url_ascii":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["ok","request_id","id","state","created_at","status_url","error","message"],"properties":{"id":{"type":"string"},"ok":{"type":"boolean","const":true},"error":{"type":"string","const":"LINK_QUARANTINED"},"state":{"type":"string","const":"quarantined"},"message":{"type":"string"},"created_at":{"type":"string"},"request_id":{"type":"string"},"status_url":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["ok","request_id","error","code","message","type","title","retryable"],"properties":{"ok":{"type":"boolean","const":false},"code":{"type":"string"},"type":{"type":"string"},"error":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"request_id":{"type":"string"},"resend_path":{"type":"string","description":"Where to resend the verification email when verification would raise this account's limits."}},"additionalProperties":false},{"type":"object","required":["ok","request_id","replay"],"properties":{"ok":{"type":"boolean","const":true},"replay":{},"request_id":{"type":"string"}},"additionalProperties":false}],"$schema":"https://json-schema.org/draft/2020-12/schema"},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:18:55.416Z"},{"name":"shorten_urls","title":"Batch shorten · 批量短链（短.在线）","description":"一次同步创建 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.","input_schema":{"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 (never use array index)."}}},"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."}}},"output_schema":{"type":"object","oneOf":[{"type":"object","required":["ok","request_id","batch_id","batch_mode","ok_count","fail_count","results"],"properties":{"ok":{"type":"boolean","const":true},"results":{"type":"array","items":{"type":"object","required":["client_ref","ok"],"properties":{"ok":{"type":"boolean"},"result":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"problem":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"retryable":{"type":"boolean"},"client_ref":{"type":"string"}},"additionalProperties":false}},"batch_id":{"type":"string"},"ok_count":{"type":"number"},"batch_mode":{"type":"string","const":"sync"},"fail_count":{"type":"number"},"request_id":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["ok","request_id","error","code","message","type","title","retryable"],"properties":{"ok":{"type":"boolean","const":false},"code":{"type":"string"},"type":{"type":"string"},"error":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"request_id":{"type":"string"},"resend_path":{"type":"string","description":"Where to resend the verification email when verification would raise this account's limits."}},"additionalProperties":false},{"type":"object","required":["ok","request_id"],"properties":{"ok":{"type":"boolean","const":true},"request_id":{"type":"string"}},"additionalProperties":false}],"$schema":"https://json-schema.org/draft/2020-12/schema"},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T10:18:55.416Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/xn--3ds443g.xn--s7y%2Fduan-online/connection?target=mcpServers","arguments":{"name":"xn--3ds443g.xn--s7y/duan-online","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/xn--3ds443g.xn--s7y%2Fduan-online","arguments":{"name":"xn--3ds443g.xn--s7y/duan-online"}}]}