Skip to main content
Glama

Tanod Images

imagepeek: add a text watermark to an image

image_watermark
Read-onlyIdempotent

imagepeek: Add a text watermark to an image. Returns the image with a text watermark (1-200 printable characters, DejaVu Sans Mono) at one of 9 positions, or tiled in a staggered grid, with opacity, font_size (default 5% of the short side), color, angle and margin; text larger than the image is shrunk to fit. Input: url or image_base64, text, optional position, opacity, font_size, color, angle, tile, margin, optional format, quality and auto_orient. Reads PNG, JPEG, WebP, GIF, TIFF, BMP, ICO and AVIF; other formats and images over 40 megapixels are refused (not charged). Output: base64 data_base64, without EXIF, GPS, XMP or IPTC; over 15 MB or 50 megapixels is a 413 (not charged). Images are never logged or stored. Typically 0.5-2 s. Price: USD 0.002. Free: 3 imagepeek calls per IP per UTC day.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoPublic http(s) URL of the image (at most 10 MB; private, internal and IP-literal hosts are refused); or use image_base64.
textYes1-200 printable characters.
tileNoA staggered grid (at most 2,500 marks).
angleNoText rotation in degrees, clockwise (-180 to 180, default 0).
colorNoText colour as #rrggbb or #rrggbbaa (default #ffffff).#ffffff
formatNoOutput format (default: the input's; ICO in, PNG out).
marginNoPixels from the edge (default half the font size, at least 4); with tile, the gap between marks.
opacityNo0 (invisible) to 1 (opaque); default 0.5.
qualityNoEncoder quality 1-100 (lossy formats).
positionNoSingle mark's place: center, top, bottom, left, right, top-left, top-right, bottom-left or bottom-right (default).bottom-right
font_sizeNoDefault: 5% of the short side.
auto_orientNoApply the EXIF orientation first.
image_base64NoThe image as standard or url-safe base64 (at most 10 MB decoded; a data:image/...;base64, prefix is fine); or use url.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
fontNo
bytesNo
errorNoOnly on an error result: an object {code, message}, or the reason string of an x402 PaymentRequired object.
inputNo
marksNo
notesNo
widthNo
formatNo
heightNo
sourceNo
final_urlNo
font_sizeNo
operationNo
source_urlNo
data_base64No
content_typeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / angle / description
      Added value: +"Text rotation in degrees, clockwise (-180 to 180, default 0)."
    • addedInput schema / properties / color / description
      Added value: +"Text colour as #rrggbb or #rrggbbaa (default #ffffff)."
    • addedInput schema / properties / margin / description
      Added value: +"Pixels from the edge (default half the font size, at least 4); with tile, the gap between marks."
    • addedInput schema / properties / opacity / description
      Added value: +"0 (invisible) to 1 (opaque); default 0.5."
    • addedInput schema / properties / position / description
      Added value: +"Single mark's place: center, top, bottom, left, right, top-left, top-right, bottom-left or bottom-right (default)."
    • changedInput schema / properties / url / description
      Previous value: -"Public http(s) URL of the image (at most 10 MB); or use image_base64."New value: +"Public http(s) URL of the image (at most 10 MB; private, internal and IP-literal hosts are refused); or use image_base64."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "bytes": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "content_type": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "data_base64": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "error": {
      +      "description": "Only on an error result: an object {code, message}, or the reason string of an x402 PaymentRequired object."
      +    },
      +    "final_url": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "font": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "font_size": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "format": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "height": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "input": {
      +      "properties": {
      +        "animated": {
      +          "type": [
      +            "boolean",
      +            "null"
      +          ]
      +        },
      +        "bytes": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "format": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "frames": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "has_alpha": {
      +          "type": [
      +            "boolean",
      +            "null"
      +          ]
      +        },
      +        "height": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "width": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "marks": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "notes": {
      +      "items": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "operation": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "source": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "source_url": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "width": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources