Skip to main content
Glama

Upload Media

aidelly_upload_media

Default image-attach path for MCP: upload media in one step, server-side, with no client-to-Supabase connection required. Preferred for all browser-based chat clients (ChatGPT, Claude.ai) and safe for any client. Provide exactly one of source_url (a public HTTPS URL the server fetches — best for anything non-trivial and not subject to a payload size cap), data_url, or file_base64 (small inline images only; large payloads hit the MCP tool-call size limit). Returns media_id and read_url for aidelly_create_post content.media.

Input Schema

NameRequiredDescriptionDefault
bodyNoOptional body override for endpoints with sparse parameter schemas.
queryNoOptional query overrides for endpoints with sparse parameter schemas.
folderNo
brand_idNo
data_urlNoData URL such as data:image/png;base64,...
file_nameYes
source_urlNoPublic HTTPS URL to fetch server-side.
file_base64NoBase64-encoded file bytes.
content_typeNoRequired when using file_base64 or data_url.
workspace_idNoWorkspace to operate in: the `id` of a workspace returned by aidelly_list_workspaces. Optional for read operations; required when creating content.
idempotency_keyYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / idempotency_key / example
      Added value: +"order-123:create-post:v1"
    • addedInput schema / properties / idempotency_key / maxLength
      Added value: +255
    • addedInput schema / properties / idempotency_key / minLength
      Added value: +1
    • addedInput schema / properties / idempotency_key / pattern
      Added value: +"^[\\x21-\\x7E]{1,255}$"
  2. Changed1 schema field changed
    • changedInput schema / properties / workspace_id / description
      Previous value: -"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."New value: +"Workspace to operate in: the `id` of a workspace returned by aidelly_list_workspaces. Optional for read operations; required when creating content."
  3. Changed1 schema field changed
    • addedInput schema / properties / workspace_id / description
      Added value: +"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."
  4. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description adds genuinely new behavioral context: the fetch happens server-side with no client-to-Supabase connection, large inline payloads hit the tool-call size limit, and the response shape (media_id, read_url) is disclosed despite there being no output schema. It omits auth/permission needs and whether an upload can overwrite an existing asset.

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?

Two sentences, with the key routing decision and the input-exclusivity rule front-loaded; almost every clause carries decision-relevant information. The 'preferred for... and safe for any client' clause is slightly redundant and could be tightened.

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?

For an 11-parameter tool with nested body/query override objects and no output schema, the description covers the critical decision path (which source input to use, size limits, return fields) well. It leaves the idempotency_key requirement, folder/brand_id scoping, and the sparse-schema body/query overrides unexplained, which is a real but secondary gap.

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 64%, and the description compensates by stating the mutual-exclusivity rule ('provide exactly one of source_url, data_url, or file_base64'), which is not expressed anywhere in the schema, plus the practical tradeoff between them. It adds nothing for the remaining params (folder, brand_id, idempotency_key, body/query overrides), which is the gap that keeps it from a 5.

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 (upload media) and positions itself explicitly as the 'default image-attach path for MCP', which separates it from the sibling aidelly_create_media_upload_url (the signed-URL alternative). It also names the downstream consumer ('aidelly_create_post content.media'), so the agent knows what the upload is for.

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 clear context for use ('preferred for all browser-based chat clients... safe for any client') and per-input guidance on when to choose source_url vs data_url vs file_base64, including the reason (payload size cap). It stops short of explicitly naming the alternative sibling tool or stating when NOT to use this path, so it does not reach a 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.