Skip to main content
Glama

upload_image

Prepare an image upload for the open project. Returns a one-time uploadUrl. POST the image as multipart form field "file" to that URL. The response JSON url is the stored image. Use it with update_screenshot imageUrl, add_asset src, set_project_background, or img src and CSS url() inside add_div or update_div html. For card images, use type asset. The link works once; if the POST fails, call this tool again. Pass base64 only when you cannot make that HTTP request.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeYes
base64NoOptional raw base64 or data URL. Omit this and POST the file to uploadUrl.
filenameYesFile name, 1 to 120 characters, no path. Use a png, jpg, jpeg, or webp extension. For type asset, svg is also allowed.

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?

With no annotations, the description carries the full burden and delivers: it discloses the one-time uploadUrl, the multipart field name "file," the response shape (JSON url), the single-use link constraint, and the retry path ("if the POST fails, call this tool again"). This is unusually complete behavioral disclosure for a mutation/upload tool.

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?

Purpose is front-loaded, followed by the mechanics, then consumers, then edge cases and fallback. Every sentence carries distinct operational information with no filler or repetition.

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 annotations and no output schema, the description still fully explains the two-step upload contract, the return value, downstream usage, and failure handling. Nothing an agent needs to call it correctly is 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 coverage is 67% and the description adds real meaning beyond it: it clarifies base64 as a fallback rather than the default path, and ties type=asset to card images. The filename constraints and enum values are largely left to the schema, so it stops short of full compensation but adds genuine value.

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 ("Prepare an image upload") scoped to "the open project," and its two-step prepare/POST nature clearly separates it from sibling generators like generate_asset and direct mutators like add_asset. An agent can identify the tool's role 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 Guidelines5/5

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

Explicitly names the downstream consumers (update_screenshot imageUrl, add_asset src, set_project_background, add_div/update_div html), states the type=asset case for card images, and gives a clear condition for base64 ("only when you cannot make that HTTP request"). It routes the agent through the workflow rather than leaving usage 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.