Skip to main content
Glama

Generate component style alternatives

generate_component_styles
Read-only

[Admin] JobMojito's model proposes a few clearly different looks for one block type, from the block's content (sent as block) and the brand's CSS variables. Returns name, description and CSS ready for save_component_style. Nothing is stored; a look is kept only once save_component_style saves it. get_component_style_guide gives the selectors and variables for writing a style by hand. At most 30 requests an hour per person.

Every argument in full, with examples: get_tool_reference.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "portal": "<portal>",
      "block_type": "<block_type>"
    },
    "name": "generate_component_styles"
  }
}

Input Schema

NameRequiredDescriptionDefault
blockNoThe block as it is in page content (its title, text, items, layout), so the looks fit what it holds.
countNoHow many looks, 1 to 4. Default 3.
portalYes`interview` (career and interview portal) or `consumer` (coaching portal).
brand_idNoA sub-brand; leave it out for the main brand.
llm_modelNoYour model id, e.g. "claude-opus-4-8"; "unknown" if unsure. For analytics.
block_typeYesThe kind of block to design for.
instructionNoWhat the person wants, in their words.
merchant_idNoOptional company. Admins and sub-merchant operators only; other callers always use their token's company.
conversation_idNoThe conversation_id this server returned earlier in this conversation, unchanged, including after later user messages. Omit it if you have none. Recorded for the server developer's analytics.

Output Schema

NameRequiredDescriptionDefault
warningsYes
block_typeYes
alternativesYes
_mcp_instructionsNoServer-issued metadata for this conversation.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • removedInput schema / properties / block_type / example
      Removed value: -"hero"
    • changedInput schema / properties / brand_id / description
      Previous value: -"A sub-brand; leave it out for the main brand. Its CSS variables shape the looks."New value: +"A sub-brand; leave it out for the main brand."
    • removedInput schema / properties / instruction / example
      Removed value: -"Darker, with more space around the title"
    • addedInput schema / properties / llm_model
      Added value: +{
      +  "description": "Your model id, e.g. \"claude-opus-4-8\"; \"unknown\" if unsure. For analytics.",
      +  "type": "string"
      +}
    • removedInput schema / properties / portal / example
      Removed value: -"interview"
    • removedOutput schema / properties / alternatives / items / properties / class / example
      Removed value: -"jm-style-dark-band"
    • removedOutput schema / properties / alternatives / items / properties / css / description
      Removed value: -"Ready for save_component_style: every selector on .jm-site and the style class."
    • removedOutput schema / properties / alternatives / items / properties / name / description
      Removed value: -"A name no style of this block has yet."
    • removedOutput schema / properties / alternatives / items / properties / name / example
      Removed value: -"Dark band"
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=true, destructiveHint=false, idempotentHint=false), the description discloses non-persistence, the returned fields, the 30-requests-per-hour limit, and the admin precondition — behavior an agent cannot infer from structured fields. This is exactly the context annotations leave out.

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

Conciseness4/5

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

Front-loaded with the core action, then alternatives, then the rate limit and reference pointer — no filler sentences. It is dense with several distinct points (persistence, sibling routing, quota, reference tool), which slightly crowds a short blurb but nothing is wasted.

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

Completeness5/5

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

For a 9-parameter, nested-object, open-world generation tool with an output schema, the description covers what matters: what is produced, that nothing persists, how to persist it, the admin scope, and the quota. 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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns a bump by explaining the causal link between the `block` payload and the generated CSS, and by tying generation to the brand's CSS variables rather than leaving brand_id opaque. It does not cover count, portal, or the analytics-only fields, which the schema handles adequately.

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

Purpose5/5

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

The first sentence names a specific verb and output ('proposes a few clearly different looks for one block type') and states the inputs it derives them from (block content plus brand CSS variables). It also distinguishes itself from save_component_style (persistence) and get_component_style_guide (hand-authoring), 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.

Usage Guidelines5/5

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

It explicitly directs the agent to save_component_style to keep a look and to get_component_style_guide for manual selector work, and flags the [Admin] audience plus the per-person rate limit. The only mildly implicit part is that this tool is a preview/generation step, but the 'Nothing is stored' clause makes that clear.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.