Skip to main content
Glama

Compose Preview Catalogs

ui_builder_set_links

Say what a design is for. Replaces the whole record: send every link you want kept, and omit one to clear it — so read ui_builder_get_links first if you are adding to what is already there. issue, reference, pr and thread are absolute http or https URLs, at most 2 KB each; previous is a design id on this host, not a URL. Anything else is refused with the reason. Sending an empty record clears it. Record the pr when you open one for a design you built here: it is what lets the next session, and the person who filed the issue, find one from the other.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
prNoThe pull request that implemented it.
issueNoThe tracker issue this design is for.
tokenNoA grant token from poll_access, when you cannot set the X-Compose-Preview-Token header yourself — an MCP client fixes its headers at connect time, so this is how a token approved during this session is used in it. Prefer the header where you control it.
threadNoA permalink to a discussion held elsewhere, such as a chat thread. It does not replace this server's comments for a server-homed design: keep that discussion on the design.
designIdYes
previousNoThe design id on this host that this one continues.
referenceNoThe frame in the design tool it reproduces.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses destructive replace semantics, that omitting a field clears it, that an empty record clears everything, that invalid input is refused with a reason, a 2 KB size cap per URL, and that `previous` is a host-scoped design id rather than a URL. These are exactly the behavioral traits structured data cannot convey.

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?

Every sentence carries distinct, decision-relevant information and the replace/clear constraint is front-loaded. It is dense and somewhat run-on with em-dashes, but there is no filler to cut.

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?

For a 7-parameter, annotation-free mutation with an output schema, the description covers replacement semantics, validation, field formats, and the read-before-write workflow. It stops short of stating permission/auth requirements, which is the main remaining gap.

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

Parameters4/5

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

Schema coverage is 86%, so the baseline is 3, but the description adds real meaning the terse schema fields lack: http/https URL format, the 2 KB per-field limit, and the fact that `previous` is a local design id rather than a URL. It does not address `designId` or the auth `token`, leaving a small gap.

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?

The description states precisely what the tool does to the link record ("Replaces the whole record") and enumerates the link kinds it manages (issue, reference, pr, thread, previous). It cleanly separates itself from the sibling read tool ui_builder_get_links, so an agent can tell the write from the read without opening a schema.

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

Usage Guidelines5/5

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

It names the alternative explicitly ("read ui_builder_get_links first if you are adding to what is already there") with the condition that selects it, and adds a second directive to record the `pr` when opening a PR for a design built here. Usage is contextualized rather than implied.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.