Skip to main content
Glama

Upload a file

file_manager

Upload a local file (image or video) to Postey's CDN and get back a cdn_url for a post's media. The file goes straight to the CDN; the assistant receives only the URL, never the file contents. It is for files on the user's machine; upload_media handles files that already have a public URL. The returned cdn_url is the media URL as given; a URL built from an id, filename or path points at no stored object.

It does not upload anything by itself: it returns a widget that the client renders and the user drops a file into. A client that cannot render MCP Apps UI uploads nothing, and no error says so; upload_media with source_type='url' or 'base64' works on those clients.

Media uploaded through Postey's MCP surface cannot currently be deleted.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
viewNoThe rendered widget; presentation only.
stateYes
$prefabNoPrefab envelope version.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses that the call returns a widget rather than uploading, that the assistant never sees file contents, that non-UI clients fail silently with no error, and that uploaded media cannot be deleted. The silent-failure warning is exactly the kind of trait an agent cannot infer from readOnlyHint/destructiveHint/openWorldHint.

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?

Front-loaded with the verb and outcome, and every sentence carries operational weight (sibling disambiguation, silent failure, immutability). Slightly dense — the sentence about 'a URL built from an id, filename or path points at no stored object' is the one line whose referent is hard to pin down without the output schema.

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?

Covers the failure mode that matters most (no upload on non-UI clients, silently), the lifecycle constraint (cannot be deleted), and the data-flow guarantee (URL only, not contents). Since an output schema exists, the description is not obliged to document return values, and the remaining gap is closed by that 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?

There are zero parameters, so the baseline is 4; the schema (additionalProperties: false, empty properties) matches the description's claim that nothing is passed in. The description could have made explicit that all interaction happens in the rendered widget, but no parameter meaning is missing.

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?

Opens with a specific verb+resource ('Upload a local file ... to Postey's CDN') and states the concrete outcome (a cdn_url for a post's media). It explicitly distinguishes itself from the sibling upload_media by input type (local file vs. existing public URL), so an agent can route between them without opening a 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?

Names the alternative (upload_media) and the exact conditions that select it: clients that cannot render MCP Apps UI, and source_type='url' or 'base64'. It also states the positive condition — files on the user's machine — with no ambiguity left.

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