86trust / 100

Compose Preview Catalogs

by preview.coo.ee in Other

MCP serverPassing, checked 6 h ago

Browse, inspect and render Jetpack Compose Material 3 and Wear component catalogs.

https://preview.coo.ee/mcp
Tools
70
open to any client
Uptime
100%
last 30 days
Response time
130 ms
159 ms slowest 5%
Last check
Passed
6 h ago, next in 1 min

Scan it nowHow to connect

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed

How to connect

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "compose-preview-catalogs": {
      "type": "http",
      "url": "https://preview.coo.ee/mcp"
    }
  }
}

70 tools

  • request_access

    Ask a human for access to this server. Returns an approveUrl and a userCode: show BOTH to the person you are working with, ask them to open the link and check that the code on the page matches, then call poll_access. When the client supports URL elicitation, call poll_access…

  • poll_access

    Collect the outcome of a request_access, proving possession of its deviceSecret. It HOLDS THE CALL OPEN and answers the moment the human decides — one call instead of a dozen, since each poll here costs a whole round trip through you. It waits 8 seconds by default; pass…

  • status

    Report readiness and the aggregate catalog set.

  • catalog_list_projects

    List every remote catalog with its stable id and preview count. Call this first: catalog_list_previews and catalog_list_data_products take one of these ids as 'catalog'.

  • catalog_library

    Open the hosted preview catalog browser app. With no arguments it lists every catalog with its preview count only; pass projectId to list one catalog's previews. To find previews without the app, call catalog_list_projects, then catalog_list_previews with a catalog id. Also…

  • ui_builder_open

    Open the UI Builder's design list: pick a design to see it as the editor draws it. Takes no arguments. Also opens from the ChatGPT/Codex sidebar, and a deep link to /design/<id> opens one design.

  • catalog_list_previews

    List the Compose previews and published metadata of one hosted catalog. 'catalog' is required (ids from catalog_list_projects). Pass 'query' (a component name such as EdgeButton) to narrow by id or label; results are paged (100 by default, 'offset'/'limit' for more). This server…

  • catalog_render_preview

    Render one preview. Like local compose-ai-tools, the default semantics observation is token-frugal; request observe=png for pixels, observe=svg for the compose/figma-svg vector export as SVG source, or observe=scroll-png / observe=scroll-svg for the full-page capture of a…

  • catalog_render_matrix

    Render one preview across the cross-product of the given override axes in a single call, returning a hash/size observation per cell (observe=png adds the pixels). Prefer this over a catalog_render_preview per combination: the cells share one catalog lease and are reported…

  • catalog_list_devices

    List the `@Preview(device = ...)` ids this server's render lane recognises, with each one's dp size and density. The `device` override takes one of these ids; an unrecognised name renders the default frame rather than failing, so check here instead of guessing.

  • catalog_diff_semantics

    Compare two previews' semantics by testTag: which tags are only in one side, which moved, and which changed occupancy count. Identity is the authored testTag, not a positional ref, so a tag that stops resolving is reported rather than silently retargeted at different pixels…

  • catalog_history_list

    The render timeline for one preview: which versions of its rendered bytes exist, when each appeared, and whether the preview is unstable (re-renders differently on every publish) rather than genuinely changing. Where this server holds the timeline it is returned inline; where…

  • catalog_history_diff

    Compare two of a preview's recorded renders. Defaults to the two newest — did the last publish move this preview? A metadata comparison: the timeline's versions are already collapsed distinct renders, so whether the bytes changed is answered without fetching either image…

  • catalog_history_read

    Fetch one historical render's pixels through this server, by `commit` or `blob` (a prefix is enough). Use when an agent cannot reach the delivery branch itself, or wants the bytes rather than the timeline.

  • ui_builder_list_catalogs

    List the component catalogs a UI-builder design can pin to. Start here: a design's `catalogPin` must name a revision this server actually serves, and each catalog's `catalogPin` here is exactly that. By default a summary of what authoring needs, a few KB rather than the whole…

  • ui_builder_search_components

    Find catalog components by id, display name, Compose symbol, role or trait, e.g. `TextField`, `text field`, `OutlinedTextField`, `Button`, `Card`. Case, spaces, hyphens, underscores, slashes and camelCase are ignored, and the components the query names come first: an exact name…

  • ui_builder_list_designs

    List the UI-builder designs on this server, newest first, with the cursor to continue.

  • ui_builder_get_design

    Read one design: its whole document — nodes, slots, properties, modifiers, state variables and catalog pin — plus the revision to quote as `baseRevision` when editing it. The catalog the design pins is left out unless `includeCatalog` is true: it is the same for every design on…

  • ui_builder_preview_catalog_recovery

    Dry-run recovery of a design whose stored catalog pin no longer resolves. The server selects the exact currently served pin for the same catalog system and returns a CatalogUpgradePreviewV1 with changes, issues and the hashes required by a later `upgradeCatalog` mutation through…

  • ui_builder_await_design

    Wait for somebody else to change a design and return what they changed, rather than asking again whether they have. Returns the moment a designer in the browser or another agent commits an edit, as the same update frame the browser's own live socket receives; returns a…

  • ui_builder_create_design

    Create a design, either from a whole `document` you supply or by copying an existing design named by `fromDesignId`. Copying is usually right: a document's `catalogPin` must match a catalog revision this server serves, and a copy carries one that does. A `document` whose `home`…

  • ui_builder_apply

    Apply design mutations — insertNode, setProperty, deleteNode, moveNode and the rest of DesignMutationV1 — as one operation. `baseRevision` is the revision you read; the outcome reports conflicts or rejected edits. This is how an agent adds a scaffold, fills its slots and sets…

  • ui_builder_move_design_home

    Move a design's canonical home between this server and a repository checkout. This changes real authoritative state: quote the exact `baseRevision` and current `sourceHome` from ui_builder_get_design, provide a stable `operationId`, and name the new `targetHome`. The old server…

  • ui_builder_replace_design_document

    Replace one stored design from a complete DesignDocumentV1 copy — the authoritative save-back and re-import operation. The document must name the same design and the same canonical home you read from ui_builder_get_design; `baseRevision` must still be current. The runtime…

  • ui_builder_export

    Export a design. `compose` returns the Kotlin the generator writes, or — when the design holds something it cannot express — diagnostics naming each reason. This is the same gate the browser's code pane shows, so an agent and a designer get the same answer about the same design.

  • ui_builder_validate

    Check a design without saving it: a whole `document`, a stored design by `designId`, or `operations` against a stored design exactly as ui_builder_apply would apply them. Runs the same checks the real call does — document shape, catalog pin, the catalog's own validation, the…

  • ui_builder_put_asset

    Put a picture behind an `assetKey`, so an `asset/image` node naming that key draws it instead of a placeholder. Send the PNG, JPEG, GIF or WebP bytes base64-encoded in `imageBase64`; the server stores them by content digest and pins {mediaType, contentDigest, source: uploaded}…

  • ui_builder_design_access

    Read who can open a design: its owner, and every actor it has been shared with, each with the role and the actions that grant carries. Only the owner may ask — this is the answer to "who else is in here" and to "what is the id I must name when sharing".

  • ui_builder_share_design

    Share a design with somebody else, or take that sharing back. `actorId` is the other party's actor id as this server spells it — `github:<login>` for a signed-in person, `operator` for the token holder, `agent:<fingerprint>` for another agent's grant; ui_builder_design_access…

  • ui_builder_get_links

    Read what a design is **for**: the `issue` it was drawn for, the `reference` frame in the design tool it reproduces, the `pr` that implemented it, the `thread` it is being discussed in, and the `previous` design it continues. Start a session on somebody else's design here — it…

  • 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…

  • ui_builder_rename_design

    Give a design a new title. The title is the one thing about a design nothing else could change: it is set at creation, shown in every listing and the editor, and not part of any mutation. Anybody who may write the design may rename it. The revision does not move — a title is not…

  • ui_builder_delete_design

    Delete a design: it moves to the trash with its history, access list, overlay and discussion, and is gone from every listing and tool until ui_builder_restore_design brings it back, which works until `restorableUntilEpochMillis` in the reply (a day). After that it is purged for…

  • ui_builder_list_trash

    The designs in the trash that you could restore — ones you deleted, or ones you own — most recently deleted first, each with who deleted it and its `restorableUntilEpochMillis`. Use it to undo a ui_builder_delete_design you regret, or to check what a cleanup removed. Takes no…

  • ui_builder_restore_design

    Bring a deleted design back out of the trash exactly as it was: the same revision, history, access list, overlay and discussion. Allowed to whoever could have deleted it, until its `restorableUntilEpochMillis`; after that it is not found. The reply is the design's listing entry.

  • ui_builder_list_comments

    Read the discussion on a design: every thread, where each is pinned — a markup stroke, a design node, or a point on the frame — whether it is resolved, and every reply under it. `sequence` rises on each change and is the cursor to quote to ui_builder_await_comments. Comments are…

  • ui_builder_post_comment

    Say something on a design — a reply into `threadId`, or a new thread when it is omitted. Pin a new thread with `markId` (a stroke on the reference overlay), `nodeId` (a node in the design), or `x`/`y` in frame fractions, so the person reading it can see what you meant. The…

  • ui_builder_resolve_comment_thread

    Close a comment thread once it is answered, or reopen one by passing `resolved: false`. The resolution is attributed to you and is reversible.

  • ui_builder_acknowledge_comment

    Say that you have read a comment thread — which is **not** the same as resolving it. Resolving claims the question is settled; acknowledging claims only that you have seen it, which is the honest thing to say while you are still working on what it asked for. Omit `threadId` to…

  • ui_builder_react_to_comment

    React to one comment with an emoji, or take the reaction back with `on: false`. The lightest thing you can say: 👀 on a comment you have just picked up, 👍 on a fix somebody made, where a reply would be noise in a thread a person has to read. `commentId` is the `id` of a comment…

Security scan

No findings

We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTime
6 h agoPassed200109 ms
16 h agoPassed200167 ms
25 h agoPassed200151 ms
35 h agoPassed200139 ms
45 h agoPassed200130 ms
Show 3 older checks
2 days agoPassed200124 ms
3 days agoPassed200159 ms
3 days agoPassed200127 ms