MCP serverio.github.yschimke/compose-preview
Browse, inspect and render Jetpack Compose Material 3 and Wear component catalogs.
Overview
Score?
UNRATED 0.143
of what a free look can see, on 2 looks
Looks
4
last 15 hr ago
Tools
65
changed 15 hr ago
More info
URL
preview.coo.ee/mcp
streamable-http
Says it is
compose-preview-catalog 3.98.0
protocol 2025-06-18
In the record since
3 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.143 · highest on record 0.8561
Toolsfrom sha256:d43ecd93f9…6395be · +0 −0 15 hr ago
| Tool | Schema |
|---|---|
| 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, |
input · output |
| catalog_get_preview_data Fetch the merged accessibility or annotation product for a preview. This lane requires live grant scope. |
input · output |
| 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 collaps |
input · output |
| 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) r |
input · output |
| 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 |
input · output |
| 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 w |
input · output |
| catalog_list_data_products List the structured data-product kinds of one catalog, optionally one preview. Name the catalog with 'catalog' (ids from catalog_list_projects) or a preview 'uri'. |
input · output |
| 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 |
input · output |
| 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) t |
input · output |
| 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'. |
input · output |
| 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 |
input · output |
| 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 exp |
input · output |
| get-documentation-for-story Storybook-MCP-compatible preview metadata lookup. |
input · output |
| list-all-documentation Storybook-MCP-compatible alias that lists every preview as a story. |
input · output |
| 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, sinc |
input · output |
| preview-stories Storybook-MCP-compatible rendering of one or more story ids. Requires live scope. |
input · output |
| 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 |
input · output |
| status Report readiness and the aggregate catalog set. |
input · output |
| 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, whic |
input · output |
| 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 rep |
input · output |
| ui_builder_archive_branch Close a branch without merging it: it stays readable and listed, and can no longer be edited or merged. Needs write access to the parent, or to have made the branch. |
input · output |
| ui_builder_await_comments Wait for the discussion to move past `afterSequence` and return it, rather than polling for it. Returns as soon as anybody — a designer in the browser or another agent — posts, res |
input · output |
| ui_builder_await_decision Wait for somebody to approve or reject a design, rather than asking again whether they have. Returns as soon as a decision lands after `afterSequence` — by default only a person's |
input · output |
| 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 co |
input · output |
| ui_builder_branch_design Fork a design at a revision into a **branch** to explore an alternative, or to change it without trampling somebody editing it live. A branch is a design with its own id: edit it w |
input · output |
| ui_builder_check_design Check a design before you show it to anybody — one call instead of validate, view and an accessibility pass. Runs `schema` (document shape), `catalog` (the pinned catalog's validat |
input · output |
| ui_builder_compare_branches Put a design's alternatives side by side in one call: the parent's head and each open branch (or the `branchIds` named) rendered into ONE picture — a short-lived signed https link, |
input · output |
| ui_builder_compare_reference Measure a design against its reference overlay (attach one with ui_builder_set_reference). Returns what the picture is against the frame and whether a pixel comparison means anythi |
input · output |
| 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 |
input · output |
| ui_builder_delete_design Delete a design you own, with its history, access list, overlay and discussion. Only the owner may — not an editor, not a viewer, and not anybody merely holding a write grant on th |
input · output |
| 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 t |
input · output |
| ui_builder_diff_designs Compare two designs, or two retained revisions of one: nodes added, removed and moved, and properties, modifiers and other fields changed, each with its node id and path (`root/slo |
input · output |
| 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 t |
input · output |
| ui_builder_find_design_for_pr From a pull request back to the design(s) it implements: every design you can read whose implementation record or links name `pr`, with the implementation status and revision. Then |
input · output |
| ui_builder_fork_design Make a new design from one revision of another — yours to edit, owned by you, with its parent recorded: the fork's `forkedFrom` (design, revision, document digest) and the parent's |
input · output |
| 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 catal |
input · output |
| 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 discusse |
input · output |
| ui_builder_implementation_status Everything the code side needs to implement a design, in one call: the revision, its links (issue, reference, PR, thread), the implementation PR with its status and whether its pre |
input · output |
| ui_builder_list_branches A design's branches, newest first: each one's id, name, owner, status (open, merged, archived), fork revision, head revision and the number of commands a merge would replay; for a |
input · output |
| 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` he |
input · output |
| 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. `s |
input · output |
| ui_builder_list_designs List the UI-builder designs on this server, newest first, with the cursor to continue. |
input · output |
| ui_builder_list_revisions A design's retained revisions, newest first: each one's number, who made it, when, the operation that produced it (`setProperty ×2, insertNode`, `undo`, `restored r3`) and its docu |
input · output |
| ui_builder_merge_branch Replay a branch's edits onto its parent's current revision through the same reducer every edit goes through — all or nothing. The reply reports every command: `applied` with the re |
input · output |
| 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 |
input · output |
| 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> op |
input · output |
| ui_builder_pick_branch Ask the person which alternative (open branch) of a design to keep, and return their choice. In ChatGPT or Codex it is a thumbnail picker, one option per branch; with plain form el |
input · output |
| 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 |
input · output |
| 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 CatalogUpgrade |
input · output |
| 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 |
input · output |
| 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, wh |
input · output |
| ui_builder_record_decision Record a review verdict — `approve` or `reject` — on one revision of a design, with an optional note. Kept beside the design, like comments: it never moves the revision. Recorded a |
input · output |
| 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 mu |
input · output |
| ui_builder_render_design_matrix See one design on several devices in ONE picture: a contact sheet with a captioned cell per device × theme × font scale, plus each cell's device, size and box on the sheet. Nothing |
input · output |
| ui_builder_render_native Compile a design and render it with real Compose on this host, rather than in the browser's Wasm canvas — the way to see what a design looks like on Android. Returns the first fram |
input · output |
| 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 |
input · output |
| 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. |
input · output |
| ui_builder_restore_revision Make a retained revision the design's current content again, **forward**: it is committed as a new revision and nothing after it is lost, so a restore is undone by restoring again. |
input · output |
| ui_builder_search_components Find catalog components by name, role or trait (case-insensitive substring), e.g. `TextField`, `Button`, `Card`. Returns the same summary as ui_builder_list_catalogs (id, role, tra |
input · output |
| ui_builder_set_implementation Record the pull request that implements a design: its URL, its `status` (draft, open, merged, closed), the design `revision` it implements, and — once you have compared the PR's re |
input · output |
| 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 a |
input · output |
| ui_builder_set_reference Attach the picture a design is being built against — a Figma frame, a screenshot of a shipped screen, a mock — as its reference overlay, or `clear` it. The same overlay the browser |
input · output |
| 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` |
input · output |
| 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 |
input · output |
| ui_builder_view See a design the way a person in the editor sees it: a PNG of the canvas with the overlays drawn on — the `selection` outline, the `reference` picture when one is attached, the dis |
input · output |
Verify it yourself
npx teppi-check https://preview.coo.ee/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M3V0RYAKHQYCW2BFC4A0R3GT