Skip to main content
Glama

Mailzzy

Mailzzy MCP assets image upload

mcp_crm_assets_image_upload

Store a base64-encoded image on this tenant's own CDN and return the hosted URL. Use this when the user supplies an image directly (a logo, product photo, or screenshot) and you need a URL for it before composing campaign or template HTML - put the returned url in your . To re-host an image that is already on the public web, use mcp_crm_assets_image_import instead - do NOT download it yourself and re-encode it here. Accepted formats: gif, jpeg, jpg, png, webp, determined by the fileName extension. SVG is deliberately not accepted. base64Data may be raw base64 or a data: URI; oversized images are rejected rather than downscaled. Optionally pass entityType ('campaign', 'template', or 'form') and entityId to file the image alongside the entity it belongs to. Tenant is bound to the session and cannot be set via tool arguments.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "fileName": "<fileName>",
      "base64Data": "<base64Data>"
    },
    "name": "mcp_crm_assets_image_upload"
  }
}

Input Schema

NameRequiredDescriptionDefault
entityIdNoOptional id of the owning campaign/template/form, for cleanup and browsing
fileNameYesFile name including extension (required). The extension must be one of gif, jpeg, jpg, png, webp.
base64DataYesThe image bytes as base64, or a data: URI (required)
entityTypeNoOptional owner bucket: 'campaign' (default), 'template', or 'form'

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare it is a non-read-only, non-destructive, closed-world write. The description adds substantive behavior the annotations cannot convey: accepted formats keyed off the fileName extension, a deliberate rejection of SVG, rejection rather than downscaling of oversized images, accepted base64/data-URI input forms, optional entity filing, and session-bound tenancy. That is rich context well beyond the structured fields.

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?

Six sentences, front-loaded with the purpose, then usage, then format/limits, then the entity filing and tenancy notes. Every sentence carries distinct information; nothing is padding or restated from the schema.

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?

With no output schema, the description explicitly states what is returned (the hosted URL) and even where to put it ('<img src="...">'). For a 4-parameter tool it covers purpose, routing, constraints, and return value with nothing an agent would need left 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 description coverage is 100%, so the baseline is 3, but the description adds real meaning: the format is determined by the fileName extension, SVG is deliberately excluded, oversized base64Data is rejected rather than resized, and entityType values are enumerated with 'campaign' as default. It reinforces rather than merely restates 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?

States a specific verb and resource ('Store a base64-encoded image on this tenant's own CDN and return the hosted URL') and immediately names the sibling it is not, mcp_crm_assets_image_import, with the distinguishing condition. An agent can pick between the two upload paths without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Gives explicit when-to-use ('user supplies an image directly... need a URL before composing campaign or template HTML'), explicit when-not ('already on the public web'), the alternative tool to use instead, and a prohibition ('do NOT download it yourself and re-encode it here'). Nothing is left to inference.

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.