UiChemy AI Website Creator
Server Details
Build a WordPress website with AI from a brief, edit colours, fonts and copy, publish a live preview, and export to Elementor or Gutenberg. OAuth sign-in with a free UiChemy account.
- Status
- Healthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 95 tools
The tool set contains many closely related pairs and clusters, such as set_button_design vs. set_button_role, set_badge_style vs. set_badge_design, set_icon vs. set_icon_style vs. set_icon_color, and find_templates vs. search_layouts vs. list_templates. Descriptions work hard to distinguish scope (site-wide vs. per-element, layout search vs. filter), but with 95 tools an agent must read very carefully to avoid misselection.
Nearly every tool uses the uichemy_ prefix and snake_case, making the set readable and predictable. A few names break the verb_noun pattern (uichemy_whoami, uichemy_batch, uichemy_validate, uichemy_template_slots), but these are minor deviations rather than a mixed convention.
95 tools is far beyond any reasonable scope and is an extreme mismatch for a single MCP server. Even for a complex website builder, this count creates massive cognitive load and makes coherent selection difficult.
The surface covers a very broad lifecycle: projects, pages, sections, blogs, media, styles, variants, publishing, exports, code generation, and validation. There are minor gaps such as no obvious standalone update-post operation, but agents can work around most missing pieces via existing tools.
Available Tools
95 toolsuichemy_add_blogADestructiveInspect
Give a project a blog: a listing page, an article page per post, the four archive pages, and the posts themselves. THE ARTICLE PAGES SHARE ONE SECTION LIST, and that is not a shortcut — slot tokens belong to the layout, so per-post copy could not live in them. Each post's title, byline, date and read time come from the post data written here, and the canvas paints them onto the page that belongs to that post. At most three article pages: the canvas matches a post to a page by the page's NAME ("Blog Detail Page", "… 2", "… 3"), and there is no fourth name it knows. Extra posts still appear on the listing. THE ARCHIVES COME TOO, because the pages already built point at them: an article's tag row links to a tag archive, its byline to an author archive, and the listing's search to a results page. Search Results, Author, Category and Tag Featured are built under the names the app's own generator uses, so a blog built here and one generated in the app are the same blog. Pass archives: false for the two-page blog this tool used to make. What this does NOT do: the WordPress export builds its posts from the backend's own blog collection, which only the app's blog generator writes. Posts written here are the site's canvas and listing; the export will still generate its own.
| Name | Required | Description | Default |
|---|---|---|---|
| posts | Yes | ||
| layouts | No | Layout per section folder — { "blog": "layout-x3", "post-content": 2, "post-featured-area": "website3" }. Anything omitted takes the folder's first layout. | |
| archives | No | Build the four archive pages — Search Results, Author, Category, Tag Featured. Default true, which is what the app generates. An existing page of the same name is left alone. | |
| projectId | Yes | ||
| categories | No | ||
| listingPage | No | What the listing page is called. Default "Blog". An existing page of that name is used. | |
| articleSections | No | Section folders for every article page, in order. Defaults to the standard article template. Must include post-featured-area and post-content — they are what the canvas paints the post into — and may carry only single-post sections beside them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=true) already signal a mutating tool, and the description adds genuinely useful behavior beyond them: the three-article-page cap and name-matching rule, that existing same-named pages are reused rather than clobbered, and how the canvas paints post data. It does not cover permissions or what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the body is a dense wall of prose with defensive asides ("that is not a shortcut") and heavy all-caps emphasis that could be trimmed. Sizing is defensible for a structural tool, yet several clauses do more explaining than instructing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-page creation tool with no output schema and 7 params, it discloses the important structural constraints (page naming, article cap, archive set, export caveat). The gaps are the layouts/categories params and any indication of what the call yields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 57% schema coverage, the description does real work: it defines the archives flag's default and effect, states articleSections must include post-featured-area and post-content, and ties post title/byline/date/read time to fields. layouts and categories semantics are still left largely to the schema, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: "Give a project a blog," then enumerates exactly what it produces (listing page, article page per post, four archives, the posts). This is clearly distinguishable from siblings like uichemy_add_page or uichemy_add_section, which each build a single primitive rather than a whole blog structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete alternative mode ("Pass archives: false for the two-page blog this tool used to make") and an explicit exclusion (the WordPress export builds posts from the backend collection, not from what this writes). Clear when-to-use and one when-not, though it never names a sibling tool as the alternative path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_add_pageADestructiveInspect
OVERWRITES copy: slot tokens belong to the LAYOUT, so text for a layout already used elsewhere in the project replaces that copy there too. Refuses a page name that already exists. Add a whole page to a project — the sitemap node, its sections, their layouts and their copy. Build a real page, not an outline: navbar first and footer last, and 5 to 8 sections between them. Call uichemy_template_slots for every layout first and fill EVERY text slot, or the section renders its own tokens on the page. File it with category: a policy under Legal, a blog post under Blog, a 404 under Site Extras. Omitted, the name is read, and only a name that can mean one thing is claimed. A page NAMED as a blog page is held to the blog section rule: a listing takes navbar, blog, newsletter, footer; a detail page must include post-featured-area and post-content, and takes only the single-post sections beside them.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | What the page is called in the sitemap. | |
| category | No | ||
| sections | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, but the description goes further by explaining exactly what is destroyed and why — slot tokens belong to the layout, so copy is overwritten on other pages sharing that layout. It also discloses the duplicate-name refusal and the fallback-token rendering consequence, which annotations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the most dangerous behavior (the OVERWRITES warning) before anything else, which is the right ordering. It is dense and long, but nearly every clause carries an actionable rule; a small amount of restructuring could reduce the wall-of-text feel.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive multi-parameter creation tool with no output schema, it covers behavior, prerequisites, and naming/category rules thoroughly. It never states what the call returns (page id? node reference?) or how failures other than duplicate names surface, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 25% schema coverage, the description compensates well for `category` by mapping enum values to real filing decisions and explaining the omitted-category inference rule. It also constrains `sections` composition (navbar/footer placement, section count) and implies the required template-slots lookup, though it says nothing about `projectId` or the `text`/`images` object shapes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add a whole page to a project — the sitemap node, its sections, their layouts and their copy') and implicitly distinguishes itself from uichemy_add_section and uichemy_add_blog by scoping to a whole page. An agent can tell what this creates without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit prerequisites ('Call uichemy_template_slots for every layout first and fill EVERY text slot'), composition rules (navbar first, footer last, 5-8 sections), category routing (policy→Legal, blog post→Blog, 404→Site Extras), and a named constraint ('Refuses a page name that already exists').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_add_sectionADestructiveInspect
OVERWRITES copy when text is passed: slot tokens belong to the LAYOUT, so text for a layout already used elsewhere in the project replaces that copy there too. Add a section to a page at a position. Both documents are updated together — the sitemap node that says the page HAS a section there, and the variant map that says what renders in it. Updating one alone is how 'add a pricing section' silently repeats the hero. Fill its slots: call uichemy_template_slots and pass text, or the section renders its own tokens. BLOG PAGES ARE CONSTRAINED. A blog listing page takes navbar, blog, newsletter, footer; a blog detail page takes those plus the single-post sections. A hero, a pricing table or an FAQ on one is refused, not added.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | A section folder from uichemy_list_section_kinds — hero, pricing, faq… | |
| text | No | ||
| index | No | Where to put it, 1-based, as uichemy_get_page lists them — 1 puts it first. Omitted = at the end. | |
| images | No | ||
| variant | Yes | A layout id from uichemy_list_templates — "layout-y3", or a number for numbered folders (3 and website3 are the same layout). | |
| pageName | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds materially more: that `text` OVERWRITES copy shared by the layout elsewhere in the project, that both the sitemap node and variant map are mutated together, and that blog pages enforce a hard section whitelist with refusal behavior. These are non-obvious, high-consequence details an agent could not infer from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but nearly every sentence adds non-redundant information (overwrite semantics, dual-document write, slot-filling alternative, blog constraints). The structure is the weak point: it opens with a caveat about `text` rather than the core action, so the purpose statement lands second, and the all-caps blog block is louder than its relative importance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, 7-parameter, nested-object mutation tool with no output schema, the description covers the important behavioral risks: shared-layout copy overwrite, dual-document consistency, and page-type restrictions. It does not say what the call returns or whether the new section's identifier/index is reported back, which an agent planning follow-up edits would want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 43% across 7 parameters, so the description carries a real compensation burden. It adds meaningful semantics for `text` (slot tokens belong to the layout, overwrite scope) and implies `index` via 'at a position', but says nothing about `images`, `projectId`, or `pageName`, and does not clarify the required `variant` layout-id resolution beyond what the schema already states. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Add a section to a page at a position.' It also distinguishes itself from the failure mode of editing only one document, which implicitly separates it from sibling tools like replace_section or set_section_style. However, the actual purpose statement is buried in the second sentence behind a caveat about copy overwriting, so the agent has to read past a warning to learn what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to sibling tools ('call uichemy_template_slots and pass `text`'), names the data sources for the required fields (uichemy_list_section_kinds, uichemy_list_templates), and provides a concrete when-not clause: BLOG PAGES ARE CONSTRAINED, with the exact allowed section set per blog page type and the note that disallowed sections are 'refused, not added.' That is about as complete as usage guidance gets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_batchADestructiveInspect
Many edits in ONE write. Copy, pictures, video clips, per-element text styles, button roles, badge designs, image display settings, section backgrounds and icons, in the order you give them. Prefer this to calling the single tools thirty times: each of those is its own revision and its own chance to collide with somebody editing the project in the browser, and a collision halfway through leaves fourteen changes applied and no record of where it stopped. ALL OR NOTHING — one invalid op refuses the whole batch and nothing is written, with every problem named so the batch can be fixed and sent again. link points a button or text link (by its text_… / icon_url_… key, from uichemy_list_links) at an href, the same as uichemy_set_link.
| Name | Required | Description | Default |
|---|---|---|---|
| ops | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds substantial behavior beyond them: ALL-OR-NOTHING semantics, that a single invalid op refuses the whole batch and writes nothing, that all problems are named so the batch can be resent, that ops execute in the order given, and the concurrency hazard with someone editing in the browser. This is exactly the extra context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core claim and the op inventory before the rationale; every sentence carries information (collision risk, atomicity, error reporting, link semantics). The half-applied 'fourteen changes' illustration is vivid but slightly longer than needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-variant union schema with no output schema, the description covers the critical contract an agent needs: ordering, atomic validation, error reporting, and one worked op example. It is thin on per-op field guidance (icon, iconColor, sectionSurface, textStyle) and on projectId, which leaves some calling risk unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema description coverage is 0% (projectId and ops carry no descriptions), so the description must compensate and it only partly does: it explains execution ordering and details the `link` op (key sourced from uichemy_list_links, href semantics identical to uichemy_set_link). It never mentions projectId, the 200-op cap, or how the remaining ten op variants map to the listed edit categories, leaving gaps the schema alone does not fill.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource ('Many edits in ONE write') and then enumerates exactly which edit classes the batch accepts (copy, pictures, videos, text styles, button roles, badge designs, image display, section backgrounds/icons). This lets an agent distinguish it from the ~30 sibling set_* tools it supersedes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes the agent: 'Prefer this to calling the single tools thirty times,' naming the alternative and giving the reason (each single call is its own revision and risks colliding with a browser editor, leaving a half-applied state). The atomicity note reinforces when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_check_layoutsARead-onlyInspect
Check a SHORTLIST of layouts against each other before building with them. Slot tokens are project-wide, and 114 of the library's tokens are owned by more than one layout — so two layouts that share one render the same words in both places, on different pages, and neither section looks wrong on its own. Call this while choosing sections, not after: uichemy_create_project writes the sitemap and the variants together and there is no tool that re-layouts a built project, so a clash found afterwards costs the build. Takes no project and changes nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| layouts | Yes | [{ "kind": "services", "variant": "layout-y16" }, { "kind": "contact-form", "variant": "layout-y20" }] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; the description reinforces this ('takes no project and changes nothing') and adds valuable domain context about project-wide slot token sharing. However, it doesn't describe the return shape (the clash report an agent would act on), leaving that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and timing; each sentence carries information (mechanism, timing, consequence). Slightly long but no dead weight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and the description explains when/why to call but not what the check returns (e.g., a list of clashing tokens/layout pairs). Minor gap, but the decision-critical context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema includes a concrete example of the layouts array with kind/variant. The description adds no parameter-specific syntax or semantics beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check) with resource (layouts), scope (a SHORTLIST, cross-checked against each other), and the actual defect it detects (shared slot tokens). Clearly distinct from siblings like search_layouts or create_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit timing guidance ('Call this while choosing sections, not after'), names the sibling create_project as the point after which it's too late, and explains the cost of skipping it ('no tool that re-layouts a built project').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_check_responsiveBRead-onlyInspect
What a page does at a phone, a tablet and a desktop width: copy that overflows its slot, layouts that cannot fit their columns, fixed widths wider than the screen, text that cannot wrap, colours that do not read on the surface they are painted on, and slots still showing their own token. THIS IS NOT A SCREENSHOT and does not claim to be. It reads the two things that decide whether a section breaks narrow — the template's own Tailwind responsive classes, which are resolvable exactly at a given width, and the length of the copy against the length the layout was designed for. A rendered picture would need a second renderer, and a second renderer that disagrees with the canvas is a new bug rather than a check.
| Name | Required | Description | Default |
|---|---|---|---|
| pageName | No | One page. Omitted, every page is checked. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/destructiveHint already declaring safety, the description adds real mechanism: it reads the template's own Tailwind responsive classes (deterministic at a fixed width) and copy length against design intent, rather than rendering pixels. Stating what it explicitly does not do ('THIS IS NOT A SCREENSHOT') is useful behavioural context. It stops short of describing output shape or any execution caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The failure-mode list is front-loaded and informative, but the back half drifts into rhetorical justification about renderers that is longer than the task requires, and the capitalized disclaimer sits mid-paragraph rather than leading. Appropriately sized overall, but several sentences do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only check with no output schema and only two parameters, the description conveys what is inspected and the non-rendering nature well. It omits how findings are returned or scoped (per page vs whole project), leaving the agent without a full picture of the result it will receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: pageName is documented in the schema, but projectId carries no description. The description mentions 'slots' and 'a page' only in passing and adds no meaning about the projectId/pageName parameters, so it does not compensate for the documented gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates concrete failure modes it detects (copy overflow, unfittable columns, oversized fixed widths, non-wrapping text, unreadable colours, unresolved slot tokens) at phone/tablet/desktop widths, so the resource and scope are clear. It also explicitly distinguishes itself from a screenshot/render check. It never states the verb+'resource' crisply up front, relying on the reader to infer that this is a read-only responsive audit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It contrasts itself with the 'second renderer' approach and disclaims being a screenshot, which implies when it is preferred over visual capture. However it never gives a use-this-when instruction, and it fails to differentiate from the very similar sibling uichemy_check_layouts, which an agent would need to choose between.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_clear_icon_overrideBDestructiveInspect
Put one icon back to whatever the template ships. Safe for either key scheme — removing is what resolves a fighting pair, not what causes one.
| Name | Required | Description | Default |
|---|---|---|---|
| iconId | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this readOnly=false and destructive=true, so the safety profile is known; the description adds genuinely non-derived context – that the call restores the template default and that it behaves the same under either key scheme, and that removal resolves rather than creates override conflicts. The word 'Safe' sits slightly awkwardly against destructiveHint=true, but it is a claim about idempotence/conflict resolution, not a contradiction. Gaps remain on no-op behavior when no override exists and on reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action front-loaded and no filler. Slightly idiosyncratic phrasing ('whatever the template ships', 'fighting pair') costs a little precision but does not pad the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a small two-parameter mutation with no output schema, the description covers the effect but omits the practical details an agent needs: parameter formats, behavior when no override is present, and what a successful response indicates. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are required and schema description coverage is 0%, so the description carries the full burden. It conveys only that a single icon is targeted ('one icon'), hinting at iconId, and vaguely gestures at key-scheme variants. It says nothing about projectId, its requiredness, or the expected format of iconId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action on a specific resource: putting an icon back to the template default, i.e. clearing an override. That distinguishes it reasonably well from set_icon/set_icon_color, though it never names a sibling explicitly or uses the word 'override' (the noun in the tool name and in uichemy_list_icon_overrides).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence implies the scenario (resolving a 'fighting pair' of overrides) but gives no explicit when-to-use rule, no prerequisite such as listing overrides first to obtain iconId, and no statement of what to use when the goal is to change rather than clear an icon.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_clear_text_styleBDestructiveInspect
Put one element back to the global scale — alignment, size, colour and tag all released.
| Name | Required | Description | Default |
|---|---|---|---|
| textKey | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true; the description adds real value beyond that by spelling out what is destroyed — alignment, size, colour and tag overrides are released back to global. It stops short of stating irreversibility or permission requirements, but the annotation already carries the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight clause, front-loaded with the action ('Put one element back to the global scale') followed by the released properties. No filler; only minor loss is the em-dash list being slightly terse on ordering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with annotation coverage, the description adequately conveys effect but leaves the two required parameters entirely undocumented and offers no prerequisite or permission context. Complete enough to understand intent, not enough to call it safely without the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and both parameters (projectId, textKey) are required, yet the description never mentions either. 'One element' loosely hints at textKey but projectId and the identifier format are completely unspecified, so the description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a clear action (put one element back to the global scale) and enumerates exactly which properties are released (alignment, size, colour, tag). This makes the reset semantics distinguishable from a plain style-setter, though it never names the relevant sibling (uichemy_set_text_style).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: reverting an element to global-scale styling tells the agent roughly when to reach for it, but there is no explicit when/when-not guidance and no named alternative such as set_text_style for applying instead of clearing overrides.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_create_canvasAInspect
Do what the editor's "Continue to design" does on the first canvas open, with no AI call: derive the colour roles, pin the section style (the canvas would otherwise roll one at random) and write the band colour every section gets from it, write the export's section list, and mark every page built. Safe to call again — it writes only what changed. Says what, if anything, the canvas would still do on its first open (a random layout for a section with none, or the AI copy fill for a project with no copy).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| sectionStyle | No | Used only when the project has no section style yet. Default subtle_01. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only tell the agent this is a non-read, non-destructive, closed-world write. The description goes well beyond: it is idempotent, writes only what changed, makes no AI call, and reports residual first-open behavior (random layout / AI copy fill). That is exactly the extra behavioral context annotations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is valuable but packed into long, comma-chained sentences, and it opens with a reference to an editor button rather than a direct verb+resource. It is dense enough that the core action is not front-loaded as sharply as it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does carry return-value duty and does state what it would report back ('Says what, if anything, the canvas would still do'). Combined with the mutation effects and idempotency, an agent has enough to call it correctly, though the ambiguity of the 'Continue to design' reference is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; sectionStyle is already documented in the schema as applying only when no section style exists. The description reinforces this ('pin the section style... would otherwise roll one at random') but adds no syntax or format detail, and projectId remains undocumented. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete effects: derive colour roles, pin section style, write band colour and export section list, mark pages built. That is a specific, multi-step operation an agent can distinguish from siblings like set_palette or set_section_style. It never names a sibling explicitly, so it does not reach the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the trigger ('on the first canvas open'), asserts idempotency ('Safe to call again — it writes only what changed'), and notes the no-AI-call condition. It does not compare against the individual setters (set_section_style, set_palette) an agent might otherwise choose, so guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_create_projectAInspect
Creates a new UiChemy project from layouts in the UiChemy template library, using the copy, fonts and colours passed in. It is the only way to start a project here: every site is built from the template library, and HTML, CSS or JavaScript written elsewhere is not imported. For library sections as code in the user's own React app, uichemy_get_page_code is the tool. Each page is a list of sections, normally a navbar first and a footer last; a home page usually has 8 to 12 sections (hero, social proof, features, how it works, testimonials, pricing or offer, FAQ, CTA) and an inner page 5 to 8. Text and image slots belong to the layout: uichemy_template_slots lists them with their maximum length and what each one is for. A slot left empty shows its token on the page, an image slot left empty keeps the template's stock photo, and copy over a slot's limit makes the whole call fail. Two sections using the same layout share the same copy. Image slots take urls, so a generated picture needs to be uploaded first. category files a page in the sitemap (Blog, Legal, Site Extras...); pages without one are filed under Core Pages. brief fills the project's Scope tab and is required, as are headingFont, bodyFont and all five palette colours. The result names any slot left unfilled and any layout that was not found.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The project's name. When the user has not named the business, a fitting name works; it can be renamed later in UiChemy. | |
| brief | No | The project's Scope — what the business is, who it serves and what the site must do. This fills the Scope tab; without it the project opens with an empty brief. | |
| pages | Yes | Pages in order; the first is the home page. | |
| palette | Yes | All five slots, as #RGB or #RRGGBB. | |
| bodyFont | Yes | A Google Font family name for body text. | |
| headingFont | Yes | A Google Font family name for headings. | |
| createCanvas | No | Also do what the editor's "Continue to design" does on first open — colour roles, the section style's band colours, the export section list, every page marked built — with no AI call, so the project needs no editor visit. Same as uichemy_create_canvas afterwards. | |
| sectionStyle | No | With createCanvas: the section style to pin (default subtle_01). Without one the canvas rolls a random one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give the generic safety profile (not read-only, not destructive, closed-world). The description adds genuinely non-obvious behavior: empty text slots render their token, empty image slots keep stock photos, copy over a limit fails the entire call, duplicate layouts share copy, image slots require URLs so generated images must be uploaded first, and the response names unfilled slots and missing layouts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the 'only way to start a project' constraint before details. It is long and dense, but nearly every sentence carries distinct operational information rather than filler; a small amount could still be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, deeply nested mutation with no output schema, the description covers the essentials an agent needs: required inputs, the slot/failure contract, global-section sharing, and what the result reports. Nothing critical is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description still adds meaning: `category` files a page in the sitemap and falls back to Core Pages, `brief` fills the Scope tab and is required, and headingFont/bodyFont/five palette colours are mandatory. It does not restate every nested SEO field, which is reasonable given the schema documents them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Creates a new UiChemy project') plus the source ('from layouts in the UiChemy template library'). It also draws a hard boundary: 'It is the only way to start a project here' and explicitly names the sibling it is not (uichemy_get_page_code).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('the only way to start a project'), when-not ('HTML, CSS or JavaScript written elsewhere is not imported'), and routes the alternative case to uichemy_get_page_code. It also points to uichemy_template_slots for discovering the slot contract before calling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_create_variantAInspect
Add a colour variant to a project — another whole palette the user can switch to, without touching the one currently applied. Omit colors to seed it from one of the built-in concepts.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Defaults to the next free "Variant N". | |
| colors | No | Concept colours, keyed by index. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the write/non-destructive profile is partly covered. The description adds value by specifying the non-destructive scope ('without touching the one currently applied') and the colors-omission seeding behavior. It is silent, however, on whether the new variant becomes active or what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with zero filler, and the core action plus the key non-destructive guarantee are front-loaded ahead of the optional-parameter hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and one required parameter, the definition is adequate but leaves gaps: it does not say what the call returns (e.g. a variant identifier needed for later delete/list calls) or whether the created variant is immediately selectable, which an agent would reasonably want to know before chaining tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: the schema documents the `name` default and describes `colors` only vaguely as 'Concept colours, keyed by index', leaving `projectId` undocumented. The description compensates meaningfully for the weakest part of the schema by explaining that omitting `colors` seeds a built-in concept, which is not inferable from the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('Add a colour variant to a project') and clarifies the resulting artifact as 'another whole palette the user can switch to'. It implicitly distinguishes itself from set_palette by the phrase 'without touching the one currently applied', though it never names that sibling outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Omit `colors` to seed it from one of the built-in concepts' clause gives one concrete usage condition, but there is no guidance on when to create a variant versus switching the active palette (set_palette) or its contrast with delete_variant/list_variants. The when-to-use context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_crop_imageADestructiveInspect
Crop a picture to a shape, and/or shrink it — as a NEW file, which is then put in the slot. This is the change that survives: sections export to static HTML, so a crop that exists only as CSS on our own markup ships uncropped. focus decides which part survives the crop — the focal point — and maxWidth is how you stop a 4000px photograph being downloaded by every visitor to fill a 400px card. The original is untouched and still in storage, so a second crop can start from it rather than compounding.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The picture to crop. Defaults to whatever is in the slot now. | |
| slot | Yes | The image slot to put the result in. | |
| focus | No | Which part to keep. Default centre. | |
| ratio | No | ||
| maxWidth | No | Longest edge in pixels. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnlyHint=false, destructiveHint=true, openWorldHint=true), so the bar is lower, yet the description still adds real context: it creates a new file, the source is left untouched in storage, and repeated crops do not compound. It does not address permissions or rate limits, but the behavioral picture is stronger than annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and result before justifying it. Four sentences is on the longer side, and the export-survival sentence is more rationale than instruction, but each sentence carries useful information rather than restating the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must convey return behavior; it does so by stating the result is a new file placed in the slot. Combined with the originality note and parameter rationale, an agent has enough to invoke it correctly, though explicit sibling routing is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 67% schema coverage, the schema documents most parameters, but the description adds genuine meaning for the ambiguous ones: `focus` as the surviving focal point and `maxWidth` as the guard against a 4000px photo filling a 400px card. It leaves `ratio` and `url` to the schema, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Crop a picture to a shape, and/or shrink it'), immediately clarifying the result is a NEW file placed in the slot. This distinguishes it from siblings like edit_image_masked, set_image_display, and upload_image, which do not produce a cropped derivative file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains why cropping matters ('sections export to static HTML, so a crop that exists only as CSS ships uncropped'), which implies when to use it. However, it never names or excludes alternatives (e.g. edit_image_masked, set_image_display) or states prerequisites, leaving the agent to infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_delete_projectADestructiveInspect
Delete a whole project — its sitemap, its sections and everything written into them. IRREVERSIBLE, and there is no restore point in this product: nothing here can read an earlier revision back, so a delete is the end of that project. confirmName must match the project's own name exactly. That is not ceremony — project ids are opaque, a list read a minute ago may name a different project now, and the name is the only thing the caller and the user can both see. Superseded projects otherwise accumulate with no way to remove them except the browser.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| confirmName | Yes | The project's name, exactly as uichemy_list_projects shows it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the destructiveHint=true / readOnlyHint=false annotations: it states the operation is IRREVERSIBLE, that there is no restore point in the product, that nothing can read an earlier revision back, and it explains the opaque-id hazard that motivates confirmName. That is exactly the operational context an agent needs before a destructive call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the destructive fact and scope before any rationale, and every sentence carries content. The confirmName rationale runs long ('That is not ceremony —') and the closing sentence on superseded projects is a slight detour, so it is efficient rather than tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no output schema and only two params, it covers irreversibility, confirmation requirements, and the failure mode of stale ids. It does not mention auth/permission requirements or whether a project must be empty or unpublished before deletion, which would round it out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (projectId is undocumented). The description compensates for confirmName by specifying exact-match semantics and the reason it exists — ids are opaque and a stale list may point at a different project — which is meaningfully more than the schema's 'exactly as uichemy_list_projects shows it.' projectId is left to inference, keeping it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete) and resource (a whole project) and immediately scopes the blast radius: 'its sitemap, its sections and everything written into them.' This is clearly distinguishable from the sibling partial removals (remove_page, remove_section, delete_variant), which delete narrower things.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a use case in the closing sentence — superseded projects accumulate with no way to remove them except the browser — which tells the agent when this tool is the right lever. It does not explicitly name an alternative or state exclusions (e.g. it never says 'use remove_section for partial cleanup'), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_delete_variantBDestructiveInspect
Remove a colour variant. It comes out of the list the picker walks as well as the store — a variant left in one and not the other either cannot be chosen or points at nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| variantId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, so the safety profile is covered. The description adds genuine behavioral context beyond that: the variant is removed from both the picker's list and the store, and it explains the referential-integrity consequence of a partial removal. It stops short of stating irreversibility or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in a short first sentence. The second sentence is a bit wordy and em-dash-heavy, but it earns its place by conveying the dual-list side effect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter delete with annotations covering destructiveness and no output schema, the description covers purpose and side effects adequately. However, with both required parameters fully undocumented at 0% schema coverage, it leaves a meaningful gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and neither projectId nor variantId is described in the schema. The description only names the resource generically ('a colour variant'), so it does not compensate for the missing parameter documentation or clarify the project/variant relationship.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Remove) and resource (colour variant), clearly distinct from siblings like create_variant and list_variants. It does not name an alternative sibling explicitly, but the delete semantics are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives or exclusions. The agent is not told when deleting a variant is appropriate versus, say, editing or reordering it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_describe_sectionsADestructiveInspect
Write the sitemap note on one or more of a page's sections — the text the sitemap panel shows under the section name. It is documentation, not copy: NOTHING on the rendered page changes, and a note is not a way to put words on a section (that is uichemy_set_text). Say what the section is FOR and what is in it, from what the section actually holds — read uichemy_get_page first and describe the copy that is there. A note restating the section name is worse than none, because it reads as done. Every note on a page goes in ONE call: this writes the sitemap, and one write is one revision to lose a race with.
| Name | Required | Description | Default |
|---|---|---|---|
| pageName | Yes | ||
| projectId | Yes | ||
| descriptions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, and the description adds real context beyond them: the write touches only the sitemap, nothing on the rendered page changes, an empty string clears a note, and each write is one revision subject to race conditions. Minor gap: it never states permission/auth requirements or what happens to notes on sections not included in the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the set_text disambiguation are front-loaded in the first sentence. Guidance is dense and each sentence carries a rule, though the editorial aside about notes restating section names is longer than needed and could be trimmed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation with no output schema, the description covers the workflow (read before writing), the semantics (documentation vs. copy), the batching constraint, and the race-condition risk. Only the parameter-level details of index/projectId resolution are left entirely to the schema, which is a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is 0% (pageName, projectId, descriptions have no top-level descriptions), so the description has to compensate, and it does partially: it explains the array is a batch that must be sent as one write, and gives content guidance for the description field (say what the section is FOR, derived from uichemy_get_page). It does not explain the index parameter's 1-based ordering, which only the nested schema covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — writing the sitemap note on a page's sections — and immediately disambiguates the concept: it is documentation shown in the sitemap panel, not rendered copy. It explicitly names the sibling it is not (uichemy_set_text), so an agent can separate the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-not (do not use this to put words on a section — that is uichemy_set_text), a prerequisite workflow (read uichemy_get_page first and describe the copy that is actually there), and a batching rule (every note on a page goes in ONE call). Alternatives and conditions are stated, not inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_duplicate_pageAInspect
Copy a page — its sections, their layouts, and their backgrounds, overlays and padding. THE COPY SHOWS THE SAME WORDS, and cannot be made to show different ones by copying: slot tokens belong to the LAYOUT, so both pages read from the same slots. To make the copy say something else, give its sections different layouts with uichemy_replace_section and then write copy into those.
| Name | Required | Description | Default |
|---|---|---|---|
| newName | Yes | What the copy is called. | |
| pageName | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, openWorldHint=false, destructiveHint=false, so the safety profile is coarse. The description adds a genuinely non-obvious behavioral trait: slot tokens belong to the LAYOUT, so the duplicate shares text sourcing with the original. It does not address whether the copy is independent for styling, where it lands, or name-collision handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded verb and copied scope, followed by the caveat and the remediation path — a sensible information ordering with no filler sentences. The all-caps emphasis on 'THE COPY SHOWS THE SAME WORDS' is slightly shouty but conveys the key constraint efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations detail and no output schema, the description covers what gets copied and the slot-token caveat well, but omits where the new page is placed, whether pageName must already exist, and what the caller receives back. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are required and only newName has a schema description ('What the copy is called.'), giving 33% coverage. The description says nothing about projectId, pageName, or the naming parameter, so it does not compensate for the sparse schema — an agent gets no help on which project/page the copy is taken from.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Copy a page') and enumerates the copied scope (sections, layouts, backgrounds, overlays, padding), which is far more informative than the title alone. It does not explicitly name or contrast with the nearby sibling uichemy_duplicate_section, so an agent must infer the page-vs-section distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It not only states the operation but explains the critical usage consequence — the copy reads from the same slot tokens, so duplicating will not let you show different words — and routes the agent to the correct alternative workflow: use uichemy_replace_section to swap layouts, then write copy into those. That is explicit when-to-use-this and what-to-do-instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_duplicate_sectionAInspect
Copy a section, with everything it is wearing, and put the copy after it. uichemy_duplicate_page exists; this is the same move one level down. The copy carries the original's background, overlay and padding — a duplicate that took only its layout would come back unpainted, which reads as the wrong section. The COPY is not copied and must not be: slot tokens belong to the layout, so the duplicate renders the same words by construction, and a second copy of them would be a second source of truth for one piece of text.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | 1-based, as uichemy_get_page lists them. | |
| pageName | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (write, not destructive, closed-world). The description adds substantive non-obvious behavior: the copy carries background, overlay and padding, and slot-token text is deliberately NOT duplicated (shared by construction). This explains preservation vs. sharing well; it omits auth/prerequisite and side effects on the source.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, and each sentence carries a distinct point (routing, what's preserved, why text isn't copied). The prose is stylized and somewhat longer than strictly needed ('everything it is wearing', the unpainted-section aside), costing a little efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-trivial write operation with no output schema and only 33% param coverage, the description covers the mechanics and the text-sharing nuance but leaves the two undocumented required params and any return value (e.g., an identifier for the new section) unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 33%: only 'index' is documented (1-based, per get_page). The description never mentions projectId or pageName, which are the undocumented required params, so it does not compensate for the coverage gap. 'Put the copy after it' only loosely gestures at placement and adds little over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Copy a section... put the copy after it') plus the placement rule (after the original). It explicitly routes to the sibling ('uichemy_duplicate_page exists; this is the same move one level down'), so an agent can distinguish it from duplicate_page and other section tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly positions itself relative to uichemy_duplicate_page as the section-level analog, giving the agent a strong selection cue. It does not, however, contrast against section-creation siblings like add_section or insert_saved_section, nor state when duplicating is preferable to adding fresh.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_edit_image_maskedADestructiveInspect
Edit part of a picture with AI and put the result in its slot — the Image panel's Generative Fill (fill: paint something new into the area, described by prompt), Magic Eraser (erase: remove what is in the area) and Expand (expand: extend the picture outward). Runs the SAME code as the editor and costs the same UiChemy credits (refunded down to what the model actually used); it needs the plan the editor's smart editing needs. The area is region — a rectangle in fractions of the picture (0-1, from the top-left) — or maskUrl, a PNG the size of the picture that is transparent where it should change. The result is a NEW file; the original stays in storage. Same write as uichemy_crop_image.
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | ||
| url | No | The picture to edit. Defaults to what is in the slot now. | |
| slot | Yes | The image slot to edit and put the result in. | |
| prompt | No | What should appear in the area. Required for `fill`. | |
| region | No | ||
| maskUrl | No | ||
| projectId | Yes | ||
| expandPercent | No | How far `expand` extends each edge. Default 25. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnly=false, destructive=true, openWorld=true; the description goes well beyond that by disclosing credit cost and the refund-to-actual-usage behavior, the plan requirement, and the crucial output semantics (result is a NEW file, the original stays in storage). That mutation/side-effect profile is exactly what an agent needs before invoking a destructive write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a dense paragraph rather than skimmable lines, but the ordering is sound — action, modes, cost, mask inputs, output — and each clause carries information (mode semantics, defaulting, coordinate convention). Slightly long, but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, nested-object, mutation tool with no output schema, the description covers the essentials: coordinate conventions, mask semantics, cost/refund, plan prerequisite, and where the result lands. It does not address failure modes (e.g., missing plan, model rejection) or timeout/latency expectations, which would complete the picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema description coverage, the description usefully compensates: it explains `region` as a rectangle in 0–1 fractions measured from the top-left, defines `maskUrl` as a same-size PNG transparent where change should occur, and clarifies `prompt` is required for `fill`. `url`, `slot`, and `expandPercent` are left to the schema, so it is good but not fully compensating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (edit part of a picture with AI) and enumerates the three concrete modes it supports — `fill`, `erase`, `expand` — each with a one-line semantic gloss. An agent can immediately distinguish this from uichemy_crop_image (a mechanical crop) and from uichemy_upload_image or uichemy_set_image_display without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the conditions for each mode (paint something new, remove the area, extend outward) and the prerequisite plan, which is genuine when-to-use guidance. What it lacks is an explicit exclusion or routing statement — it says 'same write as uichemy_crop_image' but never tells the agent when to pick crop_image versus this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_embed_urlUiChemy sign-in linkCInspect
Internal: the UiChemy panel's one-time sign-in url.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false implies the call creates state, and the description's 'one-time' detail usefully explains why (a single-use token). It does not contradict the annotations. Still missing: auth requirements, whether the token is consumed on use, or what the caller receives.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the 'Internal' qualifier is front-loaded. It is efficient, though arguably too terse to be useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose only parameter is undocumented and that has no output schema, the description should say what 'to' is and what comes back. Marking it internal helps scope expectations but does not fill the gaps an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the required 'to' parameter, so the description carries the full burden — yet it never explains what 'to' means (presumably a redirect target) or its expected format. The one parameter an agent must supply is left completely opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a sign-in URL for the UiChemy panel and flags it as 'Internal', which separates it somewhat from siblings like uichemy_site_admin_login. However it is a noun phrase with no verb — it never says it generates, returns, or embeds the URL, so the actual operation is only inferrable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Internal' is the only usage signal, and it is not actionable: it does not say when an agent should call this, nor how it differs from uichemy_site_admin_login or uichemy_open_preview. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_find_templatesARead-onlyInspect
Find layouts of one kind by what they ARE — column count, background, the media they carry, how much copy they want. 849 layouts named layout-x6 are 849 coin flips otherwise, and picking blind means trying one and replacing it. Every filter given must match (AND, not OR): asking for a two-column hero with a photo means both, or the whole folder comes back with the matches buried in it.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| format | No | card-grid, single-quote or carousel. Labelled on 27 layouts. | |
| motion | No | static, subtle, animated, slider. | |
| columns | No | 1, 2, 3, or "asymmetric". | |
| density | No | dense, balanced or airy. SPARSE — labelled on 63 of 798 layouts. | |
| heroType | No | hero only — full-bleed-image or video-background. Labelled on 13 layouts. | |
| mediaType | No | photo, icon, video, none — matches if the layout carries it. | |
| background | No | plain, pattern, gradient, image. | |
| textVolume | No | minimal, moderate, heavy. | |
| withThumbnails | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, non-destructive, closed-world operation. The description adds meaningful behavioral detail beyond that: every supplied filter is ANDed, not ORed, and mixing conditions can bury the matches, which directly affects invocation strategy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and then explains why the filters matter. The coin-flip framing is somewhat colorful but supports the usage rationale; overall it is efficient, though slightly longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 10 parameters and no output schema, so the description could do more to explain what is returned and how results are shaped. It covers the filtering model well enough, but leaves gaps around the required kind parameter and the result format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 80%, so the detailed parameter meanings are mostly carried by the schema. The description still adds value by grouping the filter parameters conceptually and clarifying the AND matching rule, which is not captured by the individual schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: finding layouts of one kind using attribute filters such as columns, background, media, and copy volume. It distinguishes the tool conceptually from a blind listing, but it does not explicitly name or contrast with sibling tools such as uichemy_list_templates or uichemy_search_layouts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies when to use the tool by warning that picking blindly among 849 generically named layouts is a coin flip. However, it does not explicitly say when to use this instead of alternatives like uichemy_list_templates or uichemy_search_layouts, nor does it state exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_get_blogARead-onlyInspect
The posts this project has — title, byline, date, category, read time — and which article page each one lands on. Call it before changing a post: the post number, not the title, is what identifies it.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds genuine value the annotations cannot: the exact fields returned and the identifier semantics (post number rather than title), which materially affects downstream calls. It omits pagination or ordering behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the return payload, then the usage rule and the identifier caveat. Every clause earns its place, though the field enumeration is slightly list-like.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-shape burden and does so competently (fields plus page mapping), and annotations cover safety. Only the meaning of projectId is left undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but there is only one parameter (projectId) and the description never explains it, leaving a small gap. What it does contribute is identifier semantics for the returned 'post number', which is useful but not a substitute for documenting the actual input parameter; baseline 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource ('the posts this project has') and enumerates what each entry contains (title, byline, date, category, read time, landing page), so the agent knows exactly what comes back. It reads clearly as a list/read operation, though it never explicitly names a sibling like uichemy_add_blog or uichemy_remove_post to contrast against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Call it before changing a post' gives a concrete trigger for invoking the tool, and the note that 'the post number, not the title, is what identifies it' tells the agent how to act on the result. There is no explicit when-not-to-use or named alternative, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_get_colorsARead-onlyInspect
What every colour in this project IS — the vocabulary, not a list of hexes. Read it before choosing any colour. Every colour decision here is made by ROLE: uichemy_set_text_style takes colorRole: "titleLight", the templates paint from bgLight1 / bgLight2 / bgDark1 / bgDark2, and a section painted anything outside the palette mints a new swatch — of which a project holds five. Without this a caller is choosing between hexes with no meaning attached, and picks one that looks right while the palette already had that exact surface under a name.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is a safe read (readOnlyHint=true, destructiveHint=false, openWorldHint=false). The description adds behavioural context beyond that: colour decisions are role-based, the palette has named surfaces (bgLight1/bgLight2/bgDark1/bgDark2), and painting outside the palette mints a new swatch with a hard cap of five per project. It does not describe the shape of what is returned, so it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The read directive lands early ('Read it before choosing any colour'), which is good front-loading. However, the passage is a long, metaphor-heavy paragraph for a single-parameter getter, and lines like the closing 'looks right while the palette already had that exact surface under a name' are persuasive flourish rather than specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations about return values, the description is the only source for what a caller gets back. It explains the role vocabulary and the swatch-cap constraint, but never describes the returned structure or how colours are named, so an agent knows why to call it more than what it will receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter (projectId) at 0% schema description coverage, so the description must carry the semantics. It implies scoping via 'this project' and 'a project holds five', but never defines projectId, its format, or where a caller obtains it. It adds thematic context but only marginal clarification of the single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description communicates a specific resource: the project's named colour vocabulary/roles rather than a hex list, and it situates that against siblings (uichemy_set_text_style's colorRole, template bgLight1/bgDark1 usage, section painting). The plain 'get the palette' statement is dressed in rhetoric, but an agent can still tell what it retrieves and how it differs from a raw colour list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is an explicit usage directive: 'Read it before choosing any colour.' It explains the consequence of skipping it (choosing between meaningless hexes) and references the role-based workflow that other tools rely on. It stops short of naming a competing sibling or a when-not-to-use case, so it is clear context rather than a full when/when-not map.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_get_imagesARead-onlyInspect
Every picture and clip in the project, with the FULL url, and the section each one sits in. uichemy_set_images writes and nothing read it back: after uploading eighty pictures the only record of which token holds which was whatever the caller kept by hand, and losing it meant rebuilding the mapping by eye. Slots still showing the template's stock picture are named too — those are the ones worth filling. Urls stored against tokens no section renders any more are listed last.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds real value beyond that: full URLs are returned, slots still holding template stock imagery are named, and orphaned URLs (tokens no section renders) are ordered last. This return-shape and ordering detail is not derivable from any structured field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core capability is front-loaded in the first sentence, which is efficient. The middle sentence is anecdotal backstory ('after uploading eighty pictures the only record of which token holds which was whatever the caller kept by hand') that restates the motivation at length without adding invocation guidance, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry the return contract, and it does: URLs, owning sections, stock-template slots, and orphan ordering. For a single-parameter read-only tool with annotations covering safety, this is nearly sufficient; only the absence of any projectId note and a coarse sense of output shape keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents projectId by name only, with 0% description coverage, and the description never mentions it — so no compensation is provided for the gap. The parameter is self-evidently the project scope, which keeps this at a minimum-viable 3 rather than lower, but the description adds no semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: every picture and clip in the project, with full URLs and the section each occupies. It also implicitly contrasts itself with the writer sibling uichemy_set_images ('writes and nothing read it back'), which helps an agent pick the read tool. It does not distinguish itself from other read siblings such as uichemy_list_section_backgrounds or uichemy_get_page_code, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through motivation: the tool exists so callers can recover the token-to-URL mapping that uichemy_set_images does not return. There is no explicit 'use this when' statement, no exclusions, and no named alternative for related reads. The context is clear enough to infer intent, but nothing is spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_get_logoARead-onlyInspect
Every place a logo appears, and what is in each: the SITE's logo slots (navbar, footer, coming-soon / 404), with the band each one sits on, and the PARTNER slots — client logos in content sections, which hold their own picture. Use it to check that no slot is still showing the template's built-in mark or a placeholder from the image library — a slot nobody filled does not look empty, it looks like somebody else's brand.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely useful context beyond that: the taxonomy of slot types, that partner slots carry their own picture, and the failure mode (an unfilled slot shows another brand's mark, not emptiness). It doesn't describe return shape or pagination, but for a read tool this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the enumeration of what is returned, followed by the purpose. The closing flourish ("it looks like somebody else's brand") is colorful but does convey the failure mode, so it earns its place; the first sentence is dense but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of describing what comes back, and it does so reasonably well by naming slot categories and the band/ownership attributes. It omits the projectId requirement and any sense of the returned structure's shape, leaving a small gap for an agent deciding how to consume the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions projectId or what it scopes. The single parameter is self-explanatory by name and convention across sibling tools, which keeps this at minimum-viable rather than worse, but the description contributes nothing to parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete resource (logo slots) and enumerates exactly what is returned: site slots (navbar, footer, coming-soon/404) with their band, plus partner/client logo slots. It is clearly a read operation, implicitly the counterpart to uichemy_set_logo, but it never names that sibling or any other to differentiate itself explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use it to check that no slot is still showing the template's built-in mark or a placeholder from the image library" gives a clear, actionable trigger for calling the tool. It stops short of naming alternatives (e.g. set_logo for fixing a bad slot) or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_get_pageARead-onlyInspect
One page's sections in order, and EVERY slot in each — text and images, filled or empty, with the token, what the slot is for, its character cap and what is in it now. Use it to find the slot token a piece of text lives in before changing that text, and to see which slots are still rendering their own token or the template's stock picture.
| Name | Required | Description | Default |
|---|---|---|---|
| pageName | Yes | As uichemy_get_project listed it. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, destructiveHint=false, so the safety profile is covered. The description adds real behavioral value by describing the return shape (filled vs empty slots, placeholder tokens, stock images) and enumerating what each slot record contains — useful since no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is returned before the usage instruction. Dense but every clause carries information; the em-dash list of returned attributes earns its space rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the burden of explaining what comes back, and does so thoroughly. The main gap is that half the parameters are undocumented, but for a read-only two-parameter lookup with annotations covering safety, the description is close to sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description never mentions pageName or projectId. Schema coverage is only 50% (pageName has a terse 'As uichemy_get_project listed it.' while projectId has none), so the description should compensate but does not — an agent gets no help on parameter format or provenance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (one page's sections and every slot within them) and enumerates the fields returned — token, slot purpose, character cap, current content — which is far more specific than a tautology. It stops short of explicitly differentiating itself from near-siblings like uichemy_describe_sections, uichemy_get_text, or uichemy_template_slots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use guidance: locate the slot token a piece of text lives in before editing it, and inspect slots still showing their placeholder token or the template's stock picture. It implies the follow-up session (uichemy_set_text) but does not name an alternative tool or state when not to use this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_get_page_codeARead-onlyInspect
Builds a page for the user's own React app (Vite, Next.js, Remix…) from UiChemy library sections in one call. For a UiChemy project, uichemy_create_project is the tool instead. Give the sections top to bottom, each a kind + layout (pick with uichemy_find_templates or uichemy_search_layouts; uichemy_list_templates lists a kind's layouts), optional text (slot token → copy) per section, photos — what the pictures should show, chosen per section (e.g. hero: ["sourdough loaf on a wooden board"], testimonials: ["smiling woman portrait"]) with a page-wide default — and palette/fonts. Returns every component file, an App.jsx that stacks them, and a one-line command that downloads the matching stylesheet. Slots you did not fill get the template's sample copy; each file comes with what its copy slots are, so rewrite the copy by editing the files. The files are meant to be used as returned; their styling comes from the kit. Photos are searched on the server from the queries given (free-licence stock), so no separate image search is needed. Copy and image urls can be changed afterwards by editing the files.
| Name | Required | Description | Default |
|---|---|---|---|
| fonts | No | Google Fonts names. | |
| photos | No | Default picture subject for sections without their own, e.g. "artisan bakery". | |
| palette | No | #RRGGBB colours. | |
| sections | Yes | Top to bottom: [{ "kind": "navbar", "variant": "layout-x1" }, { "kind": "hero", "variant": "layout-x1" }, …] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare read-only/non-destructive, and the description adds substantial behavior: it returns every component file plus an App.jsx and a stylesheet-download command, unfilled slots fall back to template sample copy, files are meant to be used as-is with styling coming from the kit, and photos are searched server-side, so no separate image search is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and routed alternatives early, and dense with useful detail. Slight redundancy in the closing 'copy and image urls can be changed afterwards by editing the files' which restates the earlier 'rewrite the copy by editing the files'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description fully covers the return shape (component files, App.jsx, stylesheet command, slot metadata per file) and default behaviors, which is everything an agent needs to invoke and consume the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description nonetheless adds real meaning: `text` is slot-token→copy, `photos` is per-section queries with a page-wide default, and palette/fonts are page-level. It clarifies the relationship between the per-section photos and the top-level photos default, which the schema only hints at.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (builds a page of React app code from UiChemy sections) and explicitly contrasts with uichemy_create_project for projects and implies get_template_code territory. An agent can distinguish it from siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use this tool vs uichemy_create_project, and names the discovery path (uichemy_find_templates / uichemy_search_layouts to pick layouts, uichemy_list_templates to enumerate a kind's layouts). No inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_get_page_settingsARead-onlyInspect
Read each page's Settings — slug, meta title and description, social image, canonical URL, language, indexing, AI crawlers, advanced search options and custom code — as the editor's Page Settings screen shows them. Defaults are named as defaults.
| Name | Required | Description | Default |
|---|---|---|---|
| pageName | No | One page; omit for all. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: results mirror the editor's Page Settings screen, and 'Defaults are named as defaults' tells the agent how unset values will be represented in the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource first, followed by a useful field enumeration. The long em-dash list is dense but every element names a distinct setting category, so it earns its length; it stops just short of being over-stuffed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the heavy lifting by enumerating the returned settings fields, which is exactly what an agent needs to plan a read. The one real omission is any semantic guidance on projectId, the required parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: pageName is documented ('One page; omit for all.') but projectId has no description. The description's phrase 'each page's' reinforces the all-pages default but adds nothing about projectId, so it neither compensates for the gap nor falls below the baseline for partially-covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (each page's Settings) and enumerates the exact fields returned (slug, meta title/description, social image, canonical URL, language, indexing, AI crawlers, custom code). This separates it cleanly from siblings like uichemy_get_page (page content), uichemy_get_page_code, and uichemy_set_page_settings (the write counterpart).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Read each page's Settings' suggests inspection, and the schema's 'omit for all' hints at the all-pages case. There is no explicit statement of when to prefer this over uichemy_get_page or uichemy_set_page_settings, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_get_projectARead-onlyInspect
Look INSIDE a UiChemy project: its pages in order, the sections on each, the palette, the fonts, the button and card designs, and whether it was imported from an existing site. Call this before changing anything — the design tools need the current values to describe what they are about to replace, and an imported project answers to rules a generated one does not.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | From uichemy_list_projects, or the id in the editor url. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real context beyond that: it is a prerequisite read for mutation tools, and imported projects are governed by different rules than generated ones – useful behavioral information not derivable from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the scope of what is inspected. The second sentence is information-dense about sequencing and import rules. Slightly long, but each clause earns its place; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the burden of listing what is returned, and it does so thoroughly. Combined with annotations covering the read-only nature and the usage note that it precedes mutations, an agent has enough to call it correctly; only an explicit alternative path is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single projectId parameter is documented in the schema ('From uichemy_list_projects, or the id in the editor url'). The description adds nothing about the parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Look INSIDE') and resource (a UiChemy project) and enumerates exactly what comes back: pages in order, sections, palette, fonts, button/card designs, import provenance. That scope implicitly separates it from narrower siblings like uichemy_get_page or uichemy_get_style_kit, but no alternative is named explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use: 'Call this before changing anything', with a stated rationale (the design tools need current values to describe replacements). It also flags a conditional behavior (imported vs generated projects follow different rules). What it lacks is a named alternative for the case where only a slice of project data is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_get_style_kitARead-onlyInspect
The stylesheet UiChemy library sections need in the user's own React app (uichemy_get_page_code already includes it). Returns a download command for one self-contained CSS file — type scale, palette, radii, shadows, animations and every utility the given layouts use — that works with Tailwind v4, v3 or none. It covers the layouts passed, so pass every layout the app uses; when a section is added, run it again with the full list. palette (hex) and fonts (Google Fonts) brand every section at once. Set inline only when the caller cannot run a command.
| Name | Required | Description | Default |
|---|---|---|---|
| fonts | No | Google Fonts family names, e.g. { "heading": "Playfair Display", "body": "Inter" }. | |
| inline | No | Return the CSS itself instead of a download command. | |
| layouts | Yes | [{ "kind": "hero", "variant": "layout-x1" }, { "kind": "footer", "variant": "layout-y1" }] | |
| palette | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/non-destructive/closed-world, so the bar is lower, and the description still adds real behavior: output is a download command rather than raw CSS by default, the file is self-contained and works with Tailwind v4, v3, or none, and coverage is bounded by the layouts passed. It does not discuss failure modes or what happens if an unknown layout kind is supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what is returned, then routing, then parameter guidance. Four dense sentences with parenthetical asides; nothing is filler, though the parenthetical and the inline sentence could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of saying what comes back (a download command, or CSS itself when inline is set). Combined with the coverage caveat and framework compatibility, an agent has enough to call it correctly; error behavior and the layout kind vocabulary remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% and already documents fonts/palette/inline/layouts shapes, so the baseline is 3; the description adds non-obvious semantics — that palette and fonts brand every section at once, and that layouts must enumerate the full set for the kit to cover it. It does not clarify the hex format of palette beyond the schema's #RRGGBB notes or the layout `kind` vocabulary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource (produce the stylesheet / CSS file the library sections need for a user's React app) and explicitly distinguishes itself from the sibling that overlaps: 'uichemy_get_page_code already includes it.' An agent can route between this and get_page_code without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-not (get_page_code already contains the stylesheet), explicit completeness rule ('pass every layout the app uses'), explicit re-invocation trigger ('when a section is added, run it again with the full list'), and an explicit condition for the alternative output mode ('Set inline only when the caller cannot run a command').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_get_template_codeARead-onlyInspect
One UiChemy library section as a standalone React + Tailwind component for the user's own React app. uichemy_get_page_code returns a whole page in one call. Pass text (slot token → copy, see uichemy_template_slots) and photos (what the pictures show) or images (slot token → url). The file depends only on React; colours are optional props that default to the style kit. It needs the stylesheet from uichemy_get_style_kit. The files are meant to be used as returned; their styling comes from the kit. Photos are searched on the server from the queries given (free-licence stock), so no separate image search is needed. Copy and image urls can be changed afterwards by editing the files.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | A section kind — "hero", "pricing-table"… | |
| text | No | Slot token → copy, e.g. { "text_a4d1p2": "Fresh bread daily" }. | |
| images | No | Slot token → image url (overrides photos). | |
| photos | No | What the pictures should show, one query per picture in order — e.g. ["croissant on a plate", "bakery counter"]. | |
| videos | No | Slot token → video url. | |
| variant | Yes | A layout id — "layout-x6", or a number / websiteN for numbered folders. | |
| componentName | No | PascalCase name for the component, e.g. "HomeHero". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safe-read profile; the description adds substantial behavior beyond that: the file depends only on React, colours are optional props defaulting to the style kit, the stylesheet prerequisite, the files are meant to be used as returned, and photos are searched server-side from free-licence stock so no separate image search is needed. It also notes copy and image URLs are editable afterwards. This is exactly the added context the annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and then dense but mostly load-bearing detail. A couple of statements overlap (the stylesheet prerequisite and 'styling comes from the kit'), and the run-on middle sentences could be tightened, but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter code-generation tool with no output schema, the description covers the key unknowns: prerequisites, image-resolution behavior, and editability of the result. It could say more about what is actually returned (single file vs files, naming, where the componentName lands), which is the one remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning: text keys are slot tokens cross-referenced to uichemy_template_slots, photos are natural-language queries resolved server-side against free-licence stock (one query per picture, in order), while images are direct slot→url overrides. The photos-vs-images distinction and server-side search behavior are not obvious from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+scope: 'One UiChemy library section as a standalone React + Tailwind component for the user's own React app.' It explicitly contrasts itself with uichemy_get_page_code ('returns a whole page in one call'), so an agent can route between the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real routing context: use this for one section, get_page_code for a whole page; pass text via uichemy_template_slots tokens; the output needs the stylesheet from uichemy_get_style_kit. It stops short of an explicit 'do not use this when…' rule, but the when-to-use signals are clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_get_textARead-onlyInspect
The FULL copy in named slots. uichemy_get_page clips every value at 80 characters so a page of forty slots stays readable, which makes it useless for reading a paragraph back — a rebuild from it would truncate every passage over 80 characters, silently. This is the reader for those: exact values, nothing clipped. Ask for the tokens you need, or name a page to read everything on it. A page of long-form copy is large, so a page read is capped and says so when it caps.
| Name | Required | Description | Default |
|---|---|---|---|
| tokens | No | ["text_h5634k4c9", "text_a1b2c3"] | |
| pageName | No | Every slot on this page, in section order. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read (readOnlyHint=true, destructiveHint=false), but the description adds real behavioral context beyond them: values are exact/unclipped, and page reads are capped with the cap signalled in the response. The silent-truncation risk of the sibling is a useful disclosure. It does not describe the return shape in detail, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the key contrast (full copy vs get_page's clipping) in the first clause, and the cap disclosure earns its sentence. The middle em-dash clause is slightly verbose but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only read-only annotations, the description carries the behavioral burden well: it covers the clipping distinction, the two request modes, and page-read capping. It stops short of describing the response structure or how capping is reported, but is complete enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with projectId undocumented in both schema and description. The description compensates by clarifying the tokens-vs-pageName modes and implying they are alternatives, which is more than the schema states. projectId remains unexplained, keeping it below 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (reads the FULL, unclipped copy in named slots) and explicitly distinguishes itself from uichemy_get_page, which clips at 80 characters. An agent can tell the two apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the two selection modes directly ('Ask for the tokens you need, or name a page to read everything on it') and names the alternative with the condition that rules it out (get_page's 80-char clipping makes it useless for paragraph reads). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_insert_saved_sectionADestructiveInspect
OVERWRITES: the saved copy, pictures, clips and button/badge choices are written per layout, so they replace those in any existing section that uses the same layout. Put a saved section into a page — the layout, then its copy, pictures, videos and per-button / per-badge choices — through uichemy_add_section, so the page is written exactly the way adding a section always writes it. Its background colour is reported rather than painted: set it with uichemy_set_section_background if you want it here too.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | 1-based position. Omitted = at the end. | |
| savedId | Yes | From uichemy_list_saved_sections. | |
| pageName | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the bar is lower. The description adds real value by spelling out exactly what gets overwritten (copy, pictures, clips, button/badge choices in any section sharing the layout) and that background is reported rather than painted—detail absent from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The OVERWRITES warning is correctly front-loaded, but the middle sentence is a long run-on that buries the delegation to uichemy_add_section. It earns its length on behavioral content but could be tighter and clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-output-schema mutation, the definition covers overwrite scope, the add_section routing, and the separate background step. The main gap is parameter documentation for projectId/pageName, but overall an agent has what it needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; the schema documents index and points savedId to uichemy_list_saved_sections, while pageName and projectId are undocumented. The description adds no parameter-level detail beyond implying the saved/layout relationship, so the baseline of 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (put a saved section into a page) and explicitly contrasts it with uichemy_add_section, the sibling it delegates to. It clearly distinguishes the insert-saved operation from plain section-adding, though the phrasing is circuitous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It routes the agent explicitly: insertion happens through uichemy_add_section, and background must be set separately with uichemy_set_section_background. These are named alternatives with conditions, though it never states when NOT to use this versus save_section/duplicate_section.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_list_exportedARead-onlyInspect
The projects on this account that are marked exported, with the builder each went to.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety and account-scoping are covered. The description adds that only exported-marked projects are returned, which is useful scoping context, but says nothing about ordering, completeness, or result shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short noun phrase with no filler, front-loading the filter (exported) and the notable return field (builder). It is a fragment rather than a sentence, which is stylistically inconsistent but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return picture, and it does mention both the entities and the builder attribute. It stops short of anything about result size or ordering, but for a zero-argument listing tool that is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the parameter-semantics baseline of 4 applies; there is nothing for the description to compensate for and no misleading parameter claims.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (projects marked exported) and the payload detail (the builder each went to), which distinguishes it implicitly from uichemy_list_projects by the exported filter. It never names the sibling it contrasts with, so differentiation requires the agent to infer it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Use is implied by the description — retrieve exported projects — but there is no explicit when-to-use, no mention of the related uichemy_mark_exported action that creates these records, and no statement of alternatives such as uichemy_list_projects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_list_icon_overridesBRead-onlyInspect
The icons this project has had replaced, and under which key. Two key schemes exist — a LABEL shared by every instance of an icon, and a POSITIONAL id naming one element — and knowing which you are looking at is what stops a change from fighting an existing one.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds useful interpretive context about the two key schemes, but says nothing about result shape or pagination beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and clear. The second is discursive, ending on a convoluted phrase ('stops a change from fighting an existing one') where a plain 'prevents conflicting overrides' would do.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully sketches what comes back (icons plus their keys under two schemes), but omits the required projectId entirely and gives no sense of result structure. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter and schema description coverage is 0%, so the description carries the full burden — yet it never mentions projectId or its format, only discussing the output keys. It does not compensate for the coverage gap on inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and scope: the icons this project has had replaced, with their override keys. It is identifiable as a read/list operation, though the verb is only implied and it never names the close sibling list_icons or clear_icon_override to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies conceptual context — that a LABEL and a POSITIONAL id are the two key schemes and that recognizing them prevents conflicting changes — which implies you call this before mutating overrides. But it never states when to use this versus list_icons or how it pairs with clear_icon_override/set_icon.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_list_iconsARead-onlyInspect
Every icon SLOT the pages render, whether or not anything has been put in one — which is what uichemy_list_icon_overrides cannot tell you, because it lists only icons already replaced. On a project where none have been it answers "No icons replaced", and there was no id to write to; the icons were unreachable until somebody picked one by hand in the browser. The slot label is authored in the template, so it is readable without a rendered page. instances is how many icons on that section wear the same label — a loop-drawn row shares one, so replacing it replaces the row.
| Name | Required | Description | Default |
|---|---|---|---|
| pageName | No | One page. Omitted = every page. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower, yet the description still adds real behavior: slot labels are authored in templates and readable without a rendered page, and `instances` counts how many icons share a label so a loop-drawn row is replaced as a unit. That is genuine context an agent could not infer from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the middle is a rambling anecdote ('On a project where none have been it answers...') that restates the overrides distinction at length. The useful payload — slot label readability and `instances` semantics — is buried at the end rather than stated crisply up front.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry return-value meaning, and it does explain what a result row conveys (slot label plus instance count). It is reasonably complete for a read-only listing tool, though it omits pagination or ordering behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% — pageName is documented in the schema as 'One page. Omitted = every page.' while projectId is undocumented. The description says nothing about how to scope by page or what projectId must be, and instead spends its detail on the returned `instances` field, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — listing every icon SLOT rendered by pages, including unset ones — and immediately distinguishes that from uichemy_list_icon_overrides, which lists only replaced icons. An agent can pick between the two siblings without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the alternative (uichemy_list_icon_overrides) and the exact condition that selects this tool instead: when no icons have been replaced and there is no id to write to. It stops short of explicit when-not guidance, but the conditional routing is unusually concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_list_linksARead-onlyInspect
Every link on a page's sections — buttons and text links — with the key uichemy_set_link takes, where it points now, and any destination written into the LAYOUT itself (a phone number, an email, a map) that has no key and cannot be changed from here.
| Name | Required | Description | Default |
|---|---|---|---|
| pageName | No | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, not open-world), so the description's job is to add context — and it does: it discloses that some destinations are baked into the LAYOUT (phone, email, map), carry no key, and cannot be changed from this tool. That is real behavioral value beyond the structured hints, though it says nothing about pagination or return volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that leads with what is returned and folds the constraint into an em-dash aside. Dense but every clause earns its place; slightly run-on but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating what each returned link contains (key, current target, layout-baked destination). The main shortfall is the unexplained required projectId, which leaves the calling contract incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters, so the description carries the full burden, yet it never mentions projectId or pageName. 'A page's sections' loosely gestures at pageName, but projectId — the required parameter — is entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource (list links on a page's sections), scopes it to buttons and text links, and explicitly ties it to the sibling uichemy_set_link by naming the key that tool consumes. An agent can distinguish this from other list_* tools without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The reference to 'the key uichemy_set_link takes' plus 'cannot be changed from here' implicitly frames the workflow (read here, mutate via set_link) and sets a boundary on what this tool can alter. It does not, however, state an explicit when-to-use-vs-alternative condition beyond that implicit pairing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_list_projectsARead-onlyInspect
The UiChemy projects this account can open, newest first. Use it to find the project id another tool needs, rather than asking the user to copy one out of a url.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return. Default 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds meaningful non-schema behavior: results are account-scoped and returned newest-first, which tells the agent what ordering to expect. It stops short of describing truncation/pagination semantics when the limit cap is hit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, and the most decision-relevant fact (what the list is) is front-loaded before the usage tip. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, no-output-schema read tool with full annotation coverage, the description is nearly sufficient — it conveys scope, ordering, and the payoff (project ids). It could note whether the list may be truncated, but nothing essential for calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema description coverage ('How many to return. Default 20.'), the schema already carries the semantics. The description's 'newest first' adds ordering context that matters for interpreting the limit, but no additional syntax or edge-case detail. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource pair ('The UiChemy projects this account can open'), plus scope ('this account') and ordering ('newest first'). An agent can immediately distinguish this enumeration tool from get_project (single), create_project, and delete_project without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use: 'Use it to find the project id another tool needs,' and an anti-pattern to avoid ('rather than asking the user to copy one out of a url'). It does not name a specific sibling alternative (e.g. open_projects) as the contrast case, so it stops just short of a full when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_list_saved_sectionsARead-onlyInspect
The sections this account has saved with uichemy_save_section, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Only this section kind — hero, pricing, faq… |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false and closed-world scope, so the safety profile is covered structurally. The description adds useful behavior — that results are account-scoped and sorted newest-first — but says nothing about pagination, result size, or what a 'section' record contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with zero waste; the scoping (this account) and ordering (newest first) are front-loaded and immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with annotations covering safety and a fully described filter parameter, the definition is adequate. It is missing return-shape and pagination context, but with no output schema declared this is a minor gap rather than a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single optional parameter and 100% schema description coverage ('Only this section kind — hero, pricing, faq…'), the schema already carries the parameter meaning. The description adds nothing beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (saved sections for this account), plus ordering ('newest first') and provenance ('saved with uichemy_save_section'). This distinguishes it from siblings like uichemy_save_section and uichemy_insert_saved_section, though it does not explicitly name the alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The provenance phrase 'saved with uichemy_save_section' implies the natural workflow (save first, then list/insert), which gives implied usage context. However, there is no explicit when-to-use guidance and no routing between this and similar retrieval tools like uichemy_describe_sections or uichemy_list_section_kinds.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_list_section_backgroundsRead-onlyInspect
Every section in the project and the KEY its background is painted under — including the ones nobody has painted yet, which is the point: the key cannot be guessed, and a list of only the painted ones leaves no way to paint the first. A section marked global (navbar and footer, by default) has one key for the whole project, so painting it paints every instance on every page — said so here rather than discovered. It also lists the FOUR SURFACES the palette paints — the canvas picker's Light 1 / Light 2 / Dark 1 / Dark 2. Painting a section one of those keeps it inside the design system and adds no new swatch; painting it anything else mints one, and the strip holds five. The swatch strip is DERIVED from the colours in use: its tokens are assigned by luminance, so a colour's name tells you whether the canvas treats it as a light or a dark band.
| Name | Required | Description | Default |
|---|---|---|---|
| shades | No | Also list the ramp around each surface — a step lighter or darker, as the picker offers. | |
| pageName | No | One page. Omitted = every page. | |
| projectId | Yes |
uichemy_list_section_kindsARead-onlyInspect
Every kind of section the UiChemy library ships — hero, features, pricing, footer and 60-odd more — with how many layouts each has. Start here when building a project from the library rather than from an uploaded site.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint false, and destructiveHint false. The description adds return content—every section kind with layout counts—but omits output format or pagination details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and examples, zero waste. The second sentence efficiently communicates the primary usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-param read-only catalog with no output schema, the description provides the return content and usage context, which is sufficient. No missing information that would block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so baseline 4. No parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (section kinds) and enumerates examples like hero, features, pricing. Clearly distinguishes this catalog from site-specific tools by contrasting library vs uploaded site.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to start here when building from the library and not from an uploaded site, giving a clear when and when-not. It does not name the alternative tools (e.g., describe_sections or list_saved_sections) that cover other scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_list_sitesBRead-onlyInspect
Every site this account has published on uichemysites.com, and how many more it may have.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely new context: the results are scoped to 'this account' and include the remaining publish allowance, which is useful behavioral detail. It stops short of describing ordering, pagination, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the main return (the sites) before the secondary one (the quota). Slightly informal phrasing ('how many more it may have') costs a little precision but wastes no space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns, and it does so at a high level: the published site list plus the remaining allowance. For a zero-parameter read-only tool this is nearly sufficient, though the exact shape of each site entry and the quota value is left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the 4 baseline applies. Schema coverage is 100% and the empty input schema is consistent with a parameterless list call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (every site this account has published on uichemysites.com) and adds a scope detail (remaining publish quota). It is clear what the tool returns, but it never explicitly distinguishes itself from near-siblings like uichemy_list_projects or uichemy_list_exported, leaving the agent to infer the site-vs-project boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no alternative named. The agent gets no help deciding between this and uichemy_list_projects or uichemy_publish_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_list_templatesARead-onlyInspect
The layout ids available for one section kind. Pick one and call uichemy_template_slots to find out what copy it needs.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | A folder from uichemy_list_section_kinds — "hero", "pricing"… | |
| withThumbnails | No | Include a preview image url for each layout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, destructiveHint=false, so the safety profile is covered. The description adds useful workflow context (the chained call to uichemy_template_slots) but says nothing about return shape, ordering, or whether thumbnails affect cost/latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, with the resource identified first and the follow-up action second. Nothing could be removed without losing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does convey the return concept (layout ids) and the follow-up tool, and the params are fully documented in schema. It omits any note about what a 'layout id' looks like or how many results to expect, but that is a minor gap for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both params are documented in the schema (kind sourced from section kinds, withThumbnails adding a preview url). The description adds no syntax, format, or default information beyond what the schema already supplies, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (layout ids) scoped to one section kind, and the parameter description ties 'kind' to uichemy_list_section_kinds. It does not distinguish itself from near-siblings like uichemy_find_templates or uichemy_search_layouts, which also surface layouts, so an agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit next step: pick a layout id and call uichemy_template_slots to learn its copy requirements. The 'kind' param description implies this runs after uichemy_list_section_kinds. No when-not-to-use or alternative is named, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_list_text_stylesARead-onlyInspect
The per-element text styles this project has set — alignment, size, colour role and semantic tag, keyed by the same text_* slot the copy lives in. These are the Text panel's per-element controls, not the global type scale.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered without the description. The description adds the keying scheme (`text_*` slot) and the panel provenance (Text panel controls), which is genuine context. It says nothing about return shape, emptiness when no styles are set, or ordering, so it adds moderate but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The resource and its keying are front-loaded, and the disambiguating clause about the global type scale is placed last where it does the most routing work.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description has to carry the return-value burden, and it does describe the shape of a style entry and how entries are keyed. What is missing — whether unset slots are omitted, or how the global type scale interacts — is minor for a read-only listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single projectId parameter, so the schema contributes nothing. The description only implies the scope via 'this project', never naming or explaining projectId. For a lone, self-evident identifier this is close to adequate, but the description does not compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely — per-element text styles set on this project — and enumerates the fields returned (alignment, size, colour role, semantic tag). It also distinguishes itself from the global type scale, which is the closest sibling concept. It stops short of a crisp verb-first statement of what the call does, but an agent can tell what it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing clause 'not the global type scale' gives one negative boundary, which is useful routing information toward set_type_scale / get_style_kit. However, there is no explicit when-to-use trigger, no mention of the sibling uichemy_get_text or uichemy_clear_text_style / uichemy_set_text_style relationship. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_list_variantsARead-onlyInspect
The colour variants on this project — the sidebar's Variant 1, Variant 2 … Each is a whole palette the user can switch between, kept alongside the applied one, so this is how you see what alternatives a project already has before adding another.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds real domain context beyond that: variants are whole palettes 'kept alongside the applied one', which tells the agent that listing does not disturb the currently applied palette and that variants are parallel alternatives rather than sequential states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no boilerplate; the em-dash apposition and ellipsis convey the sidebar naming convention compactly. Slightly conversational, but nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does enough to let an agent interpret results: it explains that variants are named 'Variant 1, Variant 2 …' in the sidebar and that each is a full palette. It is complete for a simple single-parameter read, though it never says what fields come back (ids vs names).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter (projectId) and schema description coverage is 0%. The phrase 'on this project' implies projectId scopes the listing, but no format, ID source, or lookup hint is given. Baseline 3 for a single-parameter tool whose schema is undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (the colour variants / whole palettes on a project) and clarifies what a variant actually is, so an agent knows this is a read of existing alternatives rather than palettes themselves. The verb is only implied ('this is how you see what alternatives a project already has'), and no sibling is named explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'...before adding another' gives a clear triggering context: check existing variants prior to calling create_variant. There is no exclusion list or explicit naming of the alternative tool, but the when-to-use is unambiguous for this tool's main decision point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_mark_exportedBInspect
Mark a project as exported, which is what puts it in the Exported list and what the WordPress plugin reads. It does NOT generate the Elementor or Gutenberg payload — the plugin pulls that itself when it syncs — so say that plainly rather than implying a file was produced.
| Name | Required | Description | Default |
|---|---|---|---|
| builder | No | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation/safety profile is partly covered. The description adds genuinely useful context beyond that: the payload is not generated here and the plugin pulls it during sync, which prevents the agent from assuming a file artifact is produced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well front-loaded and informative. However, the final clause ('so say that plainly rather than implying a file was produced') is meta-instruction about how to phrase things rather than tool behavior, muddying an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity two-parameter mutating tool with no output schema, the description conveys the essential behavioral nuance (state change, no payload generation, plugin reads it). The only real gap is the undocumented builder/projectId parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries full burden for two parameters. It explains neither projectId nor the builder enum (elementor/gutenberg), so the agent gets no guidance on what builder selects or how the mark is scoped.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('mark a project as exported') and clarifies what the action does ('puts it in the Exported list and what the WordPress plugin reads'). The negative clause ('does NOT generate the Elementor or Gutenberg payload') sharpens the boundary, though no sibling tool is named to route against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the context in which the state matters (plugin sync reads it), but never states when to call this versus alternatives like sync_builders or publish_site, nor any prerequisites or ordering. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_open_previewOpen project in UiChemy editor or previewARead-onlyInspect
Open a UiChemy project inside ChatGPT, in the real UiChemy canvas editor, or in the full-page preview of one page (view: "preview"). Call it after changing a project so the user sees the result. Without a projectId it opens the dashboard so the user can pick one.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | editor (default): the canvas with every page. preview: one page, full size. | |
| pageName | No | For view preview: the page to show. Default: the first page. | |
| projectId | No | From uichemy_list_projects. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered; the description adds real context beyond that by enumerating the three surfaces the project can open in and by disclosing the no-projectId fallback behavior. It omits any note about what happens if the projectId is invalid or whether the open is synchronous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the primary action and destinations, then the trigger condition, then the edge-case fallback. No filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only navigation tool with full schema coverage and explicit annotations, the description supplies the destination semantics and the missing-parameter behavior an agent needs. The only real gap is disambiguation from the sibling uichemy_open_projects, which has overlapping dashboard-opening behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (view, pageName, projectId) are already documented in the schema, including enum meanings and defaults. The description only echoes the 'preview' value and adds no syntax or constraint beyond what the schema provides — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Open a UiChemy project') with three explicit destinations: embedded ChatGPT view, the canvas editor, and a full-page single-page preview. It stops short of naming its near-twin sibling uichemy_open_projects, so the agent must infer which of the two 'open' tools to pick when no projectId is given.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Call it after changing a project so the user sees the result' gives a clear triggering condition, and the no-projectId dashboard fallback is stated explicitly. It does not, however, say when to prefer uichemy_open_projects over this tool, which is the obvious alternative given the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_open_projectsOpen UiChemy project dashboardARead-onlyInspect
Open the UiChemy dashboard (the user's projects) inside ChatGPT. Use when the user wants to see, pick or open one of their UiChemy sites, or just open UiChemy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that the dashboard opens inside ChatGPT, but does not mention auth requirements, side effects, or return behavior beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no wasted language, and the core action is front-loaded. It is appropriately sized for a simple zero-parameter navigation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, no output schema, and annotations covering safety, the description is largely complete: it says what opens, where it opens, and when to use it. Stronger sibling differentiation would make it fully complete in this crowded toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so there are no parameter meanings for the description to clarify. This matches the baseline of 4 for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Open the UiChemy dashboard (the user's projects) inside ChatGPT." It is clear what the tool does, but it does not explicitly distinguish itself from siblings such as uichemy_list_projects or uichemy_open_site_admin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage guidance: "Use when the user wants to see, pick or open one of their UiChemy sites, or just open UiChemy." It lacks explicit when-not guidance or named alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_open_site_adminAInspect
Sign the user in to the WordPress ADMIN (wp-admin dashboard) of a project's hosted site on uichemysites.com. Call it whenever the user asks to open, log in to, or get into the site's admin, dashboard or backend. Returns a one-time link that signs them straight in, no username or password needed: give them the link right away, it works ONCE and expires about a minute after this call. If it has expired, call this again for a fresh one. Never send the user to /wp-admin or wp-login.php instead: UiChemy created the admin account and the user does not know its password. For a username and password they can keep, use uichemy_site_admin_login.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the generic non-read-only, non-destructive, closed-world profile. The description adds the crucial operational traits: the return value is a one-time sign-in link, it works exactly once, it expires roughly a minute after the call, and a fresh call is needed after expiry. It also explains the underlying reason (UiChemy owns the admin account, the user has no password), which prevents a wrong recovery path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose first, then trigger, then return behavior, then fallback warning and alternative. Every sentence carries load, though the one-time/expiry/anti-/wp-admin material runs a bit long and could be tightened without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly explains the return value (a one-time link) and its lifecycle. Combined with the trigger conditions, the alternative tool, and the credential caveat, an agent has everything needed to call and relay the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One required parameter (projectId) with 0% schema description coverage. The description implies the site is scoped to 'a project's hosted site', which loosely ties projectId to a project, but gives no format, source, or lookup hint for the ID. It partially compensates but leaves the only parameter under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+destination: signing the user into the WordPress wp-admin dashboard of a project's hosted site on uichemysites.com. It is immediately distinguishable from the sibling uichemy_site_admin_login, which it explicitly names and contrasts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('whenever the user asks to open, log in to, or get into the site's admin, dashboard or backend') plus an explicit anti-pattern ('Never send the user to /wp-admin or wp-login.php') and the alternative for a different need (uichemy_site_admin_login for durable credentials). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_publish_siteADestructiveInspect
Put a project ONLINE as a real WordPress site at https://.uichemysites.com, hosted by UiChemy: the pages are exported and imported into WordPress with the UiChemy plugin. This is PUBLIC: anyone with the link can see it, so only call it when the user asks to publish, go live, or put the site online, and tell them the address. One site per project; calling it again for a published project UPDATES that same site (same address, pages replaced with the current design). A new site is a Temporary site: online for 24 hours, then offline until the user turns it on again or makes it permanent (Sandbox) in UiChemy > Published Sites. Each plan allows a number of Temporary and Sandbox sites; unpublishing or going offline frees one. Only generated pages are published. Publishing takes a few minutes: this returns at once with the address, then check progress with uichemy_publish_status. WordPress only. To open the site's WordPress admin afterwards, use uichemy_open_site_admin (the user has no password for it).
| Name | Required | Description | Default |
|---|---|---|---|
| pages | No | Page names to publish. Omit for every generated page. | |
| address | No | Only for a FIRST publish: the subdomain, e.g. "bloom-bakery" for bloom-bakery.uichemysites.com. Lowercase letters, numbers and hyphens. Omit to derive it from the project name. Ignored on an update. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Far exceeds the annotations (which only declare non-readOnly, openWorld, destructive). The description discloses public exposure, idempotent re-publish semantics (same address, pages replaced), a 24-hour Temporary lifecycle with plan quotas, that only generated pages are published, and that the call is async and returns immediately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and consequence before the operational caveats, and nearly every sentence carries distinct information. It is dense and long, but largely justified by the tool's complexity; only minor tightening is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly explains the async return ('returns at once with the address') and the follow-up status tool. It covers lifecycle, quota, and access rules so an agent can call and explain the result correctly; the only omission is the required projectId's own semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: 'pages' and 'address' are well documented in the schema (address already notes it is ignored on updates). The description adds context linking address to the first-publish flow, but the required 'projectId' is undocumented in both schema and description. Baseline 3 is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Put a project ONLINE as a real WordPress site at https://<address>.uichemysites.com') and names the intermediary (UiChemy WordPress plugin). It is clearly distinguishable from siblings like uichemy_publish_status, uichemy_unpublish_site, and uichemy_open_site_admin, which it explicitly routes to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when: 'only call it when the user asks to publish, go live, or put the site online.' It also names alternatives for adjacent needs (uichemy_publish_status for progress, uichemy_open_site_admin for admin access) and states a scope limit (WordPress only).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_publish_statusARead-onlyInspect
Where a publish is up to, or the project's hosted site if no publishId is given: its address, whether it is live, setting up or failed, and when it was last published.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| publishId | No | From uichemy_publish_site. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds real behavioral value beyond that: it discloses the fallback behavior when publishId is omitted and enumerates the possible states the publish can be in (live, setting up, or failed). It does not cover permissions or latency, but the added context is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tightly packed sentence that front-loads the outcome and then lists the returned fields. There is no filler, though the colon-heavy structure is a touch dense for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return-value burden and does so by naming the fields an agent gets back. Combined with read-only annotations and the fallback rule, an agent has enough to call and interpret this tool correctly; only projectId semantics are thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%. The schema documents publishId as coming from uichemy_publish_site, and the description reinforces its optional/conditional role. However, projectId is left completely undocumented in both the schema and the description, so the description does not fully compensate for the coverage gap. Baseline 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (a publish / the project's hosted site) and enumerates the status fields returned (address, live/setting-up/failed, last publish time), which lets an agent recognize this as a status-query tool. It does not name sibling tools such as uichemy_publish_site or uichemy_list_sites to sharpen the boundary, and the phrasing 'Where a publish is up to' is slightly indirect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one useful conditional: if no publishId is supplied, the tool reports the project's hosted site instead of a specific publish. That implies usage but there is no explicit when-to-use vs alternatives (e.g., versus uichemy_publish_site to start a publish, or uichemy_list_sites), and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_remove_pageADestructiveInspect
Delete a page and everything on it — its sections' layouts, their backgrounds, overlays and padding, and the copy and pictures in their slots. Copy a section on ANOTHER page still renders is kept: slot tokens belong to the layout, not the page. The home page cannot be removed; it is the root every other page hangs off. What was deleted is reported — this destroys writing, and the caller has to be able to say so.
| Name | Required | Description | Default |
|---|---|---|---|
| pageName | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description goes well beyond that: it enumerates exactly what is destroyed, explains why slot tokens on other pages survive the deletion, states the home-page protection rule, and notes that a report of what was deleted is returned because the action is irreversible. This is unusually rich behavioral disclosure for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The destructive scope is front-loaded, which is good, but the middle sentence ('Copy a section on ANOTHER page still renders is kept...') is syntactically tangled and hard to parse, and the closing clause about the caller being able to report the deletion is more editorial than informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no output schema, the description covers destruction scope, the home-page restriction, cross-page side effects, and the fact that a deletion report is produced. The only real gap is parameter identity (which project, which page), which the schema does not fill either.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions projectId or pageName, their formats, or how a page is identified. It only implies 'page' generically, so it does not compensate for the undocumented parameters even though the names are fairly self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource ('Delete a page') and immediately scopes what 'page' includes: sections, layouts, backgrounds, overlays, padding, copy and pictures. This clearly separates it from siblings like uichemy_remove_section, uichemy_duplicate_page and uichemy_delete_project without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real usage boundary — the home page cannot be removed because it is the root of every other page — which tells the agent when this call will fail. It does not name alternative tools (e.g. remove_section for partial teardown), so it stops short of full when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_remove_postADestructiveInspect
Delete one blog post. The posts above it are RENUMBERED down, because the canvas finds a post by its number — including which article page belongs to it — so a hole in the numbering is an empty card on the listing and an article page looking for a post that is not there. The listing's card pictures move down with them. Before this the only way to remove a post was to overwrite the whole list positionally, which created article pages as a side effect: three deletions cost two extra pages. The surplus article page goes with the post, unless keepPages says otherwise.
| Name | Required | Description | Default |
|---|---|---|---|
| keepPages | No | Leave the article pages alone. The last one will then have no post behind it. | |
| projectId | Yes | ||
| postNumber | Yes | 1-based, as uichemy_get_blog lists them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations confirm destructiveHint=true, and the description goes well beyond them: posts are renumbered down, listing cards move, a surplus article page is deleted with the post unless keepPages says otherwise, and a numbering hole leaves an empty card. This covers exactly the side effects an agent must anticipate before a destructive call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The action is front-loaded and every sentence carries rationale, but the historical aside ('Before this the only way... three deletions cost two extra pages') is longer than strictly needed to guide invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and three simple params, the description supplies ample behavioral context for a destructive operation. It omits return confirmation and any permission requirements, but nothing else needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; postNumber's 1-based convention is documented in the schema, and the description adds the behavioral meaning of keepPages ('The surplus article page goes with the post, unless keepPages says otherwise'). projectId remains undocumented in both places, a minor gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: 'Delete one blog post.' It immediately distinguishes itself from siblings like uichemy_remove_page by naming the exact entity and the numbering mechanism involved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains why this tool exists versus the prior approach ('the only way to remove a post was to overwrite the whole list positionally'), giving clear context for when to reach for it. It does not, however, name a sibling alternative or state preconditions explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_remove_sectionADestructiveInspect
Take a section off a page. Everything after it moves up, and its variant keys are rebuilt — a stale key is how a removed section reappears on the next change. Everything else the section owned goes with it: its background, its overlay, its padding, and the copy and pictures in its slots — unless another section still renders that layout, in which case the copy is shared and is kept. What was dropped is reported, because it is the user's writing. The last Post Featured Area or Post Content on a blog detail page cannot be removed: they are what puts the post on the page.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | 1-based. | |
| pageName | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true/readOnly=false, and the description goes well beyond them: it explains index reflow, variant-key rebuilding, why stale keys matter, the cascade of owned assets (background, overlay, padding, slot content), the sharing exception when another section renders the layout, and that dropped content is reported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The action is front-loaded in the first short sentence, and the following sentences each add distinct destructive-behavior detail. The enumeration of owned assets is slightly padded but each clause carries real meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-output-schema tool, the description covers what is destroyed, what is preserved via sharing, the one hard prohibition, and that dropped content is reported. Only the exact returned payload and any authorization requirements are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% — only 'index' is documented as 1-based, while projectId and pageName have no descriptions. The description never mentions any parameter or clarifies how the index relates to the resulting reflow, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete verb+resource: 'Take a section off a page.' The resource noun ('section') separates it from nearby siblings like remove_page and remove_post, but it never explicitly contrasts itself with replace_section or duplicate_section, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-not rule ('the last Post Featured Area or Post Content ... cannot be removed'), which prevents a class of invalid calls. It does not point to alternative tools (e.g. replace_section) when removal is the wrong operation, but the context is otherwise clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_remove_section_backgroundADestructiveInspect
Stop painting a section — or clear the paint left behind by sections that are gone. Give sectionKey (one uichemy_list_section_backgrounds shows) to unpaint that section: both what it wears and the override that survives a style recompute, so the colour does not come back on the next one. Give orphans: true instead to drop every per-section background, overlay and padding whose section is no longer in the project. Those are what deletes left behind before deletes took their own state with them, and nothing else can reach them: the page they name does not exist, so no page tool will answer for it. uichemy_validate lists them as orphan-section-key. The swatch strip is derived, so a colour nothing wears any more drops out of it by itself.
| Name | Required | Description | Default |
|---|---|---|---|
| orphans | No | Clear every entry whose section is gone. | |
| projectId | Yes | ||
| sectionKey | No | A key from uichemy_list_section_backgrounds — page-<sectionId>_<slug>_Website<variant>. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known; the description goes further by disclosing exactly what is destroyed — both the section's worn background and the override that survives a style recompute — and that orphan entries are unreachable by any page tool. It does not discuss error behavior or permissions, but the added destruction semantics are substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The primary action and both modes are front-loaded, and most sentences carry real content. The narrative aside about deletes 'taking their own state with them' is slightly chatty, but overall the length is justified for a tool with two distinct behaviours.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still covers both modes, the origin of `sectionKey`, and the derived swatch-strip behaviour that follows removal. It omits edge cases such as an invalid sectionKey, whether both parameters can be supplied together, and permission requirements for a destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the description compensates by explaining what `orphans: true` actually clears (background, overlay and padding, beyond the schema's terse 'every entry'), and by identifying `sectionKey` as a value returned by uichemy_list_section_backgrounds. The two modes are implicitly presented as alternatives, though the description never states whether they can be combined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource in two modes: unpaint a section's background, or clear backgrounds orphaned by deleted sections. It is clearly distinguishable from siblings like uichemy_set_section_background and uichemy_remove_swatch, which do different things.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit conditions for each mode: pass `sectionKey` to unpaint one section, or `orphans: true` to drop every orphaned entry. It also routes the agent to uichemy_list_section_backgrounds for keys and uichemy_validate for discovering orphan-section-key entries, so the when and the source of inputs are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_remove_swatchBDestructiveInspect
Remove one saved section colour from the swatch strip — the background picker's remove button. Every section painted that colour is unpainted with it (back to its section style's colour), as in the editor; the strip is rederived.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | #RRGGBB, as uichemy_list_section_backgrounds shows it. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds real value beyond them: it discloses the cascade side effect (every section painted that colour is unpainted back to its section style's colour) and that the strip is rederived. That is exactly the behavioral risk an agent needs. It omits reversibility and permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded — the action and target lead, with side effects trailing. Dense but every clause carries information; no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must carry the result semantics, and it does explain the cascade and that the strip is rederived. For a two-parameter destructive mutation the main behavioral hazard is covered, though projectId's role and failure behavior are left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: hex is documented in the schema and projectId is undocumented in both places. The description reinforces the 'saved section colour' concept but adds no format, scope, or meaning beyond what the schema already states, and does nothing to fill the projectId gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (remove) and resource (one saved section colour from the swatch strip) and grounds it in the UI (the background picker's remove button). It is clear what it does, though it never explicitly distinguishes itself from the closely-named sibling uichemy_remove_section_background.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description frames the tool as the picker's remove button but gives no when-to-use vs. when-not guidance and does not mention the ambiguous alternative uichemy_remove_section_background. Usage is only inferable from the UI analogy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_rename_pageAInspect
Change what a page is called. Its id does not change, and neither does any of its sections' — every layout, background and piece of copy is keyed against those, so a rename is safe. The variant aliases that embed the old name are rebuilt under the new one.
| Name | Required | Description | Default |
|---|---|---|---|
| newName | Yes | ||
| pageName | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent already knows this is a non-destructive write. The description goes well beyond that, disclosing that the page id and section ids are preserved, that layouts/backgrounds/copy are keyed against those ids (so the rename is safe), and that variant aliases embedding the old name are rebuilt. That side-effect disclosure is genuinely valuable context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, then the safety guarantee and the one consequential side effect. Every sentence carries weight; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Behaviorally the definition is strong: it covers what changes, what is preserved, and the alias-rebuild side effect, all without an output schema to lean on. It falls short only on input semantics, leaving projectId and the exact role of pageName/newName unexplained for a 0%-coverage schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all three required parameters (projectId, pageName, newName). The description only obliquely conveys that one input is the current page name and another is the new name ('Change what a page is called'); it never addresses projectId, and it does not tie any input to its parameter name or format. Compensation for the coverage gap is partial at best.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Change what a page is called' = rename a page) in plain language. It is immediately distinguishable from siblings like duplicate_page, remove_page, and reorder_pages. No ambiguity about what the operation does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the operation itself (rename an existing page), and the safety framing hints that this is the right call when only the display name changes. However, it never explicitly says when to use this versus alternatives such as set_page_settings or duplicate_page, nor names any prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_reorder_pagesAInspect
Put the pages in a new order. Pass every page name exactly once, in the order you want them. The home page stays first — it is the root every other page hangs off. The Design canvas draws one card per page in exactly this order (it does not group by category). The Site map tab groups pages under their category's container, and the order of those containers is fixed by the app; within a container pages keep this order.
| Name | Required | Description | Default |
|---|---|---|---|
| order | Yes | Every page name, exactly once, home first. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety profile (readOnly=false, destructive=false, openWorld=false), and the description goes beyond that by explaining the downstream effects: the Design canvas renders one card per page in this order while the Site map keeps category containers fixed and reorders only within them. That is genuinely useful behavioral context. It stops short of stating permissions, error behavior, or what happens to pages omitted from the list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the imperative, then constraints, then effects. Four sentences with no filler, though the Design canvas / Site map explanation is slightly longer than strictly needed to invoke the tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with no output schema, the description covers the critical semantics: input shape, the home-page invariant, and how the order manifests in the UI. It omits edge-case behavior (invalid/duplicate/missing page names, effect on published sites), which is the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (projectId is undocumented), so the description must carry weight for 'order' — and it does, specifying completeness ('every page name exactly once'), ordering semantics, and the home-page-first invariant that the schema's one-line description only gestures at. It adds real meaning beyond the schema, though projectId remains entirely unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Put the pages in a new order') and immediately scopes it as a whole-project page ordering, which cleanly separates it from the sibling uichemy_reorder_sections and uichemy_duplicate_page. An agent knows exactly what operation this is without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong invocation rules ('pass every page name exactly once', 'home page stays first') but never states when to reach for this tool versus alternatives such as uichemy_reorder_sections or uichemy_set_page_category, nor any preconditions (e.g. project must exist, pages must be known). Usage is implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_reorder_sectionsAInspect
Put a page's sections in a new order. Pass every position once, 1-based, in the order you want them — [3,1,2] moves the third to the front.
| Name | Required | Description | Default |
|---|---|---|---|
| order | Yes | Every current position, exactly once. | |
| pageName | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral detail beyond that: the exact semantics of the order array (1-based, every position exactly once, with a concrete [3,1,2] example). It doesn't cover reversibility or error behavior on invalid positions, keeping it at 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action, and the illustrative example earns its place by disambiguating the non-obvious order semantics. Zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param mutation with annotations covering the safety profile and no output schema, the description is nearly complete – it nails the tricky parameter. It leaves unstated what happens to sections omitted from the list or how invalid positions are handled, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% – only 'order' has a schema description, and pageName/projectId are undocumented. The description compensates strongly for the ambiguous parameter by explaining 1-based indexing, the 'every position once' rule, and giving a worked example, which the bare schema phrase 'Every current position, exactly once' does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Put a page's sections in a new order'), clearly distinguishing this from the sibling uichemy_reorder_pages which operates on pages rather than sections. It's clear and specific, though it doesn't explicitly call out the sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives like reorder_pages or replace_section. Usage is only implied by the imperative 'Put a page's sections in a new order'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_replace_sectionADestructiveInspect
Swap the layout rendering at one position — same slot, different template. The copy does NOT carry over: slot tokens belong to the template, so the new one has its own and will render them raw until filled. Call uichemy_template_slots for the new layout and pass text.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| text | No | ||
| index | Yes | 1-based, as uichemy_get_page lists them. | |
| variant | Yes | ||
| pageName | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, but the description adds the crucial consequence that annotations cannot express: the copy does NOT carry over because slot tokens belong to the template, so the new layout renders tokens raw until filled. This is exactly the kind of destruction/behavior disclosure that lets an agent anticipate data loss.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action, followed by the critical data-loss warning and the workflow pointer. No filler; every sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-output-schema mutation tool this covers the essentials: what changes, what is lost, and how to re-fill. It omits permission/auth requirements and reversibility, but the key agent-relevant behaviors are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 17% (just `index`), so the description carries most of the burden. It adds real meaning for `text` (slot tokens sourced from uichemy_template_slots), but `kind`, `variant`, `projectId`, and `pageName` — including how `kind`/`variant` select the template — remain undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Swap the layout rendering at one position — same slot, different template'), which is precise enough to separate it from uichemy_add_section and uichemy_remove_section by implication. It does not explicitly name those siblings, so differentiation is inferential 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear usage context (replacing at an existing position rather than adding/removing) and a concrete procedural step: call uichemy_template_slots for the new layout and pass `text`. It stops short of explicitly naming the alternative tools or stating when-not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_save_sectionAInspect
Save one section — its layout AND its copy, pictures, videos and per-button / per-badge choices — so it can be put into any other project with uichemy_insert_saved_section. Saved to this account; uichemy_list_saved_sections shows them. Library layouts only: an AI or code section cannot be saved.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | What to call it. Default: page + section. | |
| index | Yes | 1-based, as uichemy_get_page lists them. | |
| pageName | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare write semantics (readOnlyHint=false, destructiveHint=false, openWorldHint=false), and the description usefully adds persistence scope ('Saved to this account') and the eligibility restriction (library layouts only). It does not disclose what happens on a name collision, overwrite behavior, or whether saving is idempotent, which is the main remaining gap for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the action and the payload, followed by the destination and the restriction. No filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a save tool with annotations present and no output schema, the description covers what is saved, where it lives, and what cannot be saved. It leaves open name-collision/duplicate behavior and the meaning of the required projectId/pageName/index triple beyond what the schema states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: name and index are documented in the schema, but pageName and projectId are bare strings with no explanation anywhere. The description never mentions any parameter, so it does not compensate for the coverage gap at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (save) and resource (one section), and enumerates exactly what is captured: layout plus copy, pictures, videos and per-button/per-badge choices. It also distinguishes itself from neighbors by naming the consuming tool (uichemy_insert_saved_section), so an agent can tell it apart from add_section, duplicate_section or set_global_section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the use case (reuse in any other project), the follow-up tool (uichemy_insert_saved_section), the inspection tool (uichemy_list_saved_sections), and an explicit when-not exclusion: 'an AI or code section cannot be saved.' That is a complete routing set for this operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_search_layoutsARead-onlyInspect
Find layouts by DESCRIBING what you want — "a hero with a big photo and one line of copy", "a pricing table for three plans". This is the semantic search the app's own layout selection uses, matched against the labelling team's descriptions of each layout. Prefer it to uichemy_find_templates when the need is a feeling rather than a field: find_templates filters on exact values (2 columns, photo, airy) and never leaves the machine; this one understands the sentence and needs Label Studio to answer. Hits the library cannot render are dropped, so what comes back is pickable.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Narrow to one section kind. | |
| limit | No | ||
| query | Yes | What the section should be — "testimonials as a carousel with photos". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive), and the description adds context they cannot: it requires Label Studio to answer, it matches against the labelling team's own layout descriptions, and non-renderable hits are dropped so every returned hit is pickable. That is real operational and result-quality disclosure beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with an imperative that states the core behavior, then example queries, then the sibling comparison, then the dependency caveat — each sentence carries information. It runs slightly long with the parenthetical style, but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description's note that returned layouts are renderable/pickable is a useful stand-in. The Label Studio dependency is disclosed, which matters for latency/failure expectations. It stops short of explaining result shape or how hits feed downstream tools like uichemy_add_section, but it is otherwise complete for a 3-parameter search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% and the description reinforces the key `query` parameter with natural-language examples ("a hero with a big photo and one line of copy"). However, it says nothing about `kind` or the 1-25 `limit`, leaving a third of the parameters documented only by the schema. Adequate but with a clear gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource ("Find layouts") plus the mechanism (semantic search) and the exact input style ("by DESCRIBING what you want"), with two concrete example queries. It also names the sibling it must be distinguished from (uichemy_find_templates), so an agent can select it without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing rule: "Prefer it to uichemy_find_templates when the need is a feeling rather than a field," followed by the differentiator (free-text semantics vs. exact-value filters). It states both the when and the when-not, which is the strongest form of guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_badge_designDestructiveInspect
Make ONE badge louder or quieter — Outline, Solid, Soft, Dot or Underline. The site-wide badge look is a separate thing; this is "this particular eyebrow should stand out". The key is the badge's own text slot, which uichemy_get_page lists against it, and which the exported site resolves too. A key belongs to the TEMPLATE, so a layout used on three pages changes on all three. Pass design: 0 to put it back to the site-wide design.
| Name | Required | Description | Default |
|---|---|---|---|
| design | Yes | 1 Outline · 2 Solid · 3 Soft · 4 Dot · 5 Underline · 0 to reset. | |
| badgeKey | Yes | A text_… key, from uichemy_get_page. | |
| projectId | Yes |
uichemy_set_badge_styleADestructiveInspect
The site-wide badge look — the Style Guide's Badges panel: size, corner radius, whether badges show their icon, and the design (1 Outline · 2 Solid · 3 Soft · 4 Dot · 5 Underline). uichemy_set_badge_design overrides ONE badge on top of this. design: null clears the pick, which leaves every badge as its layout drew it.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | ||
| design | No | ||
| radius | No | 0 Square · 6 Slight · 12 Rounded · 9999 Pill. | |
| projectId | Yes | ||
| displayIcon | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known; the description adds the site-wide blast radius and the fact that design:null reverts badges to their layout defaults, which is genuinely useful. However it never says whether omitted fields are left unchanged, whether the change is reversible, or that it overwrites existing site-wide styling everywhere.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences that lead with the scope and the affected panel, then the sibling distinction, then the reset behavior. Dense and free of boilerplate, though the final clause about null sits after the sibling reference rather than with the design explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description makes clear what is affected (every badge site-wide) and what a reset does, which is the essential return-side context. The main omission is partial-update semantics — whether supplying only projectId plus one field leaves the others untouched — for a destructive site-wide mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 20% schema description coverage, the description does the heavy lifting for the most opaque parameter: it decodes design as '1 Outline · 2 Solid · 3 Soft · 4 Dot · 5 Underline' plus the null semantics, which the schema's bare integer range does not convey. size (S/M/L) and displayIcon (Yes/No) are self-evident enums and radius is already described in the schema, so remaining gaps are minor.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('the site-wide badge look — the Style Guide's Badges panel') and enumerates the exact aspects controlled: size, corner radius, icon display, design. It explicitly contrasts with uichemy_set_badge_design, so the agent can separate site-wide styling from single-badge overrides without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'uichemy_set_badge_design overrides ONE badge on top of this' gives a clear routing rule between the two related tools, and the null-clears note explains a reset case. It stops short of stating negative conditions (e.g. when not to touch the style kit at all) or prerequisites, so it's strong but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_button_designADestructiveInspect
Choose the button design, corner radius, size, icon and LABEL COLOUR — the Style Guide's Buttons panel. On an imported project this is what hands the site's buttons over to our design system — until it is called, their buttons stay theirs. Pass design: null to give them back ("keep the site's own look").
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | ||
| design | No | 1-9, or null to clear the pick. | |
| radius | No | Corner radius in px. | |
| projectId | Yes | ||
| labelColor | No | The site-wide label ink. auto keeps the contrast the palette derives per role. | |
| displayIcon | No | Whether buttons show their icon. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, and the description reinforces this with concrete, non-obvious behavior: calling it overrides the imported site's own buttons, and design: null restores 'the site's own look.' That is meaningful pre-call context about what gets overwritten and how to undo it, beyond what the annotations declare. It does not cover persistence, scope, or auth, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in the first clause, then the imported-project behavior, then the revert instruction — a logical order. Three sentences with modest stylistic padding ('hands the site's buttons over to our design system'), but nothing wasteful enough to penalize.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-param mutation with destructiveHint and no output schema, the description covers the essential agent needs: what it changes, its effect on imported projects, and how to revert. Missing context about the required projectId and auth/persistence, but the annotations carry the safety profile, so the gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the schema already documents design (1-9/null), radius (px), and labelColor (site-wide ink). The description mainly restates those fields; its only added nuance, 'design: null to give them back,' paraphrases the schema's own 'null to clear the pick.' Marginal value over structured data, so a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete action ('Choose the button design...') and enumerates the exact adjustable facets — design, corner radius, size, icon, label colour — plus its location ('the Style Guide's Buttons panel'). It is clearly a styling tool, but it never distinguishes itself from the adjacent sibling uichemy_set_button_role, so it falls short of the 5 bar for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives real context for when it matters: on an imported project it hands the site's buttons over to the design system, and 'until it is called, their buttons stay theirs.' It also explains how to revert (design: null). It stops short of naming an explicit alternative or when-not-to-use condition, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_button_roleADestructiveInspect
Make ONE button primary, secondary or a plain link — the per-button control, not the site-wide button design uichemy_set_button_design sets. The key is the button's own label slot (text_…), or its icon slot for an icon-only button; uichemy_get_page lists both against each button. That key is what the exported site resolves too, so this reaches WordPress and not just the canvas. A key belongs to the TEMPLATE, so the same button in a layout used on three pages changes on all three — the same way per-element text styling already behaves. Pass role: "reset" to put it back to whatever the template paints.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | "tertiary" is the one the panel calls Link. | |
| buttonKey | Yes | A text_… or icon_url_… key, from uichemy_get_page. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and readOnlyHint=false, and the description goes further by disclosing that a key belongs to the TEMPLATE so one change propagates to every page using that layout, and that the change reaches the exported WordPress site, not just the canvas. Those are exactly the mutation side-effects an agent needs; return format is the only omission, which the absence of an output schema makes minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, all carrying load, with the one-vs-site-wide distinction front-loaded. It is on the dense side but nothing is wasted and the ordering prioritizes the disambiguation first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param mutation tool with no output schema, the description covers what it mutates, where the key comes from, what scope the change applies to, and how to revert it. Only projectId's role and the persistence/export timing are left unstated, which are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the description compensates: it explains that buttonKey is the button's own text_… or icon_url_… slot key sourced from uichemy_get_page, and clarifies role semantics. projectId is left implicit, but the key-sourcing detail is the piece an agent would otherwise get wrong.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (set one button's role) and immediately differentiates from the sibling uichemy_set_button_design, which is the site-wide design. An agent can distinguish the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says this is the per-button control rather than the site-wide one, tells the agent where to get the key (uichemy_get_page lists label/icon slots) and names reset as the undo path. When-to-use and the alternative are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_card_designDestructiveInspect
Choose the card design and corner radius. Same contract as the buttons: on an imported project the site's cards stay theirs until this is called.
| Name | Required | Description | Default |
|---|---|---|---|
| design | Yes | 1-6, or null to give the cards back to the site's own look. | |
| radius | No | ||
| projectId | Yes |
uichemy_set_field_designBDestructiveInspect
The form-field look — the Style Guide's field control (what "Randomize fields" picks from): design 1 Soft fill · 2 Outlined white · 3 Heavy border · 4 Offset shadow · 5 Filled grey · 6 Pill outlined · 7 Icon prefixed · 8 Borderless; corner radius; whether fields show their leading icon. design: null clears the pick.
| Name | Required | Description | Default |
|---|---|---|---|
| design | No | ||
| radius | No | ||
| projectId | Yes | ||
| displayIcon | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this mutates state. The description adds value by explaining the payload values and that null resets the design, but says nothing about scope of impact (project-wide style guide?), persistence, or what happens to radius/displayIcon when omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence, front-loaded with the tool's purpose before the value legend. The middot-separated list is compact and every clause earns its place; the em-dash structure is slightly heavy but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param mutation tool with no output schema and destructive annotations, the description covers the primary parameter well and notes the reset behavior, but leaves the semantics and valid ranges of radius and displayIcon to the schema and omits any statement about project scoping or the result of the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load. It does an excellent job for 'design' by mapping integers 1-8 to concrete looks and explaining null-resets, which the schema cannot convey. However 'radius' (allowed 0/4/8/999) and 'displayIcon' (Yes/No) only get vague glosses, leaving half the parameters underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('the form-field look', the Style Guide's field control) and distinguishes itself within the set_field_* family by scoping to form fields. The enumeration of the eight design values makes the tool's effect concrete, though it never explicitly contrasts itself with siblings like set_button_design or set_badge_design.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the agent learns which design integer maps to which look, and that 'design: null clears the pick' (a reset path). There is no explicit when-to-use/when-not or prerequisite guidance, so context must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_fontsADestructiveInspect
Set the heading and/or body font. On an imported project only the control you change is applied — changing the heading face leaves their body face and their weight, case and tracking exactly as the site had them.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| heading | No | A Google Font family name. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false. The description goes beyond them by disclosing the scope of mutation on imported projects: only the changed control is applied and body face/weight/case/tracking are left intact. That is genuinely useful side-effect context, though it still doesn't fully explain what 'destructive' means for a fresh (non-imported) project.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and followed by the imported-project caveat. Nothing is padded, though the second sentence is dense and could be split for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param destructive mutation with no output schema, the description covers the important imported-project behavior but leaves the default (new project) behavior, parameter formats, and return/confirmation behavior unaddressed. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% — just the heading param is documented ('A Google Font family name'). The description clarifies that heading and body are the two independent axes being set, adding meaning over the bare schema, but it does not explain what body accepts (same Google Font family format?) or what projectId selects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Set the heading and/or body font.' An agent can distinguish this from nearby siblings like set_type_scale (scale, not face) or set_text_style. It stops short of naming an alternative, but the resource is precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives real context about how the change applies on imported projects, which helps an agent decide whether this call is safe. However, there is no explicit when-to-use / when-not guidance relative to set_type_scale, set_theme, or set_text_style, so routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_global_sectionADestructiveInspect
Share one section across pages — the editor's "Attach to a global". Every page's section of that kind renders the same layout, and because copy and images belong to the layout, they share the same words and pictures too: write them once. Globalness in the editor is per KIND across the whole site, so pages must cover every page that has the kind (or be "all"). Pass variant to put every instance on one layout first; omitted, they must already agree. global: false detaches the kind so instances can differ again.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Section kind, e.g. navbar, footer, cta. | |
| pages | No | Default "all". | |
| global | No | Default true. | |
| variant | No | Layout every instance should render. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag readOnlyHint=false and destructiveHint=true; the description goes well beyond them by disclosing the non-obvious consequence that copy and images are shared because they belong to the layout, plus the per-KIND site-wide scoping rule and the detach behavior of global:false. It does not mention reversibility or permissions, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and consequence, then moves into parameter guidance. Dense but every sentence earns its place; slightly long clauses keep it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, 5-param mutation tool with no output schema, the description covers mechanics, scope, and side effects well. Remaining gaps (failure behavior, permission needs) are minor against the destructiveHint annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 80% schema coverage the baseline is 3, but the description adds real meaning to three of five params: `pages` must cover all pages of the kind (or "all"), `variant` forces a single layout first (else they must already agree), and global:false detaches. This materially extends the terse schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (share one section across pages) and anchors it to the editor concept "Attach to a global", making the effect immediately legible. It clearly distinguishes itself from style/mutation siblings like set_section_style or replace_section by describing cross-page coupling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives strong operational context: `pages` must cover every page that has the kind (or "all"), `variant` normalizes instances first, and global:false detaches. It stops short of naming sibling alternatives or explicit when-not-to-use guidance, so it lands at 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_iconADestructiveInspect
Replace one icon. The id is the authored slot label — icon_url_…, from uichemy_list_icons — or a key uichemy_list_icon_overrides already shows. An authored label is a slot in the TEMPLATE, so a layout that draws its cards from one loop carries the same label on every card and this changes all of them; uichemy_list_icons says how many. The other key scheme is POSITIONAL (svg-<sectionId>-<n>), minted by auto-match from the rendered page and not derivable here. Writing a label while positional overrides exist is refused: the pair fights every frame and shows as the icon flickering between old and new.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | An icon url, a data: URI, or inline SVG. | |
| iconId | Yes | An icon_url_… label from uichemy_list_icons, or a key from uichemy_list_icon_overrides. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the destructiveHint=true annotation by disclosing the actual blast radius: a template slot label is shared across every card rendered by the loop, so one call mutates all of them. It also discloses a hard failure mode (refused writes when positional overrides exist) and the user-visible symptom (flicker) that motivates it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the action and the id-source rule before the caveats. Dense but nearly every clause carries meaning; the parenthetical key-format detail is the only part that could be trimmed without losing decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, closed-world mutation with no output schema, the description covers id provenance, aliasing effects and failure conditions. It does not say what a successful call returns or whether the override list changes, which is the one remaining gap given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the schema already spells out value formats and the iconId sources, yet the description still adds real semantics: the two competing key schemes, that positional keys are minted by auto-match and are not derivable client-side. projectId remains undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Replace one icon') and immediately scopes it away from siblings by explaining that iconId is a template slot label rather than a per-card instance, which separates it from set_icon_style, set_icon_color and clear_icon_override.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to uichemy_list_icons and uichemy_list_icon_overrides as the two legal sources of an id, and states the refusal condition (authored label present while positional overrides exist). It stops short of telling the agent what to do instead after that refusal (e.g. clear overrides first).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_icon_colorADestructiveInspect
Colour icons — the Icon panel's colour control. One colour per icon key; the key is an authored label (icon_url_…, from uichemy_list_icons — every instance of that slot) or a key uichemy_list_icon_overrides shows. Colour is a role (primary, accent, titleLight …), { role, step } on its ramp, a #hex, or "auto" to follow the section again. Stored as the hex it resolves to, exactly as the panel stores a swatch pick, so it is painted on the canvas and in the export alike — and it does not follow a later palette change.
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | ||
| iconId | No | One icon key. | |
| iconIds | No | Several keys, one colour. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds genuine behavioral context beyond the annotations: the colour is captured as the resolved hex, painted on canvas and export alike, and explicitly does NOT follow a later palette change. That snapshot semantics is important and not derivable from destructiveHint=true. It stops short of stating that an existing colour is overwritten.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, but the body is a dense run-on of em-dash clauses that is harder to parse than it needs to be for a colour setter. The content is relevant, but a tighter breakdown of colour forms and key sources would be more scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with no output schema, the description supplies the colour vocabulary, the key namespace, and the persistence behavior an agent needs before invoking. Missing only the overwrite consequence and confirmation of return/response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% and the description compensates well: it enumerates the accepted colour forms (role name, {role, step} on the ramp, #hex, or "auto" to re-follow the section) and explains iconId vs. iconIds semantics (one key vs. several keys, one colour). projectId remains unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Colour icons — the Icon panel's colour control') and pins down the key domain (authored icon_url_ keys vs. override keys). It clearly differs in scope from set_icon_style or set_icon, though it doesn't explicitly contrast with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Points to uichemy_list_icons and uichemy_list_icon_overrides as the source of valid keys, which implies when the call is applicable. However it never states when to prefer this over set_icon_style or clear_icon_override, so routing guidance is only inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_icon_styleADestructiveInspect
The site-wide icon style for auto-matched icons — outline or filled. One choice for the whole site; hand-picked icons are left alone.
| Name | Required | Description | Default |
|---|---|---|---|
| style | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds meaningful nuance beyond that by disclosing the blast radius — only auto-matched icons change, hand-picked ones are untouched — which is exactly the kind of context an agent needs before mutating site-wide styling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; the scope and allowed values are front-loaded, and the exclusion of hand-picked icons follows immediately as the qualifier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no output schema, the description covers what changes and what is protected. Minor gaps remain: it doesn't say whether the change takes effect immediately or requires a publish step, and projectId is undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does spell out the style values ('outline or filled'), which maps to the enum, but projectId is left completely unexplained in both the schema and the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific setting (site-wide icon style for auto-matched icons) and enumerates the two allowed values, outline or filled. It also implicitly separates this tool from per-icon siblings such as set_icon by noting that hand-picked icons are left alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear scope context: one choice applies to the whole site, and manually chosen icons are excluded. However, it never names an alternative tool (e.g. set_icon or clear_icon_override) or states when a caller should prefer this global setting over per-icon control.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_image_displayADestructiveInspect
How a picture SITS in its slot: its aspect ratio, which part of it stays visible when the slot is a different shape (the focal point), and whether it is darkened for text to sit on. Alt text is stored here too. THESE ARE CANVAS SETTINGS. The WordPress export reads the overlay flag and nothing else, so a ratio or a position set here is not in the exported site — to change the picture itself, use uichemy_crop_image, which bakes the crop into a new file. Alt text is the exception: the canvas writes it onto the picture and the WordPress and Astro exports ship it as the img alt. uichemy_validate reports the pictures that have none.
| Name | Required | Description | Default |
|---|---|---|---|
| alt | No | What the picture shows, for a screen reader. | |
| slot | Yes | An image slot token — image_url_…, from uichemy_get_page. | |
| ratio | No | ||
| overlay | No | Darken the picture so text reads on it. | |
| position | No | Which part of the picture to keep when the slot crops it. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing export semantics: only the overlay flag reaches the WordPress export, ratio/position are canvas-only, and alt text propagates to WordPress and Astro exports. However, despite destructiveHint=true it never states what a call destroys or whether omitted fields are reset, leaving the destructive trait itself unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose before the export caveats, and each sentence carries non-redundant information about export behavior. It is dense and slightly long, with capitalized emphasis, but nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and the description covers the non-obvious export behavior and alt-text propagation thoroughly. The remaining gap is the destructive/overwrite behavior implied by annotations but never spelled out, which an agent mutating existing settings would want to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 67% schema coverage, the description usefully explains the two undocumented params (ratio as aspect ratio, position as the focal point kept when the slot crops) and adds export meaning to overlay and alt beyond the schema's field-level text. It adds genuine semantic value rather than restating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource (set how a picture sits in its slot) and enumerates exactly which display aspects it controls: aspect ratio, focal point/crop position, overlay darkening, and alt text. It also distinguishes itself from uichemy_crop_image by naming that sibling, so an agent can route correctly 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when this tool is the right one versus the alternative: use uichemy_crop_image to change the picture itself, and use uichemy_validate to find pictures missing alt text. It also scopes usage by export target (canvas-only settings vs the overlay flag the WordPress export reads), which is exactly the routing guidance an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_imagesADestructiveInspect
Put pictures in image slots. Slot tokens come from uichemy_template_slots; urls come from uichemy_upload_image, or any https url that will still be there tomorrow.
| Name | Required | Description | Default |
|---|---|---|---|
| images | Yes | { "image_url_v9y4k1": "https://…" } | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=false, so the safety profile is covered. The description adds a genuine constraint — the URL must persist ('will still be there tomorrow') — but says nothing about what happens to existing images, auth needs, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the action front-loaded and no filler. The colloquial 'will still be there tomorrow' is slightly informal but conveys a concrete requirement efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, nested-object mutation with no output schema, the description covers input sourcing well but omits what a mutation replaces, whether slots can be cleared, and the effect of an invalid url. Adequate but with visible gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only the images object is documented), so the description must compensate, and it does: it explains that the map keys are slot tokens sourced from uichemy_template_slots and values are urls from uichemy_upload_image or any https url. projectId remains unexplained, holding it below 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (put pictures into image slots) that an agent can distinguish from siblings like set_logo or upload_image. It doesn't explicitly mark the boundary against set_image_display or edit_image_masked, but the action and target are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It routes the agent to the correct prerequisite tools: slot tokens from uichemy_template_slots and urls from uichemy_upload_image. That is real when-and-where guidance, though it gives no exclusion cases (e.g. use set_logo instead for logos).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_linkADestructiveInspect
Point a button or text link somewhere — the editor's Link control. The key is the link's label slot (text_…) or, for an icon-only link, its icon slot (icon_url_…); uichemy_list_links lists them. Takes https://…, a site path (/contact), #anchor, mailto: or tel:. An empty href puts back the template's own. A key belongs to the LAYOUT, so a navbar used on every page gets the link on every page. The WordPress and Astro exports ship it.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| href | Yes | Destination, or "" to clear. | |
| newTab | No | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag mutation and destructiveHint=true; the description adds non-obvious behavior: an empty href restores the template's own link, and a key belongs to the LAYOUT so a shared navbar propagates the change to every page. It stops short of stating that an existing link is overwritten or what projectId scoping means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the core action leads, followed by key semantics, accepted href formats, edge case, and layout scope. Every sentence carries distinct information, though it is on the long side.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating, no-output-schema tool, the definition covers the action, key provenance, valid value formats, and the layout-wide blast radius. The remaining gap is the undocumented `newTab` parameter and the exact overwrite semantics behind destructiveHint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 25% schema coverage, the description does heavy lifting: it defines the `key` slot convention and enumerates accepted href forms (https://, /path, #anchor, mailto:, tel:, empty-to-restore). However, `newTab` and `projectId` remain undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Point a button or text link somewhere') and frames it as the editor's Link control, which no sibling covers. It distinguishes itself from the listing tool by pointing to uichemy_list_links for key discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the two key shapes (label slot `text_…` vs icon-only icon slot `icon_url_…`) and routes the agent to uichemy_list_links to find them. It gives clear context but does not state explicit exclusions or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_logoADestructiveInspect
The site's logo, painted onto every navbar and footer (and coming-soon / 404 mark) that carries one — or, with slot, ONE client/partner logo slot. Pass a LIGHT-BACKGROUND logo as url and, when the brand has one, a light-coloured mark as darkUrl. Which one a slot gets is decided by the band its section is ACTUALLY painted — the section style (a dark nav + hero, a dark footer), a background you picked, a dark bar inside the layout — the same answer the canvas reaches, and that per-slot choice is what the export ships. A single dark logo on a dark navbar is invisible; pass the pair. scale sizes the logo per area exactly like the panel's slider (0.5-2, 1 = as designed). PARTNER LOGOS: a logo_url_… slot in a content section labelled as a client or partner mark (a 'trusted by' row) holds that client's logo, never the site's. uichemy_get_logo lists them; pass slot + url to set one. There is no logo COLOUR to set: the canvas adapts each shape of an uploaded SVG to its section, and no stored colour is read by the canvas or the export. uichemy_upload_image will give you a url for a picture you hold.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The logo for light backgrounds — or, with `slot`, the partner's logo. | |
| slot | No | ONE partner/client logo slot (from uichemy_get_logo). With it, `url` goes in that slot only. | |
| scale | No | Logo size per area, as the slider sets it. 1 = the layout's own size. | |
| theme | No | Which of the two the logo panel shows as current. | |
| darkUrl | No | A light-coloured version, for sections painted dark. Defaults to `url`. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true/readOnlyHint=false, so the safety profile is covered. The description adds substantial behavioral context beyond them: darkUrl defaults to url, the light/dark choice is driven by the section's ACTUAL paint and is what the export ships, and no stored colour is read by canvas or export. It never mentions that an existing logo is overwritten, which is the one gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and default scope are front-loaded in the first clause, and the partner-logo and colour exclusions each earn their space. It is dense and dash-heavy, with some phrasing ('the same answer the canvas reaches, and that per-slot choice is what the export ships') that could be tightened, but little is pure padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter, nested-object tool with no output schema, the description covers the semantics that matter most (site vs partner slot, light/dark pairing, scale, colour exclusion). The `theme` parameter is not explained in the description, but the schema handles it and the remaining surface is well covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83% (baseline 3), and the description meaningfully extends it: `darkUrl` is described as the light-coloured mark for dark-painted sections defaulting to `url`, `scale` is framed as the panel slider (0.5-2, 1 = as designed), and `slot` is defined as a single client/partner slot from uichemy_get_logo. Only `theme` is left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('set' the site's logo) and immediately scopes it: by default it paints the logo on every navbar/footer/404 mark, or with `slot` it targets ONE partner logo slot. It cleanly distinguishes itself from uichemy_get_logo (which lists slots) and uichemy_upload_image (which yields a url), so an agent can tell it apart from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing: use `slot` only for a content section labelled as a client/partner mark, use uichemy_get_logo to list slots, and uichemy_upload_image to obtain a url. It also states an exclusion ('There is no logo COLOUR to set'). It stops short of a crisp when-not-to-use statement, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_page_categoryAInspect
Move a page to another group of the sitemap — Core, Blog, Legal, Site Extras or Shop — IN PLACE. Its id, its sections' ids, layouts, copy, backgrounds and slug are untouched; only the group changes. The home page is the root and has no group to move.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | ||
| pageName | Yes | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare non-readonly, non-destructive, non-open-world; the description goes further by promising an in-place move that preserves ids, sections, layouts, copy, backgrounds, and slug. That is exactly the reassurance an agent needs before a mutation. It does not state permissions or failure behavior, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the action and the enumeration of groups, with the preservation guarantee and the home-page caveat following. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-required-param mutation with no output schema and thin annotations, the description covers the scope of change, the invariants, and the one edge case (home page). It omits projectId semantics and any error behavior, but is otherwise sufficient to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry meaning: it does map the category enum to readable labels (Core, Blog, Legal, Site Extras, Shop) and implies pageName via 'a page'. However, projectId is never addressed and no parameter format hints are given, leaving gaps for a 0%-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (move a page to another sitemap group) and even enumerates the valid groups in prose. It is clearly distinguishable from siblings like reorder_pages, rename_page, or set_page_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description of the effect and it gives one exclusion (the home page is the root and has no group to move), but it never names an alternative tool or states when this should be preferred over reorder_pages or set_page_settings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_page_settingsADestructiveInspect
Set one page's Settings — the editor's Page Settings screen: slug, meta title, meta description, canonical URL, language, social image, "Show this page in Google", follow links, "Ask AI crawlers not to use this page", image size in search results, longest text preview, and custom code. Only the fields passed change; null or "" clears one. The WordPress and Astro exports ship these.
| Name | Required | Description | Default |
|---|---|---|---|
| og | No | Social preview. Shares use the meta title/description; only the image is stored. | |
| slug | No | URL path segment, e.g. "about-us". Not on the home page. null clears. | |
| language | No | A WordPress locale the Settings screen offers (en_US, de_DE, pt_BR…). null = site language. | |
| pageName | Yes | ||
| canonical | No | Absolute http(s) URL. | |
| indexable | No | "Show this page in Google". false = noindex. | |
| metaTitle | No | ||
| noArchive | No | ||
| noSnippet | No | ||
| projectId | Yes | ||
| aiCrawlers | No | "block" = ask AI crawlers not to use this page. | |
| customCode | No | ||
| followLinks | No | false = nofollow. | |
| imagePreview | No | Image size in search results. | |
| noImageIndex | No | ||
| metaDescription | No | ||
| textPreviewLength | No | Longest text preview in characters; -1 no limit, 0 none. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and readOnlyHint=false, so the write nature is already covered; the description adds the important patch semantics that only passed fields change and that null/"" clears a value, which is real behavioral information beyond the annotations. It does not mention permission requirements or whether changes are reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph that front-loads the action and the patch/clear rule, then lists the field surface. The long UI-label enumeration is slightly verbose but earns its place by mapping screen labels to parameter names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter mutation tool with no output schema and destructiveHint=true, the description covers the mutating scope, the partial-update contract, and the clearing convention. It omits edge cases (slug collisions, whether settings apply only after export/publish) but is largely sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 53%, but the description compensates by mapping UI labels to parameters ("Show this page in Google"→indexable, "Ask AI crawlers not to use this page"→aiCrawlers, "image size in search results"→imagePreview, "longest text preview"→textPreviewLength) and by explaining null-clearing. Several parameters (metaTitle, metaDescription, noArchive, noSnippet, noImageIndex) remain undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Set one page's Settings") and enumerates the exact field surface being mutated (slug, meta title/description, canonical, language, social image, indexability, crawler directives, custom code). This clearly distinguishes it from the read-side sibling uichemy_get_page_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage ("Set one page's Settings") and gives the patch contract, but never names the alternative read tool or states when not to use this mutating call. An agent must infer that get_page_settings is the read counterpart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_paletteADestructiveInspect
Set the project's colour palette, and the controls that sit beside it in the editor. Hex values only. The colour roles (uichemy_get_colors) are derived in the same write, so role-based tools work straight after it with no canvas open. saturation is the palette's tint slider (0-100): it tints the title and description inks with the main colour, exactly as the slider does; titleColor / descriptionColor pin those two inks instead. On an IMPORTED project this also repaints the site's own stylesheet, because its colours are bound to these slots — call uichemy_get_project first and tell the user before doing it.
| Name | Required | Description | Default |
|---|---|---|---|
| bg | No | ||
| accent | No | ||
| extra1 | No | ||
| extra2 | No | ||
| primary | No | ||
| projectId | Yes | ||
| saturation | No | The tint slider, 0-100. | |
| titleColor | No | #hex — pins the title ink. | |
| descriptionColor | No | #hex — pins the description ink. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the destructiveHint=true annotation by naming the blast radius: on imported projects it repaints the site's own stylesheet because colours are bound to these slots. It also discloses a useful side effect (colour roles are derived in the same write, so role-based tools work with no canvas open). This is exactly the extra context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, then the format constraint, then side effects, then the imported-project caveat in a sensible order. It is dense but nearly every clause carries required information; the middle sentence about saturation is long yet earns its length by disambiguating three parameters at once.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With nine parameters, no output schema, and sparse schema descriptions, the description supplies the missing behavioural and side-effect context an agent needs before a destructive write. Only the precise meaning of the extra colour slots is left to name inference, which is a minor residual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description has to compensate, and it explains the genuinely ambiguous parameters: saturation as the tint slider with its effect on title/description inks, and titleColor/descriptionColor as pins for those inks. The remaining slots (bg, accent, primary, extra1/extra2) are self-describing by name, and 'Hex values only' supplies the format constraint the schema omits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Set the project's colour palette') plus the editor controls it governs, so an agent reading only the name and description can tell it apart from adjacent writers like set_icon_color or set_text_style. It does not explicitly differentiate itself from the sibling uichemy_set_theme, which is the most plausible confusable tool, keeping it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete conditional workflow: on an imported project, call uichemy_get_project first and warn the user before invoking. It also notes the follow-on relationship with uichemy_get_colors. It stops short of saying when to choose this over set_theme, so it is clear context rather than full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_section_backgroundADestructiveInspect
One section's background band — its colour, the dark scrim over it, and how tall it is. The key is one uichemy_list_section_backgrounds shows: it identifies the template, the section and its variant, so it cannot be guessed. COLOUR: three fields move together — what the section is painted, the override that survives a section-style recompute, and the DERIVED swatch list whose token names the canvas and the export both read. Writing the first two alone is the 'colour lands in the swatch but the section stays black' fault. SCRIM: for a section whose background is a picture. "black" darkens it so text reads, "off" removes a tint the template painted itself, and "reset" leaves the template's own tint alone — 44 layouts draw one, and off is not the same as never asked. HEIGHT: a multiplier of the page's vertical rhythm, not pixels — 1.5 is half again as tall at every screen width, 1 puts the section back on the global rhythm. There is no gradient or pattern background: the product has neither, on this side or in the editor. A picture background is an image slot in the layout — set it with uichemy_set_images.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | No | #RRGGBB. | |
| color | No | Instead of hex: a role ("bg", "accent", "bgLight2", "bgDark1" …) or { role, step } on its ramp — the picker's swatches. uichemy_list_section_backgrounds with shades: true lists every ramp. | |
| overlay | No | "reset" leaves the template's own tint as its author drew it. | |
| padding | No | A multiplier of the section rhythm. 1 resets. | |
| projectId | Yes | ||
| sectionKey | Yes | A key from uichemy_list_section_backgrounds. | |
| overlayOpacity | No | How dark, for overlay "black" only. Omitted follows the site default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With destructiveHint=true already set, the description adds substantial behavioral context: the three colour fields must move together, the derived swatch feeds canvas and export, scrim modes have distinct meanings, and height is a rhythm multiplier rather than pixels.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well organized, front-loading the resource and then grouping semantics under COLOUR, SCRIM, and HEIGHT. Every sentence carries operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers the key source, mutation semantics, product limitations, and related tools. It is complete enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already high at 86%, but the description still adds real meaning beyond the schema: colour must update the derived swatch or the section stays black, reset differs from off, and height is a multiplier of vertical rhythm.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact resource — one section's background band — and breaks it into colour, scrim, and height. It clearly distinguishes this from picture backgrounds by routing those to uichemy_set_images.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives strong routing: get the sectionKey from uichemy_list_section_backgrounds, and use uichemy_set_images for picture backgrounds. It does not explicitly mention uichemy_remove_section_background as the removal alternative, so the when-not case is slightly incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_section_styleBDestructiveInspect
How sections alternate their backgrounds across the page — the Section Style control. These three are what the panel ships; the stored field accepts more, but nothing offers them and they are not drawn in the editor. On an imported project this takes the site's own band backgrounds over, so say so first.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | subtle_01 Clean Light — every band light. subtle_02 Light + Dark Footer — light throughout, dark footer. zigzag_pure Pure Zigzag — alternating from the hero down. null clears the pick (an imported site keeps its own bands). | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and readOnlyHint=false, and the description usefully explains what is destroyed: on imported projects it overrides the site's own band backgrounds. It also discloses that the stored field accepts values beyond the three shipped ones. That is meaningful behavioral context beyond the annotations, though permission requirements are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, reasonably tight, but the opening sentence is indirect and reads more like a concept gloss than a front-loaded action statement. The most important operational warning (imported-project override) is buried at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive two-parameter mutation with no output schema, the description covers the destructive override well but leaves usage guidance and projectId semantics unaddressed. It is adequate but has visible gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% — the mode parameter is well documented in-schema (enum meanings plus null behavior), while projectId is not. The description adds that only three of the accepted stored-field values are offered by the panel, which reinforces the mode semantics but does not compensate for the undocumented projectId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description frames the tool as the 'Section Style control' governing how section backgrounds alternate, which conveys the concept but never states the action plainly (e.g. 'sets the section style for a project'). It does not clearly differentiate from siblings like uichemy_set_section_background or uichemy_list_section_backgrounds, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'On an imported project this takes the site's own band backgrounds over, so say so first' is a behavioral caveat rather than when-to-use guidance. There is no explicit statement of when to choose this over set_section_background or list_section_backgrounds, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_spacingBDestructiveInspect
The page's vertical rhythm and side gutter — the Spacing control. sectionY is the padding between sections, sectionX the gutter at the sides.
| Name | Required | Description | Default |
|---|---|---|---|
| sectionX | No | ||
| sectionY | No | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the agent knows this is a mutating, overwriting operation. The description adds the field semantics but nothing about scope (which page), persistence, permissions, or that existing spacing values are replaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the concept and then the field mapping. No filler, though it is perhaps a touch too terse given the missing scope detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive write tool with no output schema and 0% schema coverage, the description explains the two enum fields but omits the required projectId's role and the scope of the change. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning, and it does: sectionY is the padding between sections and sectionX the side gutter. That covers 2 of 3 params meaningfully; only projectId, which is required and scopes the write, goes unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (the page's vertical rhythm / side gutter, i.e. the Spacing control) and disambiguates the two main fields, so the agent can tell what is being configured. The verb is only implied by the tool name, and nothing distinguishes it from sibling setters like set_section_style or set_type_scale.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (e.g. that a project/page must already exist), and no routing to or away from alternatives. The agent gets no signal about when spacing should be set versus left alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_textADestructiveInspect
Replace the copy in one or more text slots. Get the slot tokens from uichemy_get_page — a token that is not on the page writes an override nothing renders. Copy longer than the slot's max (see uichemy_template_slots) is refused. OVERWRITES the current copy and does not keep the old wording: read it with uichemy_get_page first if the user may want it back.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | { "text_a1b2c3": "New headline" } | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, but the description goes further: it names the overwrite, states no undo/old copy is kept, warns that an off-page token silently writes an unrendered override, and notes length refusal. This is exactly the extra behavioral context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action and then the prerequisites/risks in order of importance. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-param destructive mutation with no output schema, the description covers prerequisites, cross-tool references, and failure modes. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% and only shows an example map value for 'text' while 'projectId' is undocumented. The description compensates by explaining what the map keys must be (slot tokens from uichemy_get_page) and where their limits come from, which adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Replace the copy in one or more text slots'), which cleanly separates it from siblings like uichemy_set_text_style, uichemy_get_text, and uichemy_set_link. An agent can identify this as the copy-writing tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes to uichemy_get_page for slot tokens and uichemy_template_slots for max length, and prescribes reading first when the user may want the old wording back. It also states the failure condition (invalid token, over-length copy) so the agent knows when the call will not do what it expects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_text_styleADestructiveInspect
Style ONE element — its alignment, size, colour, hover colour or semantic tag — keyed by the text_* slot its copy lives in (uichemy_get_page lists those, including badge labels). This is the Text panel, not the global scale: use uichemy_set_type_scale to move every heading at once. COLOUR takes a ROLE (primary, accent, extra1, extra2, titleLight, descriptionLight), which follows palette changes and the surface the text sits on; a RAMP SHADE { role, step } (0 is the lightest of the picker's ten); or a #hex. A shade or a hex is stored as that hex and does not follow a later palette change. hoverColorRole takes the same. A BUTTON label takes no per-element colour — in the editor either — because its ink belongs to the button's role; use uichemy_set_button_design labelColor. SIZE IS A SLOT ON THE GLOBAL SCALE — heading-lg, body-md — painted as a variable, so a resized element still ramps across breakpoints instead of pinning to one pixel value.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Semantic level. Stored for export; not painted on the canvas. | |
| align | No | ||
| sizeKey | No | heading-xs|sm|md|lg|xl|2xl|3xl|4xl|5xl, or body-sm|md|lg|xl. | |
| textKey | Yes | A `text_*` slot id, from uichemy_get_page. | |
| colorRole | No | A role ("primary", "titleLight" …), { role, step } for a ramp shade, or "#RRGGBB". uichemy_get_colors lists the roles. | |
| projectId | Yes | ||
| hoverColorRole | No | The colour on hover. Same forms as colorRole. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, but the description goes beyond them with persistence semantics: role colours follow palette changes and surface, whereas a ramp shade or hex is stored as that hex and will not follow a later palette change. That is the key behavioural distinction an agent needs. It does not state that existing styles are overwritten or what validation errors look like, keeping it just below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and keying are front-loaded in the first clause, and every subsequent sentence carries a distinct rule. It is dense and long-winded in places (multiple em-dash asides), but virtually no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-param mutation tool with no output schema, the description covers slot sourcing, colour form semantics, hover behaviour, size scale, and a cross-tool restriction. Missing only overwrite/error behaviour, which is a minor gap given the annotations already flag destructiveness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 71% schema coverage the schema names most params, yet the description adds semantics the schema lacks: the meaning of role vs {role, step} (step 0 = lightest of ten, stored as hex), that hex values break palette linkage, that sizeKey is a variable-painted global-scale slot, and that tag is export-only. Only `align` goes unelaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Style ONE element') and enumerates exactly the attributes it covers (alignment, size, colour, hover colour, semantic tag) with the keying mechanism (the `text_*` slot). It names the siblings it is not (uichemy_set_type_scale, uichemy_set_button_design), so an agent can distinguish it at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use uichemy_set_type_scale for global heading scale, uichemy_set_button_design labelColor for button ink, uichemy_get_page for slot ids, uichemy_get_colors for roles. It also spells out a when-not case ('A BUTTON label takes no per-element colour'), which is rare and valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_themeADestructiveInspect
Light or dark mode, and the section style (footerColorMode). The editor normally derives the theme from the page background — uichemy_set_palette does the same when bg changes — so set it here only to override that. footerColorMode: subtle_01 Clean Light · subtle_02 Light + Dark Footer · zigzag_pure Pure Zigzag. Call uichemy_create_canvas afterwards to repaint the section bands headlessly.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | ||
| projectId | Yes | ||
| footerColorMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds some context beyond them — the derivation/override semantics and the follow-up 'Call uichemy_create_canvas afterwards to repaint the section bands headlessly' — but never discloses what is destroyed or overwritten when the theme is forced, which is the key behavioral question for a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what the tool sets, then the usage caveat, then the enum legend and workflow hint. Mostly economical, with only minor redundancy in the set_palette aside; the fragmentary opening costs a little clarity but no real bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param mutation with no output schema, the description supplies purpose, override conditions, full enum semantics, and the required follow-up call. The main omission is any disclosure of what the destructive change actually destroys, which is the one gap an agent would care about.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden. It handles this well for the footerColorMode enum ('subtle_01 Clean Light · subtle_02 Light + Dark Footer · zigzag_pure Pure Zigzag') and implies theme values via 'Light or dark mode.' Only projectId is left undocumented, though its meaning is self-evident.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (theme = light/dark mode) and the secondary setting (footerColorMode section style), and explicitly distinguishes itself from uichemy_set_palette. It stops short of a clean verb+resource statement — the opening is a fragment — but an agent can still tell what it configures and how it differs from the sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Strong when-to-use guidance: it explains the theme is normally derived from the page background, notes uichemy_set_palette does the same on bg change, and says to 'set it here only to override that.' It names an alternative and the condition selecting it, though it gives no guidance about downstream effects of destructive changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_type_scaleADestructiveInspect
The typography controls beyond the font itself: size, weight, case, letter spacing and line height, for headings and body separately. On an IMPORTED project each of these is applied on its own — setting the heading weight leaves their case and tracking exactly as the site had them, so change only what was asked for.
| Name | Required | Description | Default |
|---|---|---|---|
| case | No | ||
| role | Yes | ||
| scale | No | Size multiplier — 1 is the design's own size. | |
| weight | No | 400, 500, 600, 700… | |
| leading | No | Line height as a multiple — 1.08 for headings, 1.6 for body. | |
| tracking | No | Letter spacing, in em. Often slightly negative. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as non-readonly, non-open-world, and destructive, so the description does not need to restate mutation. It adds useful behavioral context by explaining that on imported projects each typography property is applied independently and others remain unchanged, which helps an agent avoid over-editing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the controls and heading/body separation, and then adds the imported-project caveat. Every sentence adds useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive typography mutation tool with seven parameters and no output schema, the description covers the main controls, role separation, and imported-project behavior. It leaves some gaps around explicit alternatives and permission/reversibility expectations, but is otherwise sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 57%, so the description needs to compensate for undocumented parameters. It does this by mapping the conceptual controls (size, weight, case, letter spacing, line height) to the schema's scale, weight, case, tracking, and leading fields, and by clarifying that heading and body are managed separately via role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource and the exact typography controls it manages: size, weight, case, letter spacing, and line height, separately for headings and body. It also distinguishes this tool from font-selection by saying 'beyond the font itself,' though it does not explicitly name sibling alternatives such as set_fonts or set_text_style.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the imported-project note and the instruction to change only what was asked for, but there is no explicit when-to-use/when-not-to-use guidance or comparison to sibling typography tools. An agent can infer this is for targeted typography adjustments, but not the boundaries versus set_text_style or set_fonts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_set_videosADestructiveInspect
Put a clip in a slot. Two kinds of slot, and both are taken here: a VIDEO slot — video_url_…, the <video> a handful of layouts ship — and an IMAGE slot (image_url_…, portrait_image_url_…) turned into a video, which is the Image panel's 'Convert to Video': the picture stays as the poster underneath and the clip covers its exact box. Slot tokens come from uichemy_get_page or uichemy_template_slots. playback mirrors the Video panel for a converted image slot: startTime (seconds), preload, mobile ("poster" serves the still alone on phones) and overlay (0-100 % black over the clip). loop / muted / autoplay / controls are NOT settable there — a converted slot is decoration, so the engine always loops it muted with no controls and decides autoplay per surface; and it has no fit or ratio of its own, it takes the image slot's (uichemy_set_image_display). The panel stores no playback for a template video_url_… slot either, so none is accepted there. remove turns converted image slots back into pictures. An unset video_url slot is NOT broken — the canvas fills it from stock footage on first render.
| Name | Required | Description | Default |
|---|---|---|---|
| remove | No | Converted image slots to turn back into pictures. | |
| videos | No | { "video_url_e6v0a3": { "src": "https://…/clip.mp4", "poster": "https://…/still.jpg" }, "image_url_k2j4": { "src": "https://…/loop.mp4", "playback": { "mobile": "poster", "overlay": 30 } } } | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses which playback keys are non-settable on converted image slots, that the engine forces loop/muted/no-controls and picks autoplay per surface, that converted slots inherit the image slot's fit/ratio, that template video_url slots accept no playback, that `remove` reverts converted slots to pictures, and that unset video slots are filled from stock footage. This is exactly the extra context annotations can't carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then layers slot types and edge-case behavior in ordered sentences. Dense but largely earns its length; the nested parentheticals and one long compound sentence push it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no output schema and 67% schema coverage, the description supplies the missing semantics (slot tokens source, conversion behavior, non-settable keys, remove semantics, empty-slot fallback). An agent has what it needs to call this correctly without further lookups.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds real meaning to the nested `playback` object, defining startTime, preload, mobile ('poster' = still only on phones) and overlay (0-100% black), and explains `remove` maps to converting image slots back. Slight tension remains: the schema lists loop/muted/autoplay/controls/fit/ratio while the description says they are not settable here, which could confuse the exact payload, so not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Put a clip in a slot') and immediately distinguishes the two slot flavors it covers (VIDEO `video_url_…` vs IMAGE `image_url_…`/`portrait_image_url_…` converted to video). An agent can tell this apart from sibling setters like uichemy_set_images and uichemy_set_image_display without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to uichemy_get_page and uichemy_template_slots for slot tokens, and names uichemy_set_image_display as the owner of fit/ratio for converted slots. It explains context clearly but does not frame when NOT to use this tool versus a dedicated image or playback setter beyond that one cross-reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_site_admin_loginADestructiveInspect
WordPress admin login details for a project's hosted site: the admin username and a NEW password, so the user can sign in at wp-login.php any time. Only call it when the user asks for the username/password or login details (to just get into the admin now, use uichemy_open_site_admin). Each call sets a new password: the previous one stops working and anyone signed in to that admin is signed out. The password is shown once and UiChemy does not keep it, so tell the user to save it.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations: it explains that each call resets the password, invalidates the previous one, signs out existing sessions, and that the value is shown once and not stored. This adds critical side-effect and secrecy context that destructiveHint alone 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with the resource, then the routing rule, then the side effects, then the handling instruction. Nothing is redundant and each sentence adds actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by stating exactly what the caller receives (username and a newly generated password) and how to handle it. For a single-parameter mutation tool, nothing an agent needs to call it safely is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (projectId) exists, but schema description coverage is 0% and the description never explains what projectId refers to or how to obtain it. The description is otherwise rich, but parameter meaning is left entirely implicit, so it only meets the minimum viable bar.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'WordPress admin login details for a project's hosted site: the admin username and a NEW password'. It is immediately distinguishable from the sibling uichemy_open_site_admin, which is named directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly defines the trigger ('only call it when the user asks for the username/password or login details') and names the alternative for the other case ('to just get into the admin now, use uichemy_open_site_admin'). Both when-to-use and when-not-to-use are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_sync_buildersAInspect
For a project that was IMPORTED from code before (new projects are built from UiChemy templates only): put every imported section in Label Studio with its Elementor and Gutenberg code — their own HTML, the part of their CSS each section uses, their page script, and the copy and pictures as edited. This is what makes the WordPress export ship the uploaded site rather than fallback templates. uichemy_mark_exported runs it too; call this to check the result first. Unchanged sections are skipped unless force is set.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so safety is covered. The description still adds real context beyond them: unchanged sections are skipped unless force is set, and it feeds the WordPress export (explaining the consequence of running it and what it prevents — fallback templates). It does not describe the response or how long a run takes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The scoping condition is front-loaded in the opening clause, and every sentence contributes (scope, effect, sibling relationship, force semantics). It is a single dense paragraph and could break up more cleanly, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with no output schema, the description covers when to run it, what it changes, why it matters for export, and how force alters behavior. Only the shape of the result (progress/success reporting) is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning, and it does for the non-obvious one: force overrides the skip-unchanged behavior. projectId is not described, but its role is unambiguous from the 'for a project' framing and the name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete operation: populating Label Studio with each imported section's Elementor/Gutenberg code, CSS, scripts, copy and images. It explicitly scopes this to imported projects and distinguishes it from the sibling uichemy_mark_exported, though the prose is dense and the tool name ('sync_builders') alone would not convey this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the exact precondition (projects imported from code, not new template-built projects) and an explicit exclusion ('new projects are built from UiChemy templates only'). It also routes the agent relative to the sibling: uichemy_mark_exported triggers this too, but calling this directly lets you verify first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_template_slotsARead-onlyInspect
What copy a template needs, slot by slot: WHAT EACH SLOT IS — headline, eyebrow, primaryButton, cardTitle, price, quote — and WHERE IT SITS ("plans 2 of 3", "section header"), plus the template's sample copy and the MOST CHARACTERS it takes. The layout was designed around the sample's length; copy over max is refused by every tool that writes it. Write to about the sample's length, and put each piece of copy in the slot whose for matches it — a name in the name slot, a review in the review slot. READ THIS BEFORE WRITING COPY, and fill every slot: a UiChemy template renders its TOKEN, so a slot left empty puts text_a1b2c3 on the page at whatever size the design paints it. There is no placeholder to improve on later — unfilled is broken.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| variant | Yes | A layout id — "layout-x6", or a number / websiteN for numbered folders. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe-read profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower, and the description still adds meaningful behaviour: copy over `max` is refused by every writing tool, and an unfilled slot renders a raw token like `text_a1b2c3` at whatever size the design paints it. Those are real consequences an agent could not derive from the annotations, though nothing is said about result size, pagination, or lookup failure when kind/variant don't resolve.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose ('What copy a template needs, slot by slot') and then layered into the slot taxonomy, sizing rule, slot-matching rule, and the failure mode. The capitalized emphasis and em-dash cadence are heavy but each sentence carries distinct instruction; the one cost is length for a two-parameter read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-shape burden and does so well, enumerating the per-slot fields (`for`, position like 'plans 2 of 3', sample copy, `max`) and the safe-write rule. Nothing needed to interpret the response before writing copy is missing; only the input side (kind/variant) is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: `variant` is documented in the schema as a layout id, but `kind` has no description anywhere. The prose never mentions either parameter, so it contributes zero meaning beyond the schema and leaves half the required inputs (including the required `kind`) unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource: the per-slot copy requirements of a template (slot names, positions, sample copy, max characters). It is specific about what is returned ('WHAT EACH SLOT IS ... and WHERE IT SITS ... plus the template's sample copy and the MOST CHARACTERS it takes'), but it never states a verb for the tool itself or contrast it against near-neighbours like uichemy_get_template_code or uichemy_describe_sections, so the agent must infer its distinctness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is unusually explicit: 'READ THIS BEFORE WRITING COPY', 'fill every slot', 'Write to about the sample's length', and 'put each piece of copy in the slot whose `for` matches it'. That is clear when-to-use guidance with concrete operating rules, though it names no alternative tool or a when-not-to-use condition, so the routing burden stays on the caller.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_unpublish_siteADestructiveInspect
Take a project's site OFFLINE and delete it: the WordPress site at its uichemysites.com address is removed, including anything changed in its WordPress admin, and the address is freed. The UiChemy project itself is not touched and can be published again. Irreversible: confirm with the user first, naming the address.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With destructiveHint=true and readOnlyHint=false already declared, the description still adds substantial context: exactly what is destroyed (the site and any changes made in WordPress admin), the side effect (address is freed), what is preserved (the UiChemy project), and that the action is irreversible and requires user confirmation. This is the kind of detail annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences: what happens, what survives, and the safety constraint. The destructive scope is front-loaded and no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-output-schema mutation, the description covers the destructive scope, irreversibility, the preserved resource, and the confirmation requirement — everything an agent needs before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single required projectId with 0% description coverage, so the description is the only source of meaning — and it only implies projectId selects the project whose site is removed ('a project's site', 'naming the address'). It adds no format, ID-source, or lookup guidance beyond that implication.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (take offline / delete) on a specific resource (the published WordPress site at the uichemysites.com address), and explicitly scopes out the UiChemy project itself. An agent can distinguish this from uichemy_delete_project and uichemy_publish_site without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition for invocation — confirm with the user first, naming the address — and clarifies the condition under which the operation is appropriate by noting the project survives and can be republished (i.e., use this when you want to remove the live site, not the project). It does not explicitly name a sibling alternative such as delete_project, which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_upload_imageAInspect
Store a picture in UiChemy and get back a url for an image slot. Pass EXACTLY ONE of: url — a picture already on the web (the image file's own url, not a page), which is copied into our storage so it cannot break later; or data — base64 / a data: URI for a picture you generated as bytes. A picture the user attached in chat cannot be passed as base64; ask them for its url instead. Stored exactly where the image panel stores one (WebP, content-hashed, our own storage). Pass the returned url to uichemy_set_images or to create_project's images.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | An https url of the image file. | |
| data | No | A data: URI, or the raw base64 payload. | |
| projectId | Yes | The project it belongs to — it is filed under that project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the description usefully adds that the source is copied into their own storage so it cannot break later, and that storage normalizes to WebP and is content-hashed. That is real behavioural context beyond the annotations (durability, format normalization, implied dedup), though nothing is said about size limits, auth requirements, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose before any parameter detail, then the input rule, then the caveat, then the downstream hand-off. Every sentence carries information the agent needs; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by stating what comes back (a url) and exactly what to do with it. For a 3-parameter upload tool with a required projectId, plus storage-behaviour disclosure and the attached-image caveat, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds a constraint the schema cannot express: EXACTLY ONE of url or data, since there is no oneOf in the schema. It also sharpens `url` (the image file's own url, not a page url) and `data` (base64 or data: URI for generated bytes).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Store a picture in UiChemy and get back a url for an image slot" gives a specific verb (store/upload) plus resource (image) and the contract on the other side (a url for a slot). It is clearly distinguishable from neighbours like crop_image, edit_image_masked, and set_images, which transform or place images rather than ingest them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the selection rule between the two mutually exclusive inputs and the condition for each (url for an already-hosted file, data for bytes you generated). It also names a when-not case — an image the user attached in chat cannot be sent as base64, ask for its url — and routes the output to uichemy_set_images or create_project's `images`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_upload_ticketAInspect
A way to upload pictures you have ON DISK without retyping them as base64. uichemy_upload_image is the right tool for a picture you generated as bytes, but its payload travels through the model a token at a time, so a folder of photos costs minutes and arrives shrunken. This hands back a short-lived ticket and a curl line: the bytes go straight from the file to our storage, at full size, and never enter the conversation. Same pipeline as the image panel (WebP, content-hashed, R2), so the result is indistinguishable downstream. The ticket lasts 10 minutes, is fixed to THIS project, and is write-only — it reads nothing. Each upload answers with the stored url; pass those to uichemy_set_images.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many files you are about to upload. Default 40, which is also the cap. | |
| prefix | No | Where the files are filed. Default uploads; use logos for a brand mark. | |
| projectId | Yes | The project the pictures belong to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety trinity (readOnlyHint=false, destructiveHint=false, openWorldHint=false). The description adds materially: ticket is 10-minute TTL, pinned to THIS project, write-only, bytes bypass the conversation at full size, and the storage pipeline (WebP, content-hashed, R2) matches the image panel. Consistent with, not contradicting, annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and the sibling contrast, then rationale and constraints. Information-dense but slightly long; every sentence carries distinct value (why, mechanism, scope, TTL, return).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the return contract and does so ('each upload answers with the stored url; pass those to uichemy_set_images'), plus the async/ticket workflow and its expiry. Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so count/prefix/projectId are already documented in the schema. The description reinforces projectId scoping ('fixed to THIS project') but adds no syntax or format detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: it hands back a short-lived upload ticket so files on disk can be pushed straight to storage. It explicitly distinguishes itself from the sibling uichemy_upload_image (which is for bytes you generated), so the agent can pick without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the exact condition that selects this tool ('pictures you have ON DISK without retyping them as base64') versus the alternative ('uichemy_upload_image is the right tool for a picture you generated as bytes') and names the downstream tool to pass results to (uichemy_set_images).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_validateARead-onlyInspect
Check the whole project for the faults that do not raise an error anywhere: slots still rendering their own token, pictures saved into one store and read from another, per-section colours keyed to a layout the section has moved off, overrides belonging to sections that no longer exist, icon keys that fight each other, a logo the navbars never received, a blog detail page with no post on it, a blog whose tag and author links point at pages that do not exist. Every check here is an already-reported failure, and each is invisible until somebody opens the right page on the right surface — which is why an agent should run this before telling anyone the work is done.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds genuinely non-obvious context: the faults are silent (no error raised) and 'invisible until somebody opens the right page on the right surface'. It says nothing about cost/runtime or output shape, but with annotations doing the safety work this is above the 3 baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the opening clause, and the closing sentence carries the actionable directive. The middle is a single sprawling sentence listing nine fault types, which is informative but verbose and tilts toward purple prose ('which is why an agent should run this...').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter read-only tool the fault taxonomy is thorough, but with no output schema and no return-format hint, an agent cannot anticipate what validation results look like, and the sole input parameter is left undocumented. Two real gaps keep it at minimum-viable completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter (projectId) with 0% schema description coverage, and the description never mentions it. projectId is a near-self-evident identifier shared across the sibling set, which keeps this from being a 1-2, but the description does not compensate for the missing schema documentation as the low-coverage rule requires.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (check the whole project) and enumerates concrete fault classes it detects (stale slots, orphaned overrides, broken blog links). The 'whole project' scope implicitly separates it from narrower siblings like uichemy_check_layouts and uichemy_check_responsive, so an agent can tell them apart 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear usage trigger: run it 'before telling anyone the work is done', framing it as a final pre-completion gate. It does not, however, name alternatives or state when NOT to use it (e.g. versus check_layouts/check_responsive), so the routing guidance stops short of the 5-level bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uichemy_whoamiARead-onlyInspect
Which UiChemy account this connection is signed in as, and what it can reach. Call this first when something is refused — connecting the wrong account is the commonest cause, and it looks identical to a broken server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: this is a diagnostic probe and the failure mode it disambiguates. It doesn't describe the response shape, which is the remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the diagnostic trigger is front-loaded after a one-clause statement of what the tool reports. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema and read-only annotations, the description carries the remaining burden and mostly does: it says what is returned (account identity plus reach) and when to call it. It could be slightly more explicit about what 'what it can reach' means in the response, but nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is nothing for the description to clarify about arguments, and the empty object schema is consistent with the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resource (the signed-in UiChemy account for this connection) and its scope of access ('what it can reach'). No sibling tool does identity/diagnostic work, so an agent can route to it unambiguously from the name-plus-description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger condition and ordering rule: 'Call this first when something is refused.' It also explains why (wrong-account connections mimic a broken server). It stops short of naming an alternative or a when-not case, so it sits below the top band.
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.
95 tool updates
- First observed
uichemy_add_blog - First observed
uichemy_add_page - First observed
uichemy_add_section - First observed
uichemy_batch - First observed
uichemy_check_layouts - First observed
uichemy_check_responsive - First observed
uichemy_clear_icon_override - First observed
uichemy_clear_text_style - First observed
uichemy_create_canvas - First observed
uichemy_create_project - First observed
uichemy_create_variant - First observed
uichemy_crop_image - First observed
uichemy_delete_project - First observed
uichemy_delete_variant - First observed
uichemy_describe_sections - First observed
uichemy_duplicate_page - First observed
uichemy_duplicate_section - First observed
uichemy_edit_image_masked - First observed
uichemy_embed_url - First observed
uichemy_find_templates - First observed
uichemy_get_blog - First observed
uichemy_get_colors - First observed
uichemy_get_images - First observed
uichemy_get_logo - First observed
uichemy_get_page - First observed
uichemy_get_page_code - First observed
uichemy_get_page_settings - First observed
uichemy_get_project - First observed
uichemy_get_style_kit - First observed
uichemy_get_template_code - First observed
uichemy_get_text - First observed
uichemy_insert_saved_section - First observed
uichemy_list_exported - First observed
uichemy_list_icon_overrides - First observed
uichemy_list_icons - First observed
uichemy_list_links - First observed
uichemy_list_projects - First observed
uichemy_list_saved_sections - First observed
uichemy_list_section_backgrounds - First observed
uichemy_list_section_kinds - First observed
uichemy_list_sites - First observed
uichemy_list_templates - First observed
uichemy_list_text_styles - First observed
uichemy_list_variants - First observed
uichemy_mark_exported - First observed
uichemy_open_preview - First observed
uichemy_open_projects - First observed
uichemy_open_site_admin - First observed
uichemy_publish_site - First observed
uichemy_publish_status - First observed
uichemy_remove_page - First observed
uichemy_remove_post - First observed
uichemy_remove_section - First observed
uichemy_remove_section_background - First observed
uichemy_remove_swatch - First observed
uichemy_rename_page - First observed
uichemy_reorder_pages - First observed
uichemy_reorder_sections - First observed
uichemy_replace_section - First observed
uichemy_save_section - First observed
uichemy_search_layouts - First observed
uichemy_set_badge_design - First observed
uichemy_set_badge_style - First observed
uichemy_set_button_design - First observed
uichemy_set_button_role - First observed
uichemy_set_card_design - First observed
uichemy_set_field_design - First observed
uichemy_set_fonts - First observed
uichemy_set_global_section - First observed
uichemy_set_icon - First observed
uichemy_set_icon_color - First observed
uichemy_set_icon_style - First observed
uichemy_set_image_display - First observed
uichemy_set_images - First observed
uichemy_set_link - First observed
uichemy_set_logo - First observed
uichemy_set_page_category - First observed
uichemy_set_page_settings - First observed
uichemy_set_palette - First observed
uichemy_set_section_background - First observed
uichemy_set_section_style - First observed
uichemy_set_spacing - First observed
uichemy_set_text - First observed
uichemy_set_text_style - First observed
uichemy_set_theme - First observed
uichemy_set_type_scale - First observed
uichemy_set_videos - First observed
uichemy_site_admin_login - First observed
uichemy_sync_builders - First observed
uichemy_template_slots - First observed
uichemy_unpublish_site - First observed
uichemy_upload_image - First observed
uichemy_upload_ticket - First observed
uichemy_validate - First observed
uichemy_whoami
Related MCP Connectors
Publish and update HTML websites, landing pages, reports and proposals from AI chat. OAuth sign-in.
Build, edit and run real hosted websites from your AI - content, SEO, menus, store, rollback.
Build, edit, and publish real websites and online stores by chatting with your AI assistant.
- RunLiteOAuthin.runlite
Puts AI-built websites live with working contact forms and emails every enquiry. No signup to start.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceUniversal autonomous MCP platform for WordPress, Elementor, and WooCommerce enabling AI clients to inspect, design, build, test, and manage websites.Apache 2.0
- AlicenseAqualityCmaintenanceEnables an AI design agent to connect to any WordPress site, inspect its real rendered CSS/JS/theme, and create or update pages through the WordPress REST API and optional companion plugin routes.67 npmMIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage WordPress sites through natural conversation, supporting post creation, content updates, site queries, and draft-to-publish workflows via the WordPress REST API.9MIT
- AlicenseAqualityNot gradedmaintenanceAI-powered WordPress management that enables creating and editing posts, pages, media, plugins, themes, and Gutenberg blocks through natural language with safe-by-default writes and full rollback support.524 npm-
Glama MCP Gateway
Add one secure layer between your agents and this server.