Skip to main content
Glama

Upload an image

upload_asset

Uploads a remote image (by url) as a reusable reference asset. Returns the new asset id. Pass category:"product" together with project_id to add it to that project's product photos (products column); without project_id a product asset is stored but shown in no project.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
nameNo
categoryNo
project_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already indicate readOnlyHint=false and destructiveHint=false inferring mutation without destruction. The description adds useful nuance: the asset is stored, can be associated with a project's product photos, and may be invisible to projects without project_id. But it does not mention URL accessibility, authentication, or effects on existing assets.

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?

Three purposeful sentences with no filler. The main action comes first, the return value second, and the conditional usage guidance last. The last sentence is dense but contains necessary behavioral detail rather than vague prose.

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?

It covers the return value and one important conditional workflow, and the annotations already carry the mutation-safety signal. But it is incomplete for a 4-parameter tool: name is undefined, other category values are unspecified, and there is no output schema or return type detail beyond 'asset id'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must do the work. It clarifies that url means a remote image URL and explains the interplay of category='product' and project_id in a specific case. However, the name parameter is completely undocumentedaine, and category semantics are only shown for one value, leaving the agent to infer other valid inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the action ('Uploads a remote image by url'), the object ('as a reusable reference asset'), and the result ('Returns the new asset id'). It is clear and concrete, but it does not explicitly distinguish itself from the similarly named sibling tool import_image, so it misses full differentiation.

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?

It provides actionable guidance for the product-category + project_id case and explains the behavior without project_id. However, it never states when to prefer this tool over import_image or other asset operations, and it does not mention any exclusions or alternatives.

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