Skip to main content
Glama
Miladmet

Watermark & Resize Studio MCP Server

by Miladmet

Watermark & Resize Studio MCP Server 🖼️⚡

License: MIT Node.js Engine

An ultra-fast, local-first Model Context Protocol (MCP) server providing AI assistants (Claude Desktop, Cursor, Antigravity, Cline) with native capabilities to resize, watermark, and sanitize images for e-commerce, social media, and privacy compliance.

Official open-source MCP server powered by Watermark & Resize Studio.


🌟 Key Features

  • ⚡ 100% Local Processing: All operations run locally via sharp (libvips C++ engine). Zero cloud uploads, zero external API latency, zero bandwidth costs.

  • 🛍️ E-Commerce & Platform Presets: Instant batch-ready resizing for Shopify (2048x2048), Etsy (2000x2000), Instagram Square/Story/Portrait, YouTube Thumbnails, Facebook, and Pinterest.

  • 🛡️ Copyright & Watermark Protection: Dynamic text and logo compositing with SVG drop shadows, 6-point positioning, opacity control, and repeating tiled patterns for asset protection.

  • 🔒 Privacy EXIF / GPS Stripper: Completely removes GPS geolocation coordinates, camera serial numbers, and creator metadata before public publishing.

  • 🚀 WebP & MozJPEG Compression: Reduces file sizes by 85–95% while maintaining crisp visual fidelity.


Related MCP server: Image Analysis MCP Server

🚀 Instant 1-Click Install via Smithery

To automatically install and configure for Claude Desktop:

npx -y @smithery/cli install Miladmet/watermark-studio-mcp --client claude

To install and configure for Cursor:

npx -y @smithery/cli install Miladmet/watermark-studio-mcp --client cursor

🛠️ Included Tools

1. resize_for_platform

Resize, convert format (WebP, MozJPEG, PNG), and optimize images with standard platform presets or custom dimensions.

Parameter

Type

Required

Description

image_path

string

Yes

Absolute or relative path to the image file.

platform

string

No

Preset: shopify, etsy, instagram_square, instagram_portrait, instagram_story, youtube_thumb, facebook_post, pinterest_pin, custom (Default: shopify).

width

number

No

Custom width in pixels (overrides preset).

height

number

No

Custom height in pixels (overrides preset).

fit

string

No

cover, contain, fill, inside, outside (Default: inside for e-commerce, cover for social).

format

string

No

webp, jpeg, png, original (Default: webp).

quality

number

No

Quality level from 1 to 100 (Default: 85).

output_path

string

No

Custom destination path (Defaults to [name]-[platform].[format]).

2. apply_watermark

Apply copyright text or brand logo watermarks to an image to prevent unauthorized reuse or web scraping.

Parameter

Type

Required

Description

image_path

string

Yes

Path to the source image file.

text

string

No*

Text watermark (e.g., "© 2026 MyStore.com").

logo_path

string

No*

Path to logo PNG/SVG to overlay.

position

string

No

bottom-right (default), bottom-left, top-right, top-left, center, tile.

opacity

number

No

Watermark opacity between 0.05 and 1.0 (Default: 0.6).

font_size

number

No

Text font size in pixels (auto-scales if omitted).

color

string

No

Hex color code (Default: #ffffff).

margin

number

No

Border margin in pixels (Default: 35).

output_path

string

No

Custom destination path.

*At least one of text or logo_path must be provided.

3. strip_photo_metadata

Sanitize photos by wiping EXIF tags, GPS geo-coordinates, camera serials, and XMP edit history.

Parameter

Type

Required

Description

image_path

string

Yes

Path to the image file to sanitize.

output_path

string

No

Custom destination path (Defaults to [name]-clean.[ext]).

format

string

No

same, webp, jpeg, png (Default: same).


💻 Manual Configuration

Claude Desktop (claude_desktop_config.json)

Add to %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "watermark-studio": {
      "command": "npx",
      "args": [
        "-y",
        "watermark-studio-mcp"
      ]
    }
  }
}

Or run directly from local clone:

