Skip to main content
Glama

Upload an image for email

uploadImage

Keep an image for email: give a public https link to it (a product or collection photo, a recipe photo, a logo) and get back its address in Kooga, for a layout's image block or for the logo (updateEmailBrand). It is asked for as PNG, JPEG or GIF, the kinds Gmail and Outlook show, and a store's CDN usually answers with one of those. An SVG or WebP that comes back as it is gets refused: ask the person for a PNG or JPG. Up to 5 MB.

Only for a workspace with subscribed email contacts.

A change inside Kooga: it runs at once, as the person.

Input Schema

NameRequiredDescriptionDefault
urlYesA public https link to the image
workspaceIdNoThe workspace, as listWorkspaces gives it (its id or slug). Leave it out when this connection reaches one workspace.

Output Schema

NameRequiredDescriptionDefault
urlYesThe image's address in Kooga, for an image block or the logo
kindYes
bytesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Adds a lot beyond the annotations: immediate execution ('it runs at once, as the person') signals auth/identity and no async job, plus hard limits (5 MB, format rejection) and the subscription gate. Minor tension: it describes fetching from a public URL and 'a store's CDN answers', which reads more open-world than openWorldHint=false implies, though the stored artifact stays inside Kooga.

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 and the input/output contract are front-loaded in the first sentence, and each following sentence adds a distinct constraint (formats, refusal handling, size, subscription, timing). Some parenthetical asides ('a product or collection photo, a recipe photo, a logo') pad it, but nothing is truly wasted.

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?

With an output schema present, return values need no explanation, and the description covers format acceptance, rejection handling, size limit, plan prerequisite and immediacy. What is left implicit is re-upload behavior for the same URL (consistent with idempotentHint=false but unstated) and workspace-scoping failure modes.

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 schema already documents both url and workspaceId; baseline 3 applies. The description reinforces the url contract (public https, image types, size) but says nothing about workspaceId or the one-workspace default beyond what the schema already states.

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 (upload/keep an image) and the exact contract: give a public https link, get back its address inside Kooga. It even names the downstream consumers (a layout's image block, updateEmailBrand for the logo), so it is unmistakable against siblings like updateEmailBrand or updateListing.

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 real preconditions and exclusions: 'Only for a workspace with subscribed email contacts', only PNG/JPEG/GIF (SVG/WebP are refused and the person must be asked for a PNG/JPG), 5 MB cap, and names the logo path via updateEmailBrand. It stops short of an explicit 'use X instead when...' against a sibling tool, which keeps it at 4 rather than 5.

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.

Resources