Skip to main content
Glama

Update brand

update_brand
Idempotent

Update the workspace brand. Fields left out keep their value; null clears one. settings replaces the brand's look (read it with get_brand first and change what you need). Templates that follow the brand pick it up from their next send.

Input Schema

NameRequiredDescriptionDefault
logoNoThe logo: { url: https image URL, align: left | center, width?: px }. null removes it
addressNoMailing address for the footer (a PO box is fine)
websiteNoWebsite, for example acme.com
settingsNoThe look, as a template design's settings: backgroundColor, contentBackgroundColor, textColor, linkColor, fontFamily, contentWidth, darkMode, globalCss, and theme { buttonBackground, buttonTextColor, buttonRadius, bodyFontSize, lineHeight, headingFontSize }
accent_colorNoHex colour of the line across the top, for example #2f6feb
company_nameNoCompany name for the footer

Output Schema

NameRequiredDescriptionDefault
brandYesThe workspace brand

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the annotations by disclosing merge semantics ("Fields left out keep their value; null clears one"), the full-replacement risk of the settings object, and downstream propagation timing ("Templates that follow the brand pick it up from their next send"). These are exactly the behaviors an agent cannot infer from readOnlyHint=false / idempotentHint=true.

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

Conciseness5/5

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

Three tight sentences with no filler, front-loaded with the operation and immediately followed by the update semantics that matter most. Parenthetical guidance is embedded where it is needed rather than appended as a separate block.

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?

An output schema exists and the input schema fully describes the nested settings and logo objects, so the description only has to carry the non-structural behavior—merge/null/replace semantics and template propagation—which it does. Nothing an agent needs to invoke this mutation 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 schema already documents all six fields and the nested settings/logo shapes; the baseline is 3. The description adds real meaning the schema does not: the null-clears-this-field semantics and the fact that settings is a wholesale replacement rather than a merge. That is a genuine step above the schema.

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?

Opens with a specific verb and resource: "Update the workspace brand." It also names get_brand as the read counterpart, which separates this tool from the getter. It stops short of distinguishing the workspace brand from the similarly-named tenant tools (update_tenant, get_tenant) present in the sibling list.

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?

Gives concrete workflow guidance rather than just describing the mutation: "read it with get_brand first and change what you need," which steers the agent to a read-before-write pattern and implies a partial update. There are no explicit when-not-to-use conditions or pointers to any other sibling that could handle brand-like changes.

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.