Skip to main content
Glama

Get the component style guide

get_component_style_guide
Read-onlyIdempotent

[Admin] The reference for designing a style for a kind of page block (hero, cards, faq, ...): the selectors each block renders, its layout variants, the brand's CSS variables, and the styles the editor already offers per block type (written_by agent or company), each with the pages that use it (draft or published). Without brand_id it is the main brand.

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>"
    },
    "name": "get_component_style_guide"
  }
}

Input Schema

NameRequiredDescriptionDefault
portalYes`interview` (career and interview portal) or `consumer` (coaching portal). Only the interview portal has brands.
brand_idNoA sub-brand, from the brands document of get_portal_configuration.
llm_modelNoYour model id, e.g. "claude-opus-4-8"; "unknown" if unsure. For analytics.
merchant_idNoOptional merchant to scope to. Admins and sub-merchant operators only; other callers always use their token's merchant.
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
brandYes
how_toYes
portalYes
tokensYes
file_ruleYes
componentsYes
tokens_cssYes
shared_partsYes
_mcp_instructionsNoServer-issued metadata for this conversation.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed41 schema fields changed
    • changedInput schema / properties / brand_id / description
      Previous value: -"A sub-brand, from the brands document of get_portal_configuration. Leave it out for the main brand, the company's own, whose styles every sub-brand page also offers."New value: +"A sub-brand, from the brands document of get_portal_configuration."
    • 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 / merchant_id / example
      Removed value: -"28106cba-1c27-4e53-b149-32113e5e8e31"
    • removedInput schema / properties / portal / example
      Removed value: -"interview"
    • removedOutput schema / properties / components / items / properties / parts / description
      Removed value: -"What the block renders that a style can aim at."
    • removedOutput schema / properties / components / items / properties / parts / items / properties / selector / description
      Removed value: -"A selector or CSS variable."
    • removedOutput schema / properties / components / items / properties / parts / items / properties / what / description
      Removed value: -"What it is on the page."
    • removedOutput schema / properties / components / items / properties / root / description
      Removed value: -"The wrapper of every block of this type."
    • removedOutput schema / properties / components / items / properties / root / example
      Removed value: -".jm-site .jm-block--hero"
    • removedOutput schema / properties / components / items / properties / styles / description
      Removed value: -"The styles the editor already offers for this type."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / brand_id / description
      Removed value: -"The brand whose file it is; null for the main brand."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / class / description
      Removed value: -"The class a block with this style gets."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / class / example
      Removed value: -"jm-style-dark-band"
    • removedOutput schema / properties / components / items / properties / styles / items / properties / file / description
      Removed value: -"The CSS file that defines it."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / file / example
      Removed value: -"components/hero/dark-band.css"
    • removedOutput schema / properties / components / items / properties / styles / items / properties / live / description
      Removed value: -"Whether the published stylesheet already has it."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / name / description
      Removed value: -"The name the editor shows."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / name / example
      Removed value: -"Dark band"
    • removedOutput schema / properties / components / items / properties / styles / items / properties / pages / description
      Removed value: -"The pages with a block that uses it, as draft or published. A main-brand style counts every page; a sub-brand style, that brand's pages."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / pages / items / properties / brand_id / description
      Removed value: -"Its sub-brand; null for the main brand."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / pages / items / properties / draft / description
      Removed value: -"The draft uses the style."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / pages / items / properties / id / description
      Removed value: -"The page."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / pages / items / properties / published / description
      Removed value: -"The published page uses the style."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / pages / items / properties / slug / description
      Removed value: -"Its address; built-in pages start with \"_\", the home page is empty."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / pages / items / properties / slug / example
      Removed value: -"life-at-sea"
    • removedOutput schema / properties / components / items / properties / styles / items / properties / pages / items / properties / title / description
      Removed value: -"Its title in the first language."
    • removedOutput schema / properties / components / items / properties / styles / items / properties / written_by / description
      Removed value: -"`agent`: in components/, which save_component_style may change. `company`: in the company's own files, never changed by it."
    • removedOutput schema / properties / components / items / properties / type / description
      Removed value: -"The block type: the `type` of a block in page content."
    • removedOutput schema / properties / components / items / properties / type / example
      Removed value: -"hero"
    • removedOutput schema / properties / components / items / properties / variants / description
      Removed value: -"Classes the block adds for its own layout choices."
    • removedOutput schema / properties / components / items / properties / variants / items / properties / selector / description
      Removed value: -"A selector or CSS variable."
    • removedOutput schema / properties / components / items / properties / variants / items / properties / what / description
      Removed value: -"What it is on the page."
    • removedOutput schema / properties / file_rule / description
      Removed value: -"Which files an agent writes and which it leaves alone."
    • removedOutput schema / properties / how_to / description
      Removed value: -"The steps from a design to a live style."
    • removedOutput schema / properties / shared_parts / description
      Removed value: -"On every block."
    • removedOutput schema / properties / shared_parts / items / properties / selector / description
      Removed value: -"A selector or CSS variable."
    • removedOutput schema / properties / shared_parts / items / properties / what / description
      Removed value: -"What it is on the page."
    • removedOutput schema / properties / tokens / description
      Removed value: -"CSS variables from the style settings; use them with a fallback, var(--jm-color-text, currentColor)."
    • removedOutput schema / properties / tokens / items / properties / selector / description
      Removed value: -"A selector or CSS variable."
    • removedOutput schema / properties / tokens / items / properties / what / description
      Removed value: -"What it is on the page."
    • removedOutput schema / properties / tokens_css / description
      Removed value: -"tokens.css as the draft style settings make it, for the main brand and the sub-brand."
  2. Added

TDQS

A3.9/5.0
Behavior4/5

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

Beyond the read-only, idempotent, and open-world annotations, the description discloses admin-only access, default brand behavior, and the kinds of records returned, including draft or published pages. It does not discuss rate limits or further permission nuances, so it is strong but not exhaustive.

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?

The purpose and scope are front-loaded, and the content inventory is efficient despite being dense. The final pointer sentence to get_tool_reference is useful but slightly offsets the description's self-containedness.

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

Completeness4/5

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

For an admin reference tool with a full input schema, output schema, and rich annotations, the description covers the essentials: what it returns, admin scope, and brand defaulting. It is largely complete, with only minor gaps around choosing between related style tools.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already carries parameter meaning. The description adds useful brand_id fallback semantics, but otherwise defers argument detail to get_tool_reference rather than explaining parameters itself.

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

Purpose4/5

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

The description states a specific resource: a reference for designing a page-block style, including selectors, layout variants, CSS variables, and editor-provided styles with usage pages. It is clear enough to distinguish the tool from style-generation or style-saving siblings, but it does not explicitly name alternatives.

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

Usage Guidelines4/5

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

It gives clear context for use: designing a style for a kind of page block, with an [Admin] marker and the default-brand behavior when brand_id is omitted. It stops short of explicit exclusions or naming sibling tools like generate_component_styles or save_component_style.

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.