{
  "mcpServers": {
    "watermark-studio": {
      "command": "node",
      "args": [
        "C:/Users/Milmann/.gemini/antigravity/scratch/watermark-studio-mcp/src/index.js"
      ]
    }
  }
}

Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "watermark-studio": {
      "command": "node",
      "args": [
        "C:/Users/Milmann/.gemini/antigravity/scratch/watermark-studio-mcp/src/index.js"
      ]
    }
  }
}

🧪 Testing

Run the included automated verification test suite:

npm test

This verifies:

  1. Preset image resizing (Shopify, Instagram, YouTube HD) with WebP compression.

  2. Text, logo, and tiled watermark compositing with SVG drop shadows.

  3. EXIF, GPS, and IPTC privacy sanitization.

  4. Live JSON-RPC protocol compliance over stdio.


🌐 Ecosystem & Web Studio

Looking for a visual web app with real-time live preview canvas, batch drag-and-drop, and zero-server client-side processing?

Visit Watermark & Resize Studio.


📄 License

MIT © Watermark & Resize Studio

Available Tools

3 tools
apply_watermarkB

Protect product photos, artwork, and marketing images by applying a text or logo watermark with customizable placement, opacity, and styling.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText to render as watermark (e.g., "© 2026 MyBrand", "PROMO COPY", "SAMPLE").
colorNoColor of text watermark in hex (e.g., "#ffffff", "#000000"). Default: #ffffff.#ffffff
marginNoPadding in pixels from the border edge. Default: 35.
opacityNoWatermark opacity level between 0.05 (very subtle) and 1.0 (fully opaque). Default is 0.6.
positionNoWatermark position: bottom-right (default), bottom-left, top-right, top-left, center, or tile (repeats diagonally).bottom-right
font_sizeNoFont size in pixels for text watermark. Default auto-scales to image dimensions.
logo_pathNoPath to a PNG or transparent logo image to overlay as watermark.
image_pathYesAbsolute or relative path to the image to watermark.
output_pathNoOptional destination file path. If omitted, saves as [name]-watermarked.[ext].

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It states that a watermark is applied, but does not disclose whether the original image is modified, what happens when both text and logo_path are supplied, what image formats are supported, or how output files are handled. Key behavioral details beyond the schema are missing.

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 description is a single sentence with no filler, and it front-loads the purpose before mentioning customizations. It is appropriately short for a well-schematized tool, though the phrase 'and styling' is slightly vague relative to the rich parameter set.

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

Completeness2/5

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

Given the tool has 9 parameters, no annotations, and no output schema, this high-level description is not sufficient for an agent to fully understand call behavior. It does not explain critical interaction rules such as whether text and logo can be combined, whether tile mode requires special handling, or what side effects occur on the filesystem.

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 baseline is 3. The description does add a high-level gloss by mentioning text or logo watermarks and customizable placement, opacity, and styling, but it does not provide deeper meaning or clarify ambiguous parameter interactions beyond what the schema already documents.

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?

The description uses a clear verb-resource structure: 'Protect product photos, artwork, and marketing images by applying a text or logo watermark.' This unambiguously distinguishes it from siblings strip_photo_metadata and resize_for_platform, which serve different purposes. The scope of the operation is immediately apparent.

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?

The description implies the tool should be used when an image needs protection via a watermark, and the sibling tools have obviously different functions. However, it never explicitly states when to use this tool versus alternatives, nor does it mention any exclusions or conditions where one of the sibling tools would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resize_for_platformB

Resize, format, and optimize images with industry presets for Shopify (2048x2048), Etsy (2000x2000), Instagram Square/Story/Portrait, YouTube Thumbnail, Facebook, Pinterest, or custom dimensions.

ParametersJSON Schema
NameRequiredDescriptionDefault
fitNoResize fit method. Defaults to inside for e-commerce, cover for social media.
widthNoCustom target width in pixels (optional, overrides preset width if given).
formatNoOutput image format. Defaults to webp for maximum compression and web speed.webp
heightNoCustom target height in pixels (optional, overrides preset height if given).
qualityNoImage quality level (1 to 100). Default is 85.
platformNoPlatform preset: shopify (2048x2048), etsy (2000x2000), instagram_square (1080x1080), instagram_portrait (1080x1350), instagram_story (1080x1920), youtube_thumb (1280x720), facebook_post (1200x630), pinterest_pin (1000x1500), or custom.shopify
image_pathYesAbsolute or relative path to the source image file (JPG, PNG, WebP, etc.).
output_pathNoOptional destination file path. If omitted, saves in the same directory with descriptive name.

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It does not mention whether the original file is modified, where the output is saved (the schema does this), how 'optimize' affects quality, or any other side effects. This leaves the agent uncertain about the tool's runtime behavior.

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 description is a single, reasonably sized sentence that front-loads the primary action and then lists platform presets. It has no filler, but it is a dense run-on list rather than a structured summary, slightly reducing readability.

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

