Skip to main content
Glama

Server Details

Short links + QR codes for AI agents (EN/中文). Public beta. Docs public; most tools need an account.

Ownership verified
Status
Healthy
Uptime
99.0% over 50 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct action: create one link vs. bulk create, read one link vs. list, public resolve vs. owner-scoped get, QR generation, update, disable, and registration fallback. Descriptions actively cross-reference the nearest neighbor (e.g. get_link points to resolve_short_url for public lookups), leaving little room for misselection.

Naming Consistency4/5

Predominantly consistent snake_case verb_noun pattern (get_link, get_links, update_link, disable_link, resolve_short_url), with clean singular/plural pairs. Minor deviations: create_qr uses 'create' while link creation uses 'shorten', and begin_registration is a lifecycle-style verb, but the set remains highly readable.

Tool Count5/5

Nine tools is well within a healthy range and every tool maps to a real operation in a URL shortener (single/bulk create, read, list, update, disable, resolve, QR, registration fallback). No filler or redundant entries.

Completeness3/5

Core lifecycle is covered (create, read, list, update title/destination, soft-disable, public resolve, QR), but there is no hard delete, no re-enable path after disabling, and no click/usage analytics despite that being central to a shortener. These are notable gaps an agent could not work around.

Available Tools

9 tools
begin_registrationConnect account · 浏览器注册入口(短.在线)AInspect

客户端无法启动 OAuth 时的后备入口。返回浏览器注册链接。不创建账号,不接收密码,也不代用户同意条款。 Fallback when the client cannot start OAuth. Returns a browser registration link. Does not create an account, accept a password, or accept terms.

NameRequiredDescriptionDefault
localeNoBlank is en. Does not rewrite URLs, translate parameter names, or use location. Rejects Traditional Chinese, EN, ZH-CN, and bare zh.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare hint flags (readOnlyHint=false, idempotentHint=false); the description adds the non-obvious behavioral facts that no account, password, or terms consent is handled here. It does not say whether a server-side registration session is created or how long the returned link stays valid, which matters given readOnlyHint=false and idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Sentences are short and the fallback condition is front-loaded, but the entire text is duplicated verbatim in Chinese and English, doubling length without adding information for a given reader. The redundant clauses about password and terms are useful but slightly repetitive with 'does not create an account'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is unnecessary, and the description covers both what is returned and what the tool deliberately does not do. Adequate for a one-optional-parameter tool; only link lifetime / single-use behavior is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'locale' parameter has an unusually detailed enum description including accepted and rejected values. The description adds nothing about locale, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns a browser registration link and serves as a fallback when OAuth cannot start. The negative clauses ('does not create an account, accept a password, or accept terms') further pin down what the tool actually is. Siblings (shorten_url, get_link, create_qr) are unrelated URL utilities, so no sibling differentiation is needed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear triggering condition: use as a fallback when the client cannot start OAuth. That is enough context to choose it, though no explicit alternative is named (e.g. the primary OAuth tool it backs up), which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_qrQR image · 二维码图片(短.在线)A
Idempotent
Inspect

为已有短链返回二维码。需已注册的所有者。不新建短链,不抓取目标地址。编码带 ?s=qr 的 ASCII 短链,与 GET /v1/links/{id}/qr 相同。image_url 不是 API 密钥、OAuth 令牌或会话。 QR for an existing short link. Registered owner required. Does not create a link or fetch the destination. Encodes the ASCII short link with ?s=qr, same as GET /v1/links/{id}/qr. image_url is not an API key, OAuth token, or session.

NameRequiredDescriptionDefault
idNoNot with short_url
sizeNoPNG side.
formatNoDefault png 512. svg is not an image block and ignores size.
short_urlNoNot with id

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, destructive, idempotent, and open-world hints. The description adds useful behavior beyond annotations: owner authentication, no link creation, no destination fetch, the exact encoded target (`?s=qr`), endpoint equivalence, and a security note that `image_url` is not a credential. It does not explain why `readOnlyHint` is false or describe any side effects, so it is strong but not complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and constraints are front-loaded, and every substantive sentence adds a restriction or security detail. However, the full content is duplicated in Chinese and English, which makes it less concise than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value details are not required in the description, and the input schema covers all four parameters. The description supplies the important auth, no-side-effect, encoding, and security context, though it leaves the non-read-only hint somewhat unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents the `id`/`short_url` exclusivity, `size`, and `format` behavior. The description adds the encoded target format but does not add parameter-level guidance beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States it returns a QR code for an existing short link, explicitly says it does not create a link or fetch the destination, and identifies the equivalent GET endpoint. This clearly separates it from siblings such as shorten_url, get_link, and resolve_short_url.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Specifies the key preconditions: the short link must already exist and a registered owner is required. It also states when not to use it (not for creating links or fetching destinations), but it does not name sibling tools or explicitly route the agent to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_short_urlInspect short link · 查询本站短链(短.在线)A
Read-onlyIdempotent
Inspect

查询本站短码或本站短链的已保存状态;仅 active 时返回目标地址。无需账号。不查询其他短链服务;结果不是安全结论。 Look up a 短.在线 code or short URL. Returns saved state, and the destination only when active. No account required. Does not look up other shorteners. Not a security verdict.

NameRequiredDescriptionDefault
urlNoNot with code.
codeNoNot with url.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds real context: no authentication needed, the destination is suppressed unless the link is active, and the result is explicitly 'not a security verdict'. It does not enumerate the possible inactive states, but the presence of an output schema covers the return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and the key conditional (destination returned only when active). The bilingual duplication roughly doubles the length, which is defensible for the audience but is still repeated content rather than new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, full schema coverage, and an output schema, the description supplies what structure cannot: the active-only destination rule, the no-account fact, and the interpretation caveat. Only the set of non-active states is left unexplained, which the output schema plausibly covers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the mutual exclusion ('Not with code.' / 'Not with url.') lives in the schema itself. The description only maps the two accepted forms ('code or short URL') and adds no format, encoding, or precedence details beyond that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: look up a 短.在线 code or short URL and return its saved state, with the destination only when active. It also scopes itself ('Does not look up other shorteners'), so an agent can separate it from shorten_url/shorten_urls even though get_link is never named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear usage condition and an exclusion: use it to inspect state, no account required, and it will not resolve codes from other shorteners. It stops short of pointing at a sibling (e.g. get_link) for the cases this tool declines, so the routing half of the guidance is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shorten_urlShorten URL · 缩短链接(短.在线)A
Idempotent
Inspect

为 HTTP 或 HTTPS 目标地址创建一条短链。需要已注册账号。重试必须复用相同的 idempotency_key。 Create one HTTP or HTTPS short link. A registered account is required. Retry with the same idempotency_key.

NameRequiredDescriptionDefault
urlYesHTTP or HTTPS. Do not send longUrl.
aliasNoNo customSlug; lowercased.
titleNoOptional title.
localeNoen or zh-CN. Aliases zh-cn, zh-Hans, zh-hans, zh_Hans, zh_hans become zh-CN. Rejects Traditional Chinese, EN, ZH-CN, and bare zh. Blank is en. Does not rewrite URLs, names, or location. Routes stay /zh-cn.
idempotency_keyYesUnique client key. Replays the stored result for 24h.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true, so the description's added value is the auth requirement (registered account) and the operational instruction to reuse the key on retry. It does not cover alias-collision behavior, quotas, or what happens to an existing alias, which would be the remaining behavioral gaps for a write tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short parallel sentences (zh + en) that front-load the action, then prerequisites, then the retry rule. The bilingual duplication costs some space but each language block is tight and waste-free for its audience.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers the two things an agent must know before calling: account requirement and idempotent retry. Missing only edge-case behavior such as alias conflicts and quota limits for a write operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents url, alias, title, locale, and idempotency_key in detail (including locale alias normalization rules). The description only restates the url scheme constraint and key reuse, adding nothing the schema does not already carry.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create one HTTP or HTTPS short link'), and the word 'one' implicitly separates it from the plural sibling shorten_urls. It does not explicitly name the sibling, so the differentiation is inferable rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete prerequisite ('A registered account is required') and a retry rule ('Retry with the same idempotency_key'), which is actionable context for invoking it. It stops short of stating when to pick this over shorten_urls or create_qr, so no explicit exclusions or alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shorten_urlsBatch shorten · 批量短链(短.在线)A
Idempotent
Inspect

按 client_ref 对应,一次创建多条短链,可部分成功。需已注册账号。 Create several short links in one call, matched by client_ref. Partial success is allowed. A registered account is required.

NameRequiredDescriptionDefault
itemsYesOne link each.
idempotency_keyYesUnique client key. Replays the stored result for 24h.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true and destructiveHint=false, so the bar is lower, and the description still adds a genuinely important non-obvious trait: the operation can partially succeed rather than being all-or-nothing. The auth prerequisite is also disclosed. It omits that idempotency replay lasts 24h and the 100-item cap, both of which live in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the batch/partial-success semantics. The bilingual duplication doubles the length, which is defensible for a dual-language service but is still redundancy rather than added information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema, four annotations, and 100% parameter coverage, the description only needs to carry the batch-level semantics an agent cannot infer — partial success, client_ref matching, and the account prerequisite — and it does exactly that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema is unusually rich (client_ref character rules, locale normalization, idempotency replay window). The description only reiterates that results are matched by client_ref, adding nothing new. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with batch scope: 'Create several short links in one call'. The plural resource and 'in one call' implicitly distinguish it from the sibling shorten_url, though the contrast is never made explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Adds one real prerequisite — 'A registered account is required' — plus a hint that partial success is possible. But it never says when to pick this over the sibling shorten_url for a single link, nor any when-not condition; usage is only implied by the word 'several'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Addeddisable_link
  2. 2 tool updates
    • Addedget_links
    • Addedupdate_link
  3. 6 tool updates
    • Changedbegin_registration1 field changed
      • changedInput schema / properties / locale / description
        Previous value: -"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."New value: +"Blank is en. Does not rewrite URLs, translate parameter names, or use location. Rejects Traditional Chinese, EN, ZH-CN, and bare zh."
    • Changedcreate_qr5 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"Image format. Default png. svg only when requested. SVG ignores size."New value: +"Default png 512. svg is not an image block and ignores size."
      • changedInput schema / properties / id / description
        Previous value: -"Existing short code. Mutually exclusive with short_url."New value: +"Not with short_url"
      • changedInput schema / properties / short_url / description
        Previous value: -"Existing short URL to tag for QR. Mutually exclusive with id."New value: +"Not with id"
      • changedInput schema / properties / size / description
        Previous value: -"PNG square pixels. Default 512. Allowed: 256, 512, or 1024. Ignored when format is svg."New value: +"PNG side."
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "host_display": {
        -        "description": "Neutral summary of the returned QR: format, the encoded qr_tracking_url, and image_url availability.",
        -        "type": "string"
        -      },
        -      "id": {
        -        "type": "string"
        -      },
        -      "image_available": {
        -        "const": true,
        -        "description": "True only when a PNG image block is included.",
        -        "type": "boolean"
        -      },
        -      "image_url": {
        -        "description": "Short-lived URL for this QR image. Omitted when signing is not configured. Not an API key, OAuth token, or session.",
        -        "type": "string"
        -      },
        -      "image_url_expires_at": {
        -        "description": "ISO-8601 expiry of image_url. Present only together with image_url.",
        -        "type": "string"
        -      },
        -      "mime_type": {
        -        "const": "image/png",
        -        "description": "image/png. A PNG image block is included.",
        -        "type": "string"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "pixel_size": {
        -        "anyOf": [
        -          {
        -            "const": 256,
        -            "type": "number"
        -          },
        -          {
        -            "const": 512,
        -            "type": "number"
        -          },
        -          {
        -            "const": 1024,
        -            "type": "number"
        -          }
        -        ],
        -        "description": "PNG square pixels."
        -      },
        -      "qr_tracking_url": {
        -        "description": "ASCII tracking URL encoded in the image, including ?s=qr.",
        -        "type": "string"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "short_url": {
        -        "type": "string"
        -      },
        -      "short_url_ascii": {
        -        "type": "string"
        -      },
        -      "state": {
        -        "const": "active",
        -        "type": "string"
        -      },
        -      "status_url": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "id",
        -      "state",
        -      "short_url",
        -      "short_url_ascii",
        -      "qr_tracking_url",
        -      "status_url",
        -      "host_display",
        -      "mime_type",
        -      "pixel_size",
        -      "image_available"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "host_display": {
        -        "description": "Neutral summary of the returned QR: format, the encoded qr_tracking_url, and image_url availability.",
        -        "type": "string"
        -      },
        -      "id": {
        -        "type": "string"
        -      },
        -      "image_available": {
        -        "const": false,
        -        "description": "False for SVG. Hosts do not render an SVG image block. Use the SVG text, resource, or image_url.",
        -        "type": "boolean"
        -      },
        -      "image_url": {
        -        "description": "Short-lived URL for this QR image. Omitted when signing is not configured. Not an API key, OAuth token, or session.",
        -        "type": "string"
        -      },
        -      "image_url_expires_at": {
        -        "description": "ISO-8601 expiry of image_url. Present only together with image_url.",
        -        "type": "string"
        -      },
        -      "mime_type": {
        -        "const": "image/svg+xml",
        -        "description": "image/svg+xml. SVG is not sent as an image block.",
        -        "type": "string"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "pixel_size": {
        -        "description": "Null for SVG.",
        -        "type": "null"
        -      },
        -      "qr_tracking_url": {
        -        "description": "ASCII tracking URL encoded in the image, including ?s=qr.",
        -        "type": "string"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "short_url": {
        -        "type": "string"
        -      },
        -      "short_url_ascii": {
        -        "type": "string"
        -      },
        -      "state": {
        -        "const": "active",
        -        "type": "string"
        -      },
        -      "status_url": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "id",
        -      "state",
        -      "short_url",
        -      "short_url_ascii",
        -      "qr_tracking_url",
        -      "status_url",
        -      "host_display",
        -      "mime_type",
        -      "pixel_size",
        -      "image_available"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "code": {
        -        "type": "string"
        -      },
        -      "error": {
        -        "type": "string"
        -      },
        -      "id": {
        -        "type": "string"
        -      },
        -      "image_available": {
        -        "const": false,
        -        "type": "boolean"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "ok": {
        -        "const": false,
        -        "type": "boolean"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "retryable": {
        -        "type": "boolean"
        -      },
        -      "state": {
        -        "enum": [
        -          "quarantined",
        -          "disabled",
        -          "blocked",
        -          "expired"
        -        ],
        -        "type": "string"
        -      },
        -      "title": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "message",
        -      "type",
        -      "title",
        -      "code",
        -      "retryable"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "host_display": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "image_available": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "image_url": {
        +        "description": "Omitted if unsigned.",
        +        "type": "string"
        +      },
        +      "image_url_expires_at": {
        +        "type": "string"
        +      },
        +      "mime_type": {
        +        "const": "image/png",
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "pixel_size": {
        +        "anyOf": [
        +          {
        +            "const": 256,
        +            "type": "number"
        +          },
        +          {
        +            "const": 512,
        +            "type": "number"
        +          },
        +          {
        +            "const": 1024,
        +            "type": "number"
        +          }
        +        ]
        +      },
        +      "qr_tracking_url": {
        +        "type": "string"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "short_url": {
        +        "type": "string"
        +      },
        +      "short_url_ascii": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "active",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "short_url",
        +      "short_url_ascii",
        +      "qr_tracking_url",
        +      "status_url",
        +      "host_display",
        +      "mime_type",
        +      "pixel_size",
        +      "image_available"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "host_display": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "image_available": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "image_url": {
        +        "description": "Omitted if unsigned.",
        +        "type": "string"
        +      },
        +      "image_url_expires_at": {
        +        "type": "string"
        +      },
        +      "mime_type": {
        +        "const": "image/svg+xml",
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "pixel_size": {
        +        "type": "null"
        +      },
        +      "qr_tracking_url": {
        +        "type": "string"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "short_url": {
        +        "type": "string"
        +      },
        +      "short_url_ascii": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "active",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "short_url",
        +      "short_url_ascii",
        +      "qr_tracking_url",
        +      "status_url",
        +      "host_display",
        +      "mime_type",
        +      "pixel_size",
        +      "image_available"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "image_available": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "retryable": {
        +        "type": "boolean"
        +      },
        +      "state": {
        +        "enum": [
        +          "quarantined",
        +          "disabled",
        +          "blocked",
        +          "expired"
        +        ],
        +        "type": "string"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "message",
        +      "type",
        +      "title",
        +      "code",
        +      "retryable"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedget_link1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Short code / link id"New value: +"Short code or link id."
    • Changedresolve_short_url2 fields changed
      • changedInput schema / properties / code / description
        Previous value: -"Short code. Mutually exclusive with url."New value: +"Not with url."
      • changedInput schema / properties / url / description
        Previous value: -"Full short URL (Unicode or punycode). Mutually exclusive with code."New value: +"Not with code."
    • Changedshorten_url6 fields changed
      • changedInput schema / properties / alias / description
        Previous value: -"Optional custom path segment (stored lowercase). Do not send customSlug."New value: +"No customSlug; lowercased."
      • changedInput schema / properties / idempotency_key / description
        Previous value: -"Client-generated unique key for this create. Required. Replays within 24h."New value: +"Unique client key. Replays the stored result for 24h."
      • changedInput schema / properties / locale / description
        Previous value: -"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."New value: +"en or zh-CN. Aliases zh-cn, zh-Hans, zh-hans, zh_Hans, zh_hans become zh-CN. Rejects Traditional Chinese, EN, ZH-CN, and bare zh. Blank is en. Does not rewrite URLs, names, or location. Routes stay /zh-cn."
      • changedInput schema / properties / title / description
        Previous value: -"Optional link title, at most 256 characters."New value: +"Optional title."
      • changedInput schema / properties / url / description
        Previous value: -"Destination HTTPS/HTTP URL to shorten. Required. Do not send longUrl."New value: +"HTTP or HTTPS. Do not send longUrl."
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "created_at": {
        -        "type": "string"
        -      },
        -      "destination": {
        -        "type": "string"
        -      },
        -      "id": {
        -        "type": "string"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "qr_tracking_url": {
        -        "type": "string"
        -      },
        -      "qr_url": {
        -        "type": "string"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "short_url": {
        -        "type": "string"
        -      },
        -      "short_url_ascii": {
        -        "type": "string"
        -      },
        -      "state": {
        -        "const": "active",
        -        "type": "string"
        -      },
        -      "status_url": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "id",
        -      "state",
        -      "short_url",
        -      "short_url_ascii",
        -      "destination",
        -      "qr_tracking_url",
        -      "qr_url",
        -      "created_at",
        -      "status_url"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "created_at": {
        -        "type": "string"
        -      },
        -      "error": {
        -        "const": "LINK_QUARANTINED",
        -        "type": "string"
        -      },
        -      "id": {
        -        "type": "string"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "state": {
        -        "const": "quarantined",
        -        "type": "string"
        -      },
        -      "status_url": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "id",
        -      "state",
        -      "created_at",
        -      "status_url",
        -      "error",
        -      "message"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "code": {
        -        "type": "string"
        -      },
        -      "error": {
        -        "type": "string"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "ok": {
        -        "const": false,
        -        "type": "boolean"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "resend_path": {
        -        "description": "Where to resend the verification email when verification would raise this account's limits.",
        -        "type": "string"
        -      },
        -      "retryable": {
        -        "type": "boolean"
        -      },
        -      "title": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "error",
        -      "code",
        -      "message",
        -      "type",
        -      "title",
        -      "retryable"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "replay": {},
        -      "request_id": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "replay"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "created_at": {
        +        "type": "string"
        +      },
        +      "destination": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "qr_tracking_url": {
        +        "type": "string"
        +      },
        +      "qr_url": {
        +        "type": "string"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "short_url": {
        +        "type": "string"
        +      },
        +      "short_url_ascii": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "active",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "short_url",
        +      "short_url_ascii",
        +      "destination",
        +      "qr_tracking_url",
        +      "qr_url",
        +      "created_at",
        +      "status_url"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "created_at": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "const": "LINK_QUARANTINED",
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "quarantined",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "created_at",
        +      "status_url",
        +      "error",
        +      "message"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "type": "string"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "resend_path": {
        +        "description": "Where to resend verification email if this would raise the account's limits.",
        +        "type": "string"
        +      },
        +      "retryable": {
        +        "type": "boolean"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "error",
        +      "code",
        +      "message",
        +      "type",
        +      "title",
        +      "retryable"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "replay": {},
        +      "request_id": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "replay"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedshorten_urls8 fields changed
      • changedInput schema / properties / idempotency_key / description
        Previous value: -"Client-generated unique key for this create. Required. Replays within 24h."New value: +"Unique client key. Replays the stored result for 24h."
      • changedInput schema / properties / items / description
        Previous value: -"Synchronous batch items (1 to 100). Each item creates one short link."New value: +"One link each."
      • changedInput schema / properties / items / items / properties / alias / description
        Previous value: -"Optional custom path segment (stored lowercase). Do not send customSlug."New value: +"No customSlug; lowercased."
      • changedInput schema / properties / items / items / properties / client_ref / description
        Previous value: -"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."New value: +"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._:-]. link_create_failed uses the same rule; any other value is omitted."
      • changedInput schema / properties / items / items / properties / locale / description
        Previous value: -"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."New value: +"en or zh-CN. Aliases zh-cn, zh-Hans, zh-hans, zh_Hans, zh_hans become zh-CN. Rejects Traditional Chinese, EN, ZH-CN, and bare zh. Blank is en. Does not rewrite URLs, names, or location. Routes stay /zh-cn."
      • removedInput schema / properties / items / items / properties / title / description
        Removed value: -"Optional link title, at most 256 characters."
      • changedInput schema / properties / items / items / properties / url / description
        Previous value: -"Destination HTTPS/HTTP URL to shorten. Required. Do not send longUrl."New value: +"HTTP or HTTPS. Do not send longUrl."
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "batch_id": {
        -        "type": "string"
        -      },
        -      "batch_mode": {
        -        "const": "sync",
        -        "type": "string"
        -      },
        -      "fail_count": {
        -        "type": "number"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "ok_count": {
        -        "type": "number"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "results": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "client_ref": {
        -              "type": "string"
        -            },
        -            "ok": {
        -              "type": "boolean"
        -            },
        -            "problem": {
        -              "additionalProperties": {},
        -              "propertyNames": {
        -                "type": "string"
        -              },
        -              "type": "object"
        -            },
        -            "result": {
        -              "additionalProperties": {},
        -              "propertyNames": {
        -                "type": "string"
        -              },
        -              "type": "object"
        -            },
        -            "retryable": {
        -              "type": "boolean"
        -            }
        -          },
        -          "required": [
        -            "client_ref",
        -            "ok"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "batch_id",
        -      "batch_mode",
        -      "ok_count",
        -      "fail_count",
        -      "results"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "code": {
        -        "type": "string"
        -      },
        -      "error": {
        -        "type": "string"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "ok": {
        -        "const": false,
        -        "type": "boolean"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "resend_path": {
        -        "description": "Where to resend the verification email when verification would raise this account's limits.",
        -        "type": "string"
        -      },
        -      "retryable": {
        -        "type": "boolean"
        -      },
        -      "title": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "error",
        -      "code",
        -      "message",
        -      "type",
        -      "title",
        -      "retryable"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "batch_id": {
        +        "type": "string"
        +      },
        +      "batch_mode": {
        +        "const": "sync",
        +        "type": "string"
        +      },
        +      "fail_count": {
        +        "type": "number"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "ok_count": {
        +        "type": "number"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "results": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "client_ref": {
        +              "type": "string"
        +            },
        +            "ok": {
        +              "type": "boolean"
        +            },
        +            "problem": {
        +              "additionalProperties": {},
        +              "propertyNames": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            },
        +            "result": {
        +              "additionalProperties": {},
        +              "propertyNames": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            },
        +            "retryable": {
        +              "type": "boolean"
        +            }
        +          },
        +          "required": [
        +            "client_ref",
        +            "ok"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "batch_id",
        +      "batch_mode",
        +      "ok_count",
        +      "fail_count",
        +      "results"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "type": "string"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "resend_path": {
        +        "description": "Where to resend verification email if this would raise the account's limits.",
        +        "type": "string"
        +      },
        +      "retryable": {
        +        "type": "boolean"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "error",
        +      "code",
        +      "message",
        +      "type",
        +      "title",
        +      "retryable"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id"
        +    ],
        +    "type": "object"
        +  }
        +]
  4. 1 tool update
    • Changedshorten_urls1 field changed
      • changedInput schema / properties / items / items / properties / client_ref / description
        Previous value: -"Batch item correlation id (never use array index)."New value: +"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."
  5. 1 tool update
    • Changedcreate_qr1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "host_display": {
        -        "description": "Show the user the returned image or image_url. Do not generate, draw, or synthesize a QR code.",
        -        "type": "string"
        -      },
        -      "id": {
        -        "type": "string"
        -      },
        -      "image_available": {
        -        "const": true,
        -        "description": "True only when a PNG image block is included.",
        -        "type": "boolean"
        -      },
        -      "image_url": {
        -        "description": "Short-lived URL for this QR image. Omitted when signing is not configured. Not an API key, OAuth token, or session.",
        -        "type": "string"
        -      },
        -      "image_url_expires_at": {
        -        "description": "ISO-8601 expiry of image_url. Present only together with image_url.",
        -        "type": "string"
        -      },
        -      "mime_type": {
        -        "const": "image/png",
        -        "description": "image/png. A PNG image block is included.",
        -        "type": "string"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "pixel_size": {
        -        "anyOf": [
        -          {
        -            "const": 256,
        -            "type": "number"
        -          },
        -          {
        -            "const": 512,
        -            "type": "number"
        -          },
        -          {
        -            "const": 1024,
        -            "type": "number"
        -          }
        -        ],
        -        "description": "PNG square pixels."
        -      },
        -      "qr_tracking_url": {
        -        "description": "ASCII tracking URL encoded in the image, including ?s=qr.",
        -        "type": "string"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "short_url": {
        -        "type": "string"
        -      },
        -      "short_url_ascii": {
        -        "type": "string"
        -      },
        -      "state": {
        -        "const": "active",
        -        "type": "string"
        -      },
        -      "status_url": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "id",
        -      "state",
        -      "short_url",
        -      "short_url_ascii",
        -      "qr_tracking_url",
        -      "status_url",
        -      "host_display",
        -      "mime_type",
        -      "pixel_size",
        -      "image_available"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "host_display": {
        -        "description": "Show the user the returned image or image_url. Do not generate, draw, or synthesize a QR code.",
        -        "type": "string"
        -      },
        -      "id": {
        -        "type": "string"
        -      },
        -      "image_available": {
        -        "const": false,
        -        "description": "False for SVG. Hosts do not render an SVG image block. Use the SVG text, resource, or image_url.",
        -        "type": "boolean"
        -      },
        -      "image_url": {
        -        "description": "Short-lived URL for this QR image. Omitted when signing is not configured. Not an API key, OAuth token, or session.",
        -        "type": "string"
        -      },
        -      "image_url_expires_at": {
        -        "description": "ISO-8601 expiry of image_url. Present only together with image_url.",
        -        "type": "string"
        -      },
        -      "mime_type": {
        -        "const": "image/svg+xml",
        -        "description": "image/svg+xml. SVG is not sent as an image block.",
        -        "type": "string"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "pixel_size": {
        -        "description": "Null for SVG.",
        -        "type": "null"
        -      },
        -      "qr_tracking_url": {
        -        "description": "ASCII tracking URL encoded in the image, including ?s=qr.",
        -        "type": "string"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "short_url": {
        -        "type": "string"
        -      },
        -      "short_url_ascii": {
        -        "type": "string"
        -      },
        -      "state": {
        -        "const": "active",
        -        "type": "string"
        -      },
        -      "status_url": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "id",
        -      "state",
        -      "short_url",
        -      "short_url_ascii",
        -      "qr_tracking_url",
        -      "status_url",
        -      "host_display",
        -      "mime_type",
        -      "pixel_size",
        -      "image_available"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "code": {
        -        "type": "string"
        -      },
        -      "error": {
        -        "type": "string"
        -      },
        -      "id": {
        -        "type": "string"
        -      },
        -      "image_available": {
        -        "const": false,
        -        "type": "boolean"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "ok": {
        -        "const": false,
        -        "type": "boolean"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "retryable": {
        -        "type": "boolean"
        -      },
        -      "state": {
        -        "enum": [
        -          "quarantined",
        -          "disabled",
        -          "blocked",
        -          "expired"
        -        ],
        -        "type": "string"
        -      },
        -      "title": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "message",
        -      "type",
        -      "title",
        -      "code",
        -      "retryable"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "host_display": {
        +        "description": "Neutral summary of the returned QR: format, the encoded qr_tracking_url, and image_url availability.",
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "image_available": {
        +        "const": true,
        +        "description": "True only when a PNG image block is included.",
        +        "type": "boolean"
        +      },
        +      "image_url": {
        +        "description": "Short-lived URL for this QR image. Omitted when signing is not configured. Not an API key, OAuth token, or session.",
        +        "type": "string"
        +      },
        +      "image_url_expires_at": {
        +        "description": "ISO-8601 expiry of image_url. Present only together with image_url.",
        +        "type": "string"
        +      },
        +      "mime_type": {
        +        "const": "image/png",
        +        "description": "image/png. A PNG image block is included.",
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "pixel_size": {
        +        "anyOf": [
        +          {
        +            "const": 256,
        +            "type": "number"
        +          },
        +          {
        +            "const": 512,
        +            "type": "number"
        +          },
        +          {
        +            "const": 1024,
        +            "type": "number"
        +          }
        +        ],
        +        "description": "PNG square pixels."
        +      },
        +      "qr_tracking_url": {
        +        "description": "ASCII tracking URL encoded in the image, including ?s=qr.",
        +        "type": "string"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "short_url": {
        +        "type": "string"
        +      },
        +      "short_url_ascii": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "active",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "short_url",
        +      "short_url_ascii",
        +      "qr_tracking_url",
        +      "status_url",
        +      "host_display",
        +      "mime_type",
        +      "pixel_size",
        +      "image_available"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "host_display": {
        +        "description": "Neutral summary of the returned QR: format, the encoded qr_tracking_url, and image_url availability.",
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "image_available": {
        +        "const": false,
        +        "description": "False for SVG. Hosts do not render an SVG image block. Use the SVG text, resource, or image_url.",
        +        "type": "boolean"
        +      },
        +      "image_url": {
        +        "description": "Short-lived URL for this QR image. Omitted when signing is not configured. Not an API key, OAuth token, or session.",
        +        "type": "string"
        +      },
        +      "image_url_expires_at": {
        +        "description": "ISO-8601 expiry of image_url. Present only together with image_url.",
        +        "type": "string"
        +      },
        +      "mime_type": {
        +        "const": "image/svg+xml",
        +        "description": "image/svg+xml. SVG is not sent as an image block.",
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "pixel_size": {
        +        "description": "Null for SVG.",
        +        "type": "null"
        +      },
        +      "qr_tracking_url": {
        +        "description": "ASCII tracking URL encoded in the image, including ?s=qr.",
        +        "type": "string"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "short_url": {
        +        "type": "string"
        +      },
        +      "short_url_ascii": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "active",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "short_url",
        +      "short_url_ascii",
        +      "qr_tracking_url",
        +      "status_url",
        +      "host_display",
        +      "mime_type",
        +      "pixel_size",
        +      "image_available"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "image_available": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "retryable": {
        +        "type": "boolean"
        +      },
        +      "state": {
        +        "enum": [
        +          "quarantined",
        +          "disabled",
        +          "blocked",
        +          "expired"
        +        ],
        +        "type": "string"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "message",
        +      "type",
        +      "title",
        +      "code",
        +      "retryable"
        +    ],
        +    "type": "object"
        +  }
        +]
  6. 1 tool update
    • Changedcreate_qr1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "id": {
        -        "type": "string"
        -      },
        -      "image_available": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "mime_type": {
        -        "description": "image/png or image/svg+xml.",
        -        "enum": [
        -          "image/png",
        -          "image/svg+xml"
        -        ],
        -        "type": "string"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "pixel_size": {
        -        "anyOf": [
        -          {
        -            "maximum": 9007199254740991,
        -            "minimum": -9007199254740991,
        -            "type": "integer"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "PNG square pixels. Null for SVG."
        -      },
        -      "qr_tracking_url": {
        -        "description": "ASCII tracking URL encoded in the image, including ?s=qr.",
        -        "type": "string"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "short_url": {
        -        "type": "string"
        -      },
        -      "short_url_ascii": {
        -        "type": "string"
        -      },
        -      "state": {
        -        "const": "active",
        -        "type": "string"
        -      },
        -      "status_url": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "id",
        -      "state",
        -      "short_url",
        -      "short_url_ascii",
        -      "qr_tracking_url",
        -      "status_url",
        -      "mime_type",
        -      "pixel_size",
        -      "image_available"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "code": {
        -        "type": "string"
        -      },
        -      "error": {
        -        "type": "string"
        -      },
        -      "id": {
        -        "type": "string"
        -      },
        -      "image_available": {
        -        "const": false,
        -        "type": "boolean"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "ok": {
        -        "const": false,
        -        "type": "boolean"
        -      },
        -      "request_id": {
        -        "type": "string"
        -      },
        -      "retryable": {
        -        "type": "boolean"
        -      },
        -      "state": {
        -        "enum": [
        -          "quarantined",
        -          "disabled",
        -          "blocked",
        -          "expired"
        -        ],
        -        "type": "string"
        -      },
        -      "title": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "request_id",
        -      "message",
        -      "type",
        -      "title",
        -      "code",
        -      "retryable"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "host_display": {
        +        "description": "Show the user the returned image or image_url. Do not generate, draw, or synthesize a QR code.",
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "image_available": {
        +        "const": true,
        +        "description": "True only when a PNG image block is included.",
        +        "type": "boolean"
        +      },
        +      "image_url": {
        +        "description": "Short-lived URL for this QR image. Omitted when signing is not configured. Not an API key, OAuth token, or session.",
        +        "type": "string"
        +      },
        +      "image_url_expires_at": {
        +        "description": "ISO-8601 expiry of image_url. Present only together with image_url.",
        +        "type": "string"
        +      },
        +      "mime_type": {
        +        "const": "image/png",
        +        "description": "image/png. A PNG image block is included.",
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "pixel_size": {
        +        "anyOf": [
        +          {
        +            "const": 256,
        +            "type": "number"
        +          },
        +          {
        +            "const": 512,
        +            "type": "number"
        +          },
        +          {
        +            "const": 1024,
        +            "type": "number"
        +          }
        +        ],
        +        "description": "PNG square pixels."
        +      },
        +      "qr_tracking_url": {
        +        "description": "ASCII tracking URL encoded in the image, including ?s=qr.",
        +        "type": "string"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "short_url": {
        +        "type": "string"
        +      },
        +      "short_url_ascii": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "active",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "short_url",
        +      "short_url_ascii",
        +      "qr_tracking_url",
        +      "status_url",
        +      "host_display",
        +      "mime_type",
        +      "pixel_size",
        +      "image_available"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "host_display": {
        +        "description": "Show the user the returned image or image_url. Do not generate, draw, or synthesize a QR code.",
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "image_available": {
        +        "const": false,
        +        "description": "False for SVG. Hosts do not render an SVG image block. Use the SVG text, resource, or image_url.",
        +        "type": "boolean"
        +      },
        +      "image_url": {
        +        "description": "Short-lived URL for this QR image. Omitted when signing is not configured. Not an API key, OAuth token, or session.",
        +        "type": "string"
        +      },
        +      "image_url_expires_at": {
        +        "description": "ISO-8601 expiry of image_url. Present only together with image_url.",
        +        "type": "string"
        +      },
        +      "mime_type": {
        +        "const": "image/svg+xml",
        +        "description": "image/svg+xml. SVG is not sent as an image block.",
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "pixel_size": {
        +        "description": "Null for SVG.",
        +        "type": "null"
        +      },
        +      "qr_tracking_url": {
        +        "description": "ASCII tracking URL encoded in the image, including ?s=qr.",
        +        "type": "string"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "short_url": {
        +        "type": "string"
        +      },
        +      "short_url_ascii": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "active",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "short_url",
        +      "short_url_ascii",
        +      "qr_tracking_url",
        +      "status_url",
        +      "host_display",
        +      "mime_type",
        +      "pixel_size",
        +      "image_available"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "image_available": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "retryable": {
        +        "type": "boolean"
        +      },
        +      "state": {
        +        "enum": [
        +          "quarantined",
        +          "disabled",
        +          "blocked",
        +          "expired"
        +        ],
        +        "type": "string"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "message",
        +      "type",
        +      "title",
        +      "code",
        +      "retryable"
        +    ],
        +    "type": "object"
        +  }
        +]
  7. 6 tool updates
    • Changedbegin_registration4 fields changed
      • removedOutput schema / additionalProperties
        Removed value: -false
      • addedOutput schema / oneOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "expires_at": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "resume_token": {
        +        "type": "string"
        +      },
        +      "signup_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "signup_url",
        +      "expires_at",
        +      "resume_token"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "type": "string"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "retryable": {
        +        "type": "boolean"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "error",
        +      "code",
        +      "message",
        +      "type",
        +      "title",
        +      "retryable"
        +    ],
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties
        Removed value: -{
        -  "code": {
        -    "type": "string"
        -  },
        -  "error": {
        -    "type": "string"
        -  },
        -  "expires_at": {
        -    "type": "string"
        -  },
        -  "message": {
        -    "type": "string"
        -  },
        -  "ok": {
        -    "type": "boolean"
        -  },
        -  "request_id": {
        -    "type": "string"
        -  },
        -  "resume_token": {
        -    "type": "string"
        -  },
        -  "retryable": {
        -    "type": "boolean"
        -  },
        -  "signup_url": {
        -    "type": "string"
        -  },
        -  "title": {
        -    "type": "string"
        -  },
        -  "type": {
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "ok"
        -]
    • Changedcreate_qr4 fields changed
      • removedOutput schema / additionalProperties
        Removed value: -false
      • addedOutput schema / oneOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "image_available": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "mime_type": {
        +        "description": "image/png or image/svg+xml.",
        +        "enum": [
        +          "image/png",
        +          "image/svg+xml"
        +        ],
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "pixel_size": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "PNG square pixels. Null for SVG."
        +      },
        +      "qr_tracking_url": {
        +        "description": "ASCII tracking URL encoded in the image, including ?s=qr.",
        +        "type": "string"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "short_url": {
        +        "type": "string"
        +      },
        +      "short_url_ascii": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "active",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "short_url",
        +      "short_url_ascii",
        +      "qr_tracking_url",
        +      "status_url",
        +      "mime_type",
        +      "pixel_size",
        +      "image_available"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "image_available": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "retryable": {
        +        "type": "boolean"
        +      },
        +      "state": {
        +        "enum": [
        +          "quarantined",
        +          "disabled",
        +          "blocked",
        +          "expired"
        +        ],
        +        "type": "string"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "message",
        +      "type",
        +      "title",
        +      "code",
        +      "retryable"
        +    ],
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties
        Removed value: -{
        -  "code": {
        -    "type": "string"
        -  },
        -  "error": {
        -    "type": "string"
        -  },
        -  "id": {
        -    "type": "string"
        -  },
        -  "image_available": {
        -    "type": "boolean"
        -  },
        -  "message": {
        -    "type": "string"
        -  },
        -  "mime_type": {
        -    "description": "image/png or image/svg+xml.",
        -    "type": "string"
        -  },
        -  "ok": {
        -    "type": "boolean"
        -  },
        -  "pixel_size": {
        -    "anyOf": [
        -      {
        -        "maximum": 9007199254740991,
        -        "minimum": -9007199254740991,
        -        "type": "integer"
        -      },
        -      {
        -        "type": "null"
        -      }
        -    ],
        -    "description": "PNG square pixels. Null for SVG."
        -  },
        -  "qr_tracking_url": {
        -    "description": "ASCII tracking URL encoded in the image, including ?s=qr.",
        -    "type": "string"
        -  },
        -  "request_id": {
        -    "type": "string"
        -  },
        -  "retryable": {
        -    "type": "boolean"
        -  },
        -  "short_url": {
        -    "type": "string"
        -  },
        -  "short_url_ascii": {
        -    "type": "string"
        -  },
        -  "state": {
        -    "type": "string"
        -  },
        -  "status_url": {
        -    "type": "string"
        -  },
        -  "title": {
        -    "type": "string"
        -  },
        -  "type": {
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "ok",
        -  "request_id"
        -]
    • Changedget_link4 fields changed
      • removedOutput schema / additionalProperties
        Removed value: -false
      • addedOutput schema / oneOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "created_at": {
        +        "type": "string"
        +      },
        +      "destination": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "short_url": {
        +        "type": "string"
        +      },
        +      "short_url_ascii": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "active",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "created_at",
        +      "status_url",
        +      "short_url",
        +      "short_url_ascii",
        +      "destination"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "created_at": {
        +        "type": "string"
        +      },
        +      "expired_at": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "enum": [
        +          "quarantined",
        +          "disabled",
        +          "blocked",
        +          "expired"
        +        ],
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "created_at",
        +      "status_url",
        +      "type",
        +      "title",
        +      "code"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "type": "string"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "retryable": {
        +        "type": "boolean"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "error",
        +      "code",
        +      "message",
        +      "type",
        +      "title",
        +      "retryable"
        +    ],
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties
        Removed value: -{
        -  "code": {
        -    "type": "string"
        -  },
        -  "created_at": {
        -    "type": "string"
        -  },
        -  "destination": {
        -    "type": "string"
        -  },
        -  "error": {
        -    "type": "string"
        -  },
        -  "id": {
        -    "type": "string"
        -  },
        -  "message": {
        -    "type": "string"
        -  },
        -  "ok": {
        -    "type": "boolean"
        -  },
        -  "request_id": {
        -    "type": "string"
        -  },
        -  "retryable": {
        -    "type": "boolean"
        -  },
        -  "short_url": {
        -    "type": "string"
        -  },
        -  "short_url_ascii": {
        -    "type": "string"
        -  },
        -  "state": {
        -    "type": "string"
        -  },
        -  "status_url": {
        -    "type": "string"
        -  },
        -  "title": {
        -    "type": "string"
        -  },
        -  "type": {
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "ok",
        -  "request_id"
        -]
    • Changedresolve_short_url4 fields changed
      • removedOutput schema / additionalProperties
        Removed value: -false
      • addedOutput schema / oneOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "created_at": {
        +        "type": "string"
        +      },
        +      "destination": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "short_url": {
        +        "type": "string"
        +      },
        +      "short_url_ascii": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "active",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "created_at",
        +      "status_url",
        +      "short_url",
        +      "short_url_ascii",
        +      "destination"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "created_at": {
        +        "type": "string"
        +      },
        +      "expired_at": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "enum": [
        +          "quarantined",
        +          "disabled",
        +          "blocked",
        +          "expired"
        +        ],
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "created_at",
        +      "status_url",
        +      "type",
        +      "title",
        +      "code"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "type": "string"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "retryable": {
        +        "type": "boolean"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "error",
        +      "code",
        +      "message",
        +      "type",
        +      "title",
        +      "retryable"
        +    ],
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties
        Removed value: -{
        -  "code": {
        -    "type": "string"
        -  },
        -  "created_at": {
        -    "type": "string"
        -  },
        -  "destination": {
        -    "type": "string"
        -  },
        -  "error": {
        -    "type": "string"
        -  },
        -  "id": {
        -    "type": "string"
        -  },
        -  "message": {
        -    "type": "string"
        -  },
        -  "ok": {
        -    "type": "boolean"
        -  },
        -  "request_id": {
        -    "type": "string"
        -  },
        -  "retryable": {
        -    "type": "boolean"
        -  },
        -  "short_url": {
        -    "type": "string"
        -  },
        -  "short_url_ascii": {
        -    "type": "string"
        -  },
        -  "state": {
        -    "type": "string"
        -  },
        -  "status_url": {
        -    "type": "string"
        -  },
        -  "title": {
        -    "type": "string"
        -  },
        -  "type": {
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "ok",
        -  "request_id"
        -]
    • Changedshorten_url4 fields changed
      • removedOutput schema / additionalProperties
        Removed value: -false
      • addedOutput schema / oneOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "created_at": {
        +        "type": "string"
        +      },
        +      "destination": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "qr_tracking_url": {
        +        "type": "string"
        +      },
        +      "qr_url": {
        +        "type": "string"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "short_url": {
        +        "type": "string"
        +      },
        +      "short_url_ascii": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "active",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "short_url",
        +      "short_url_ascii",
        +      "destination",
        +      "qr_tracking_url",
        +      "qr_url",
        +      "created_at",
        +      "status_url"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "created_at": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "const": "LINK_QUARANTINED",
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "state": {
        +        "const": "quarantined",
        +        "type": "string"
        +      },
        +      "status_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "id",
        +      "state",
        +      "created_at",
        +      "status_url",
        +      "error",
        +      "message"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "type": "string"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "resend_path": {
        +        "description": "Where to resend the verification email when verification would raise this account's limits.",
        +        "type": "string"
        +      },
        +      "retryable": {
        +        "type": "boolean"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "error",
        +      "code",
        +      "message",
        +      "type",
        +      "title",
        +      "retryable"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "replay": {},
        +      "request_id": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "replay"
        +    ],
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties
        Removed value: -{
        -  "code": {
        -    "type": "string"
        -  },
        -  "created_at": {
        -    "type": "string"
        -  },
        -  "destination": {
        -    "type": "string"
        -  },
        -  "error": {
        -    "type": "string"
        -  },
        -  "id": {
        -    "type": "string"
        -  },
        -  "message": {
        -    "type": "string"
        -  },
        -  "ok": {
        -    "type": "boolean"
        -  },
        -  "qr_tracking_url": {
        -    "type": "string"
        -  },
        -  "qr_url": {
        -    "type": "string"
        -  },
        -  "request_id": {
        -    "type": "string"
        -  },
        -  "resend_path": {
        -    "description": "Where to resend the verification email when verification would raise this account's limits.",
        -    "type": "string"
        -  },
        -  "retryable": {
        -    "type": "boolean"
        -  },
        -  "short_url": {
        -    "type": "string"
        -  },
        -  "short_url_ascii": {
        -    "type": "string"
        -  },
        -  "state": {
        -    "type": "string"
        -  },
        -  "status_url": {
        -    "type": "string"
        -  },
        -  "title": {
        -    "type": "string"
        -  },
        -  "type": {
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "ok",
        -  "request_id"
        -]
    • Changedshorten_urls4 fields changed
      • removedOutput schema / additionalProperties
        Removed value: -false
      • addedOutput schema / oneOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "batch_id": {
        +        "type": "string"
        +      },
        +      "batch_mode": {
        +        "const": "sync",
        +        "type": "string"
        +      },
        +      "fail_count": {
        +        "type": "number"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "ok_count": {
        +        "type": "number"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "results": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "client_ref": {
        +              "type": "string"
        +            },
        +            "ok": {
        +              "type": "boolean"
        +            },
        +            "problem": {
        +              "additionalProperties": {},
        +              "propertyNames": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            },
        +            "result": {
        +              "additionalProperties": {},
        +              "propertyNames": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            },
        +            "retryable": {
        +              "type": "boolean"
        +            }
        +          },
        +          "required": [
        +            "client_ref",
        +            "ok"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "batch_id",
        +      "batch_mode",
        +      "ok_count",
        +      "fail_count",
        +      "results"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "error": {
        +        "type": "string"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ok": {
        +        "const": false,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      },
        +      "resend_path": {
        +        "description": "Where to resend the verification email when verification would raise this account's limits.",
        +        "type": "string"
        +      },
        +      "retryable": {
        +        "type": "boolean"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id",
        +      "error",
        +      "code",
        +      "message",
        +      "type",
        +      "title",
        +      "retryable"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "request_id": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "request_id"
        +    ],
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties
        Removed value: -{
        -  "batch_id": {
        -    "type": "string"
        -  },
        -  "batch_mode": {
        -    "const": "sync",
        -    "type": "string"
        -  },
        -  "code": {
        -    "type": "string"
        -  },
        -  "error": {
        -    "type": "string"
        -  },
        -  "fail_count": {
        -    "type": "number"
        -  },
        -  "message": {
        -    "type": "string"
        -  },
        -  "ok": {
        -    "type": "boolean"
        -  },
        -  "ok_count": {
        -    "type": "number"
        -  },
        -  "request_id": {
        -    "type": "string"
        -  },
        -  "resend_path": {
        -    "description": "Where to resend the verification email when verification would raise this account's limits.",
        -    "type": "string"
        -  },
        -  "results": {
        -    "items": {
        -      "additionalProperties": {},
        -      "propertyNames": {
        -        "type": "string"
        -      },
        -      "type": "object"
        -    },
        -    "type": "array"
        -  },
        -  "retryable": {
        -    "type": "boolean"
        -  },
        -  "title": {
        -    "type": "string"
        -  },
        -  "type": {
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "ok",
        -  "request_id"
        -]
  8. 5 tool updates
    • Changedbegin_registration2 fields changed
      • addedOutput schema / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / type
        Added value: +{
        +  "type": "string"
        +}
    • Changedcreate_qr10 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "id": "example"
        -  },
        -  {
        -    "short_url": "https://xn--s7y.xn--3ds443g/example"
        -  }
        -]New value: +[
        +  {
        +    "id": "example"
        +  },
        +  {
        +    "short_url": "https://xn--s7y.xn--3ds443g/example"
        +  },
        +  {
        +    "format": "png",
        +    "id": "example",
        +    "size": 512
        +  }
        +]
      • removedInput schema / oneOf
        Removed value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "id": {
        -        "description": "Existing short code. Mutually exclusive with short_url.",
        -        "maxLength": 64,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "id"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "short_url": {
        -        "description": "Existing short URL to tag for QR. Mutually exclusive with id.",
        -        "maxLength": 2048,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "short_url"
        -    ],
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties
        Added value: +{
        +  "format": {
        +    "description": "Image format. Default png. svg only when requested. SVG ignores size.",
        +    "enum": [
        +      "png",
        +      "svg"
        +    ],
        +    "type": "string"
        +  },
        +  "id": {
        +    "description": "Existing short code. Mutually exclusive with short_url.",
        +    "maxLength": 64,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "short_url": {
        +    "description": "Existing short URL to tag for QR. Mutually exclusive with id.",
        +    "maxLength": 2048,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "size": {
        +    "anyOf": [
        +      {
        +        "const": 256,
        +        "type": "number"
        +      },
        +      {
        +        "const": 512,
        +        "type": "number"
        +      },
        +      {
        +        "const": 1024,
        +        "type": "number"
        +      }
        +    ],
        +    "description": "PNG square pixels. Default 512. Allowed: 256, 512, or 1024. Ignored when format is svg."
        +  }
        +}
      • addedOutput schema / properties / mime_type
        Added value: +{
        +  "description": "image/png or image/svg+xml.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / pixel_size
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "PNG square pixels. Null for SVG."
        +}
      • addedOutput schema / properties / qr_tracking_url / description
        Added value: +"ASCII tracking URL encoded in the image, including ?s=qr."
      • addedOutput schema / properties / status_url
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / type
        Added value: +{
        +  "type": "string"
        +}
    • Changedresolve_short_url3 fields changed
      • addedInput schema / additionalProperties
        Added value: +{}
      • removedInput schema / oneOf
        Removed value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "url": {
        -        "description": "Full short URL (Unicode or punycode). Mutually exclusive with code.",
        -        "maxLength": 2048,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "url"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "code": {
        -        "description": "Short code. Mutually exclusive with url.",
        -        "maxLength": 64,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "code"
        -    ],
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties
        Added value: +{
        +  "code": {
        +    "description": "Short code. Mutually exclusive with url.",
        +    "maxLength": 64,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "url": {
        +    "description": "Full short URL (Unicode or punycode). Mutually exclusive with code.",
        +    "maxLength": 2048,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
    • Changedshorten_url4 fields changed
      • addedOutput schema / properties / qr_url
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / resend_path
        Added value: +{
        +  "description": "Where to resend the verification email when verification would raise this account's limits.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / type
        Added value: +{
        +  "type": "string"
        +}
    • Changedshorten_urls3 fields changed
      • addedOutput schema / properties / resend_path
        Added value: +{
        +  "description": "Where to resend the verification email when verification would raise this account's limits.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / type
        Added value: +{
        +  "type": "string"
        +}
  9. 7 tool updates
    • Changedbegin_registration2 fields changed
      • changedInput schema / properties / locale / description
        Previous value: -"Browser signup language. Does not accept email, password, or acceptance."New value: +"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."
      • changedInput schema / properties / locale / enum
        Previous value: -[
        -  "en",
        -  "zh-CN"
        -]New value: +[
        +  "en",
        +  "zh-CN",
        +  "zh-cn",
        +  "zh-Hans",
        +  "zh-hans",
        +  "zh_Hans",
        +  "zh_hans"
        +]
    • Removeddisable_link
    • Removedget_link_analytics
    • Removedget_links
    • Changedshorten_url1 field changed
      • changedInput schema / properties / locale / description
        Previous value: -"Accepted values: en, zh-CN, and zh-cn (the only case fold of zh-CN). EN, ZH-CN, and bare zh are rejected. Omitted or blank defaults to en."New value: +"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."
    • Changedshorten_urls1 field changed
      • changedInput schema / properties / items / items / properties / locale / description
        Previous value: -"Accepted values: en, zh-CN, and zh-cn (the only case fold of zh-CN). EN, ZH-CN, and bare zh are rejected. Omitted or blank defaults to en."New value: +"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."
    • Removedupdate_link
  10. 2 tool updates
    • Changedcreate_qr3 fields changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "id": "example"
        -  },
        -  {
        -    "short_url": "https://example.com/example"
        -  }
        -]New value: +[
        +  {
        +    "id": "example"
        +  },
        +  {
        +    "short_url": "https://xn--s7y.xn--3ds443g/example"
        +  }
        +]
      • addedInput schema / oneOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "description": "Existing short code. Mutually exclusive with short_url.",
        +        "maxLength": 64,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "short_url": {
        +        "description": "Existing short URL to tag for QR. Mutually exclusive with id.",
        +        "maxLength": 2048,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "short_url"
        +    ],
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties
        Removed value: -{
        -  "id": {
        -    "description": "Existing short code",
        -    "maxLength": 64,
        -    "minLength": 1,
        -    "type": "string"
        -  },
        -  "short_url": {
        -    "description": "Existing short URL to tag for QR",
        -    "maxLength": 2048,
        -    "minLength": 1,
        -    "type": "string"
        -  }
        -}
    • Changedresolve_short_url3 fields changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "url": "https://example.com/example"
        -  },
        -  {
        -    "code": "example"
        -  }
        -]New value: +[
        +  {
        +    "url": "https://xn--s7y.xn--3ds443g/example"
        +  },
        +  {
        +    "code": "example"
        +  }
        +]
      • addedInput schema / oneOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "url": {
        +        "description": "Full short URL (Unicode or punycode). Mutually exclusive with code.",
        +        "maxLength": 2048,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "code": {
        +        "description": "Short code. Mutually exclusive with url.",
        +        "maxLength": 64,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "code"
        +    ],
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties
        Removed value: -{
        -  "code": {
        -    "description": "Short code if URL not provided",
        -    "maxLength": 64,
        -    "minLength": 1,
        -    "type": "string"
        -  },
        -  "url": {
        -    "description": "Full short URL (Unicode or punycode)",
        -    "maxLength": 2048,
        -    "minLength": 1,
        -    "type": "string"
        -  }
        -}
  11. 10 tool updates
    • Changedbegin_registration1 field changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "locale": "en"
        +  },
        +  {
        +    "locale": "zh-CN"
        +  }
        +]
    • Changedcreate_qr1 field changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "id": "example"
        +  },
        +  {
        +    "short_url": "https://example.com/example"
        +  }
        +]
    • Changeddisable_link2 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "id": "example"
        +  }
        +]
      • addedInput schema / properties / id / description
        Added value: +"Short code / link id. disable_link is not available yet; this call does not disable the link."
    • Changedget_link1 field changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "id": "example"
        +  }
        +]
    • Changedget_link_analytics2 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "id": "example"
        +  }
        +]
      • addedInput schema / properties / id / description
        Added value: +"Short code / link id. get_link_analytics is not available yet; this call does not return analytics."
    • Changedget_links3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "cursor": "example",
        +    "limit": 20
        +  }
        +]
      • addedInput schema / properties / cursor / description
        Added value: +"Optional page cursor. get_links is not available yet; this call does not list links."
      • addedInput schema / properties / limit / description
        Added value: +"Optional page size, an integer from 1 to 100. get_links is not available yet; this call does not list links."
    • Changedresolve_short_url1 field changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "url": "https://example.com/example"
        +  },
        +  {
        +    "code": "example"
        +  }
        +]
    • Changedshorten_url3 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "alias": "notes",
        +    "idempotency_key": "example-create-1",
        +    "locale": "en",
        +    "title": "Notes",
        +    "url": "https://example.com/notes"
        +  }
        +]
      • addedInput schema / properties / locale / description
        Added value: +"Accepted values: en, zh-CN, and zh-cn (the only case fold of zh-CN). EN, ZH-CN, and bare zh are rejected. Omitted or blank defaults to en."
      • addedInput schema / properties / title / description
        Added value: +"Optional link title, at most 256 characters."
    • Changedshorten_urls4 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "idempotency_key": "example-batch-1",
        +    "items": [
        +      {
        +        "alias": "notes",
        +        "client_ref": "item-1",
        +        "locale": "zh-cn",
        +        "title": "Notes",
        +        "url": "https://example.com/notes"
        +      }
        +    ]
        +  }
        +]
      • addedInput schema / properties / items / description
        Added value: +"Synchronous batch items (1 to 100). Each item creates one short link."
      • addedInput schema / properties / items / items / properties / locale / description
        Added value: +"Accepted values: en, zh-CN, and zh-cn (the only case fold of zh-CN). EN, ZH-CN, and bare zh are rejected. Omitted or blank defaults to en."
      • addedInput schema / properties / items / items / properties / title / description
        Added value: +"Optional link title, at most 256 characters."
    • Changedupdate_link4 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "destination": "https://example.com/notes",
        +    "id": "example",
        +    "title": "Notes"
        +  }
        +]
      • changedInput schema / properties / destination / description
        Previous value: -"Destination HTTPS/HTTP URL to shorten. Required. Do not send longUrl."New value: +"Optional destination URL (lowercase http or https, no surrounding whitespace). update_link is not available yet; this call does not update the link."
      • addedInput schema / properties / id / description
        Added value: +"Short code / link id. update_link is not available yet; this call does not update the link."
      • addedInput schema / properties / title / description
        Added value: +"Optional link title, at most 256 characters. update_link is not available yet; this call does not update the link."
  12. 6 tool updates
    • Addedbegin_registration
    • Changedcreate_qr11 fields changed
      • removedInput schema / properties / format
        Removed value: -{
        -  "description": "Preferred image format (PNG always embedded; SVG via resource link)",
        -  "enum": [
        -    "png",
        -    "svg"
        -  ],
        -  "type": "string"
        -}
      • changedInput schema / properties / id / description
        Previous value: -"Short code of a link you own"New value: +"Existing short code"
      • changedInput schema / properties / short_url / description
        Previous value: -"Owned short URL (Unicode or punycode)"New value: +"Existing short URL to tag for QR"
      • removedInput schema / properties / short_url_ascii
        Removed value: -{
        -  "description": "Owned short URL in punycode form",
        -  "maxLength": 2048,
        -  "minLength": 1,
        -  "type": "string"
        -}
      • removedInput schema / properties / size
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "const": 256,
        -      "type": "number"
        -    },
        -    {
        -      "const": 512,
        -      "type": "number"
        -    },
        -    {
        -      "const": 1024,
        -      "type": "number"
        -    }
        -  ],
        -  "description": "PNG pixel size: 256, 512 (default), or 1024"
        -}
      • removedOutput schema / properties / format
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / image_mime_type
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / qr_image_svg_url
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / qr_image_url
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / size
        Removed value: -{
        -  "type": "number"
        -}
      • removedOutput schema / properties / status_url
        Removed value: -{
        -  "type": "string"
        -}
    • Changeddisable_link17 fields changed
      • removedInput schema / properties / id / description
        Removed value: -"Short code / link id you own"
      • addedOutput schema / properties / code / const
        Added value: +"FEATURE_NOT_AVAILABLE"
      • removedOutput schema / properties / created_at
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / destination
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / error / const
        Added value: +"FEATURE_NOT_AVAILABLE"
      • addedOutput schema / properties / feature
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / ok / const
        Added value: +false
      • addedOutput schema / properties / retryable / const
        Added value: +false
      • removedOutput schema / properties / short_url
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / short_url_ascii
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / state
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / status_url
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / title
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / tool
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / type
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "ok",
        -  "request_id"
        -]New value: +[
        +  "ok",
        +  "error",
        +  "code",
        +  "feature",
        +  "tool",
        +  "message",
        +  "request_id",
        +  "retryable"
        +]
    • Changedget_link_analytics22 fields changed
      • removedInput schema / properties / from
        Removed value: -{
        -  "description": "Window start ISO8601 UTC (default last 7 days)",
        -  "type": "string"
        -}
      • removedInput schema / properties / granularity
        Removed value: -{
        -  "description": "Set day to include daily series",
        -  "type": "string"
        -}
      • removedInput schema / properties / id / description
        Removed value: -"Short code / link id you own"
      • removedInput schema / properties / include
        Removed value: -{
        -  "description": "Set all_traffic to add all_clicks",
        -  "type": "string"
        -}
      • removedInput schema / properties / to
        Removed value: -{
        -  "description": "Window end ISO8601 UTC",
        -  "type": "string"
        -}
      • removedOutput schema / properties / all_clicks
        Removed value: -{
        -  "type": "number"
        -}
      • addedOutput schema / properties / code / const
        Added value: +"FEATURE_NOT_AVAILABLE"
      • removedOutput schema / properties / countries
        Removed value: -{
        -  "items": {
        -    "additionalProperties": {},
        -    "propertyNames": {
        -      "type": "string"
        -    },
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / devices
        Removed value: -{
        -  "items": {
        -    "additionalProperties": {},
        -    "propertyNames": {
        -      "type": "string"
        -    },
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / error / const
        Added value: +"FEATURE_NOT_AVAILABLE"
      • addedOutput schema / properties / feature
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / human_clicks
        Removed value: -{
        -  "type": "number"
        -}
      • removedOutput schema / properties / link_id
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / ok / const
        Added value: +false
      • removedOutput schema / properties / qr_tagged_visits
        Removed value: -{
        -  "type": "number"
        -}
      • removedOutput schema / properties / referrers
        Removed value: -{
        -  "items": {
        -    "additionalProperties": {},
        -    "propertyNames": {
        -      "type": "string"
        -    },
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / retryable / const
        Added value: +false
      • removedOutput schema / properties / series
        Removed value: -{
        -  "items": {
        -    "additionalProperties": {},
        -    "propertyNames": {
        -      "type": "string"
        -    },
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / short_code
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / tool
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / window
        Removed value: -{
        -  "additionalProperties": {},
        -  "propertyNames": {
        -    "type": "string"
        -  },
        -  "type": "object"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "ok",
        -  "request_id"
        -]New value: +[
        +  "ok",
        +  "error",
        +  "code",
        +  "feature",
        +  "tool",
        +  "message",
        +  "request_id",
        +  "retryable"
        +]
    • Changedget_links11 fields changed
      • removedInput schema / properties / cursor / description
        Removed value: -"Pagination cursor from previous next_cursor"
      • removedInput schema / properties / limit / description
        Removed value: -"Page size (1–100, default 50)"
      • addedOutput schema / properties / code / const
        Added value: +"FEATURE_NOT_AVAILABLE"
      • addedOutput schema / properties / error / const
        Added value: +"FEATURE_NOT_AVAILABLE"
      • addedOutput schema / properties / feature
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / items
        Removed value: -{
        -  "items": {
        -    "additionalProperties": {},
        -    "propertyNames": {
        -      "type": "string"
        -    },
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / next_cursor
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • addedOutput schema / properties / ok / const
        Added value: +false
      • addedOutput schema / properties / retryable / const
        Added value: +false
      • addedOutput schema / properties / tool
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "ok",
        -  "request_id"
        -]New value: +[
        +  "ok",
        +  "error",
        +  "code",
        +  "feature",
        +  "tool",
        +  "message",
        +  "request_id",
        +  "retryable"
        +]
    • Changedupdate_link18 fields changed
      • changedInput schema / properties / destination / description
        Previous value: -"New destination URL"New value: +"Destination HTTPS/HTTP URL to shorten. Required. Do not send longUrl."
      • removedInput schema / properties / id / description
        Removed value: -"Short code / link id you own"
      • addedOutput schema / properties / code / const
        Added value: +"FEATURE_NOT_AVAILABLE"
      • removedOutput schema / properties / created_at
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / destination
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / error / const
        Added value: +"FEATURE_NOT_AVAILABLE"
      • addedOutput schema / properties / feature
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / ok / const
        Added value: +false
      • addedOutput schema / properties / retryable / const
        Added value: +false
      • removedOutput schema / properties / short_url
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / short_url_ascii
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / state
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / status_url
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / title
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / tool
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / type
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "ok",
        -  "request_id"
        -]New value: +[
        +  "ok",
        +  "error",
        +  "code",
        +  "feature",
        +  "tool",
        +  "message",
        +  "request_id",
        +  "retryable"
        +]
  13. 1 tool update
    • Removedcreate_account
  14. 5 tool updates
    • Changedcreate_qr11 fields changed
      • addedInput schema / properties / format
        Added value: +{
        +  "description": "Preferred image format (PNG always embedded; SVG via resource link)",
        +  "enum": [
        +    "png",
        +    "svg"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / id / description
        Previous value: -"Existing short code"New value: +"Short code of a link you own"
      • changedInput schema / properties / short_url / description
        Previous value: -"Existing short URL to tag for QR"New value: +"Owned short URL (Unicode or punycode)"
      • addedInput schema / properties / short_url_ascii
        Added value: +{
        +  "description": "Owned short URL in punycode form",
        +  "maxLength": 2048,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / size
        Added value: +{
        +  "anyOf": [
        +    {
        +      "const": 256,
        +      "type": "number"
        +    },
        +    {
        +      "const": 512,
        +      "type": "number"
        +    },
        +    {
        +      "const": 1024,
        +      "type": "number"
        +    }
        +  ],
        +  "description": "PNG pixel size: 256, 512 (default), or 1024"
        +}
      • addedOutput schema / properties / format
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / image_mime_type
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / qr_image_svg_url
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / qr_image_url
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / size
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / status_url
        Added value: +{
        +  "type": "string"
        +}
    • Changeddisable_link17 fields changed
      • addedInput schema / properties / id / description
        Added value: +"Short code / link id you own"
      • removedOutput schema / properties / code / const
        Removed value: -"FEATURE_NOT_AVAILABLE"
      • addedOutput schema / properties / created_at
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / destination
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / error / const
        Removed value: -"FEATURE_NOT_AVAILABLE"
      • removedOutput schema / properties / feature
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / ok / const
        Removed value: -false
      • removedOutput schema / properties / retryable / const
        Removed value: -false
      • addedOutput schema / properties / short_url
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / short_url_ascii
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / state
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / status_url
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / tool
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / type
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "ok",
        -  "error",
        -  "code",
        -  "feature",
        -  "tool",
        -  "message",
        -  "request_id",
        -  "retryable"
        -]New value: +[
        +  "ok",
        +  "request_id"
        +]
    • Changedget_link_analytics22 fields changed
      • addedInput schema / properties / from
        Added value: +{
        +  "description": "Window start ISO8601 UTC (default last 7 days)",
        +  "type": "string"
        +}
      • addedInput schema / properties / granularity
        Added value: +{
        +  "description": "Set day to include daily series",
        +  "type": "string"
        +}
      • addedInput schema / properties / id / description
        Added value: +"Short code / link id you own"
      • addedInput schema / properties / include
        Added value: +{
        +  "description": "Set all_traffic to add all_clicks",
        +  "type": "string"
        +}
      • addedInput schema / properties / to
        Added value: +{
        +  "description": "Window end ISO8601 UTC",
        +  "type": "string"
        +}
      • addedOutput schema / properties / all_clicks
        Added value: +{
        +  "type": "number"
        +}
      • removedOutput schema / properties / code / const
        Removed value: -"FEATURE_NOT_AVAILABLE"
      • addedOutput schema / properties / countries
        Added value: +{
        +  "items": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / devices
        Added value: +{
        +  "items": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / error / const
        Removed value: -"FEATURE_NOT_AVAILABLE"
      • removedOutput schema / properties / feature
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / human_clicks
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / link_id
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / ok / const
        Removed value: -false
      • addedOutput schema / properties / qr_tagged_visits
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / referrers
        Added value: +{
        +  "items": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / retryable / const
        Removed value: -false
      • addedOutput schema / properties / series
        Added value: +{
        +  "items": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / short_code
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / tool
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / window
        Added value: +{
        +  "additionalProperties": {},
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "ok",
        -  "error",
        -  "code",
        -  "feature",
        -  "tool",
        -  "message",
        -  "request_id",
        -  "retryable"
        -]New value: +[
        +  "ok",
        +  "request_id"
        +]
    • Changedget_links11 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from previous next_cursor"
      • addedInput schema / properties / limit / description
        Added value: +"Page size (1–100, default 50)"
      • removedOutput schema / properties / code / const
        Removed value: -"FEATURE_NOT_AVAILABLE"
      • removedOutput schema / properties / error / const
        Removed value: -"FEATURE_NOT_AVAILABLE"
      • removedOutput schema / properties / feature
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / items
        Added value: +{
        +  "items": {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / next_cursor
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • removedOutput schema / properties / ok / const
        Removed value: -false
      • removedOutput schema / properties / retryable / const
        Removed value: -false
      • removedOutput schema / properties / tool
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "ok",
        -  "error",
        -  "code",
        -  "feature",
        -  "tool",
        -  "message",
        -  "request_id",
        -  "retryable"
        -]New value: +[
        +  "ok",
        +  "request_id"
        +]
    • Changedupdate_link18 fields changed
      • changedInput schema / properties / destination / description
        Previous value: -"Destination HTTPS/HTTP URL to shorten. Required. Do not send longUrl."New value: +"New destination URL"
      • addedInput schema / properties / id / description
        Added value: +"Short code / link id you own"
      • removedOutput schema / properties / code / const
        Removed value: -"FEATURE_NOT_AVAILABLE"
      • addedOutput schema / properties / created_at
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / destination
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / error / const
        Removed value: -"FEATURE_NOT_AVAILABLE"
      • removedOutput schema / properties / feature
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / ok / const
        Removed value: -false
      • removedOutput schema / properties / retryable / const
        Removed value: -false
      • addedOutput schema / properties / short_url
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / short_url_ascii
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / state
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / status_url
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / tool
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / type
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "ok",
        -  "error",
        -  "code",
        -  "feature",
        -  "tool",
        -  "message",
        -  "request_id",
        -  "retryable"
        -]New value: +[
        +  "ok",
        +  "request_id"
        +]

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Generate styled QR codes, manage dynamic short links with click analytics, and publish micro-landing pages via AI agents.
    19
    57 npm
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Dynamic QR code platform for AI agents. Create, customize, and track QR codes without regenerating images. 37 tools covering 11 QR types (URL, vCard, WiFi, event…).
    37
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to create, update, organize, and delete short links; render styled QR codes; route visitors by device or country; and read click and scan statistics. Agents can also manage groups and custom domains while changing destinations without breaking printed QR codes or shared short URLs.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources