Skip to main content
Glama

Watermark image

image_watermark
Read-onlyIdempotent

Add text or logo watermarks to photos, with configurable size, position, opacity, rotation, tiling, and output format to protect and brand images consistently across resolutions.

Instructions

Add a text or logo watermark to a photo. Size is a % of the photo width, margin a % of the shorter side, so the result looks the same on any resolution. One of 9 positions or tiled across the whole image (brick pattern), with opacity, rotation, colour, weight and a soft shadow for text. Logo: any image (PNG with transparency works best). Output keeps the input format (JPEG/PNG/WebP) or as chosen; name -watermarked.. Text uses the Inter font when installed, else a system sans-serif. Web version: https://s3eidat.github.io/watermark/

Input Schema

NameRequiredDescriptionDefault
logoNoUse this image as the watermark instead of text: a local path or base64.
sizeNoWatermark width as % of the photo width. Default 28.
textNoWatermark text (ignored when a logo is given). Default "© Your Name".© Your Name
colorNoText colour. Default #ffffff.#ffffff
imageYesThe photo: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
tiledNoRepeat the watermark across the whole photo.
formatNoOutput format. Default keep.keep
marginNoMargin from the edge in % of the shorter side; spacing between tiles when tiled. Default 4.
outputNoWhere to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
shadowNoSoft drop shadow behind text. Default true.
weightNoFont weight. Default 700.700
opacityNoOpacity in %. Default 60.
qualityNoQuality 1-100 for JPEG / WebP / AVIF (ignored for PNG). Default 92, same as the website.
positionNoWhere the watermark sits (ignored when tiled). Default bottom-right.bottom-right
rotationNoRotation in degrees (e.g. -30 for a diagonal tile). Default 0.
returnBase64NoAlso return the output as base64 in the result (only for small files). Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint, idempotentHint) the description discloses concrete outcomes: output filename pattern <name>-watermarked.<ext>, format preservation, the default temp output folder, and that returnBase64 is only suitable for small files. The font fallback (Inter, else system sans-serif) also warns of rendering variability. It stops short of stating error behavior or size limits, and there is mild tension with readOnlyHint since the tool does write a new file to disk.

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?

Purpose is front-loaded in the first clause and every subsequent sentence carries actionable detail. It is somewhat dense and run-on, and the trailing web-version URL is of marginal value to an agent, but nothing is genuinely padding.

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 16-parameter, no-output-schema tool, the description covers what an agent needs: how the watermark is sized, the two modes, output naming/format/location, and the small-file caveat on base64 returns. No significant calling decision is left unexplained.

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 already 100%, so baseline is 3; the description still adds real meaning by explaining the resolution-independent rationale (size as % of photo width, margin as % of the shorter side) and noting margin doubles as tile spacing and rotation examples like "-30 for a diagonal tile." It also clarifies that text is ignored when a logo is supplied.

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?

Opens with a specific verb and resource: "Add a text or logo watermark to a photo." It immediately distinguishes the two modes (text vs. logo) and the output behavior, so an agent can tell it apart from siblings like pdf_watermark or image_convert 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.

Usage Guidelines3/5

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

It explains the logo-vs-text choice ("Logo: any image (PNG with transparency works best)") and when output format is retained, which implies usage. However, it never says when to pick this tool over alternatives such as pdf_watermark or image_convert, nor does it state prerequisites or exclusions; 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.

Deploy Server

Other Tools