Completeness3/5

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

For an 8-parameter tool with no annotations and no output schema, the description is a high-level summary. It covers the main purpose but lacks behavioral details, prerequisite information, and enough context to fully predict tool behavior. Adequate but with clear gaps.

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 baseline is 3. The description repeats the preset dimensions already present in the platform parameter description and adds no new semantics for parameters like fit, quality, or output_path. It barely supplements the schema.

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?

The description explicitly states a specific action ('Resize, format, and optimize') and a precise resource (images with industry presets for named platforms with dimensions). This clearly differentiates it from sibling tools like strip_photo_metadata and apply_watermark, which serve different purposes.

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?

The description implies usage for resizing images to platform-specific dimensions, but it does not explicitly state when to use this tool over siblings or provide any exclusions. The context is clear, yet no alternatives or when-not-to-use guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strip_photo_metadataA

Privacy sanitization tool: Safely remove EXIF camera info, GPS geolocation, IPTC, and sensitive tracking tags from images before publishing or sharing.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput image format. Defaults to same as original.same
image_pathYesPath to the image to sanitize and strip metadata from.
output_pathNoOptional destination file path. If omitted, saves as [name]-clean.[ext].

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full disclosure burden. It does state what metadata categories are removed and frames the operation as safe, but it does not clarify whether the original file is modified in place or a new file is produced; only the schema's output_path description implies a copy.

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?

The description is a single, well-structured sentence that front-loads the tool's purpose and lists the key behaviors without filler. Every word contributes to understanding what the tool does.

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?

The schema covers all parameters, including the default output naming behavior, and the description supplies enough context for a straightforward sanitization tool. Minor gaps remain around file overwrite behavior and return values, but these are not critical for correct invocation.

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 parameters are already well documented in the schema itself. The tool description adds no additional parameter-level meaning beyond the schema, justifying the baseline score.

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?

The description names a specific verb ('remove') and resource ('EXIF camera info, GPS geolocation, IPTC, and sensitive tracking tags') with a clear privacy goal. It is readily distinguishable from sibling tools like resize_for_platform and apply_watermark.

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?

The phrase 'before publishing or sharing' gives clear context for when this tool is appropriate. It does not explicitly mention alternatives or exclusion cases, but the intended use case is clear enough for an agent to select it over the siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.0
    • First observedapply_watermark
    • First observedresize_for_platform
    • First observedstrip_photo_metadata

TDQS

A4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool addresses a completely distinct image operation: metadata removal, resizing, and watermarking. There is zero overlap in functionality, so an agent can unambiguously select the right tool.

Naming Consistency5/5

All tool names follow a consistent 'verb_noun' pattern: strip_photo_metadata, resize_for_platform, apply_watermark. The naming is predictable and clearly describes the action and target.

Tool Count5/5

With exactly 3 tools, the server is tightly scoped to its stated purpose of watermarking, resizing, and metadata removal. Each tool earns its place, and the count is well within the ideal range.

Completeness5/5

For a 'Watermark & Resize Studio', the surface covers the full expected feature set: metadata stripping, resizing with platform presets, and watermark application. There are no obvious dead ends or missing core operations within its declared domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to locally process images with tools for cropping, zooming, enhancement, edge detection, segmentation, and text region extraction, all without external API keys. It uses PIL, OpenCV, and scikit-image for robust image analysis.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to process images locally via file paths—converting, resizing, removing backgrounds, smart cropping, upscaling, reading or stripping metadata, and batch processing—without files ever leaving the device.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to perform local image operations such as circle cropping, cropping, resizing, compressing, converting, and inspecting images without uploading files or making network calls.
    7
    57 npm
    MIT