Skip to main content
Glama

Add the brand logo to an image

brandImage

Add the brand's logo to an image from the workspace media library and save the result as a new media file; the original file is left unchanged. No AI model is involved and no credits are used. The logo and colours come from the brand voice that applies: the workspace default, the voice of a given channel, or a voice named explicitly. The logo variant (for light or dark backgrounds) is chosen by the brightness of the area it covers, and blank logo files are skipped. Optional extras: a frame in the brand's primary colour and a caption band of short text along the bottom in a brand colour. PNG images stay PNG; JPEG and WebP images are saved as JPEG. Returns the saved file: url, mediaId, path, width, height and fileSize in bytes.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "brandImage"
  }
}

Input Schema

NameRequiredDescriptionDefault
frameNoDraw a border in the brand's primary colour
mediaIdNoMedia library file id of the image (PNG, JPEG or WebP)
fileNameNoFile name for the new image; the matching extension is added when missing
folderIdNoMedia library folder id to save into. Default: the original image's folder
mediaUrlNoMedia library URL of the image (https://cdn.repeatpost.com/...), as an alternative to mediaId
channelIdNoChannel id (uuid) of a connected channel; its brand voice is used
logoScaleNoLogo width as a fraction of the image's shorter edge (0.05-0.5). Default 0.16
brandVoiceNoBrand voice name. Default: the voice that applies to the workspace or to channelId
captionStripNoShort text (up to 120 characters) set on a band along the bottom in a brand colour
logoPositionNoWhere the logo goes. Default bottom-right

Output Schema

NameRequiredDescriptionDefault
errorNo
outputNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that the original file is untouched, that no AI/credits are consumed, the brand-voice resolution chain, automatic light/dark logo variant selection by background brightness, skipping of blank logo files, and format coercion (PNG stays PNG, JPEG/WebP become JPEG). The mutation is described with concrete side effects, which the thin annotation set (destructiveHint=false, idempotentHint=false) could not convey on its own.

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 verb+resource and outcome, and every sentence carries distinct behavior (non-destructiveness, credits, voice resolution, variant selection, formats, return fields). The single long semicolon-chained paragraph is dense enough that bullets for the optional extras would scan better, costing it a point.

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 10-parameter media-mutation tool with annotations and an output schema, it covers everything an agent needs: source identification, save behavior, colour/voice sourcing, variant logic, format rules, and the returned fields. Even though the output schema exists, naming url/mediaId/path/dimensions is harmless and confirmatory.

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 parameter-level baseline is 3, but the description adds genuine semantics on top: how brandVoice is resolved (workspace default vs channel voice vs explicit name), what frame and captionStrip actually render, and that logo positioning interacts with a brightness-based variant choice. It does not restate the numeric bounds the schema already carries.

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?

States a specific verb and resource ('Add the brand's logo to an image from the workspace media library and save the result as a new media file') and explicitly distinguishes itself from the AI-generation siblings by declaring 'No AI model is involved and no credits are used'. An agent can separate this from renderGraphic or generateCaption 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.

Usage Guidelines4/5

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

Gives clear context for when this applies: it needs a brand voice (workspace default, channel voice, or explicit name) and it saves a non-destructive copy rather than editing the original. However, it never names an alternative sibling (e.g. renderGraphic) or states an explicit when-not-to-use condition, so the routing guidance stays implicit.

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.