Skip to main content
Glama

upload_image

Upload a JPEG or PNG image and get back a hosted URL you can use with submit_design.

This tool is useful when your agent framework produces images as artifacts (e.g. base64 strings) and you need to upload them before submitting a design.

Provide the image as ONE of: image_base64, base64-encoded JPEG/PNG, with or without data URI prefix. image_url, publicly accessible image URL (max 5 MB). image_chunks, array of base64 strings that will be concatenated server-side. Use this if your base64 string is too large for a single parameter.

Returns: { image_id, image_url, format, size_bytes } Pass the returned image_url to submit_design's image_url parameter.

ALTERNATIVE: If your runtime truncates large base64 strings (common with LLM output token limits), you can submit designs by email instead:

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
image_urlNoPublicly accessible JPEG/PNG URL (max 5 MB)
image_base64NoBase64-encoded JPEG/PNG, with or without data URI prefix
image_chunksNoArray of base64 strings, concatenated server-side to form the full image. Use when base64 is too large for a single field.

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses input constraints (max 5 MB for URL), server-side concatenation for chunks, and the return object. It stops short of mentioning error handling or authentication, but the behavior is well outlined for the common use case.

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 longer than average, but every part serves a purpose: use case, parameter explanation, return format, and alternative path. It is well-structured with clear breaks. Minor redundancy exists (e.g., repeating schema language for parameter details), but overall it is efficient.

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?

The description fully covers the tool's context: what it does, when to use it, how to pass parameters, what it returns, and how the output is consumed by submit_design. It also provides an alternative email workflow, which is excellent contextual completeness for a tool with no output schema.

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 100%, so baseline is 3. The description adds the crucial rule that exactly one of the three parameters should be provided ('Provide the image as ONE of'), which is not enforced in the schema. It also reinforces the chunking rationale, adding clarity beyond the schema's field-level descriptions.

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 states a specific action ('Upload a JPEG or PNG image') and the result ('get back a hosted URL'), which immediately distinguishes it from siblings like submit_design and other upload-style tools. The mention of integration with submit_design adds context that clarifies its role.

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?

It explicitly explains when to use this tool ('when your agent framework produces images as artifacts') and provides a clear alternative via email when base64 strings are truncated. It also specifies that the returned URL should be passed to submit_design, giving concrete usage direction.

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.

TDQS

B3.4/5.0
Disambiguation3/5

Several tool pairs could be confused, such as get_offers vs get_redemption_offers, get_world_eggs vs discover_egg, and the human vs agent purchase flows (initiate_purchase/confirm_purchase vs initiate_agent_purchase/confirm_agent_purchase). The descriptions are detailed and mostly disambiguating, but the presence of a retired tool (create_concierge) and multiple similarly named status/check tools add ambiguity.

Naming Consistency4/5

The vast majority of tools follow a snake_case verb_noun pattern (list_drops, submit_design, redeem_points, verify_world_id). Minor deviations include 'priscilla_post' (proper noun prefix) and the interchangeable use of get/check/verify for status-like tools, but the overall convention is consistent and readable.

Tool Count2/5

With 44 tools, the server is well above the 25-tool threshold that makes a surface feel heavy. Even though the platform covers many domains (commerce, affiliate, design, quests, concierge, marketing), this many tools strains discoverability and agent decision-making.

Completeness2/5

The buyer and designer flows are well covered (search → detail → purchase → download; brief → submit → status), but the brand side is incomplete. register_brand promises the ability to create briefs and product listings, yet no tools exist to create briefs or products, and there are no update/delete/refund operations for any resource, leaving registered brands at a dead end.

Resources