Skip to main content
Glama

Upload media

postfjord_upload_media

Adds a picture or video to the media library and returns its id, to use in mediaIds of postfjord_create_draft or postfjord_update_post. Send url: a public https address Postfjord downloads, such as a file on a CDN or a shared link that opens the file itself. JPEG, PNG, WebP, GIF, MP4 or MOV; a picture at most 50 MB, a video at most 500 MB, within the plan's storage. The file is processed after it arrives: status is processing until postfjord_get_media says ready. A draft can use the id right away; scheduling waits until it is ready. Nothing is posted. On a retry after a timeout or error, send the same idempotency_key: the first answer comes back and nothing is made or sent twice.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "postfjord_upload_media"
  }
}

Input Schema

NameRequiredDescriptionDefault
altNoAlt text: what the picture shows, for people who cannot see it.
urlNoThe http(s) address of the file. It must answer with the file itself, not a web page about it.
nameNoThe file name to show in the library. Left out, the name comes from the address or the file.
idempotency_keyNoYour own id for this one action, for example post-20261006-launch. Make a new one for each new thing; send the same one again only when you retry. Left out, the exact same call within 10 minutes counts as a retry.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

The description adds substantial behavior beyond the annotations: media is processed asynchronously, status remains processing until postfjord_get_media reports ready, drafts can use the id immediately while scheduling must wait, nothing is posted, and retries should reuse the same idempotency_key. These details clarify the mutation's side effects and retry semantics well beyond the readOnly/destructive/idempotent hints.

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?

The description is dense but well front-loaded: purpose and downstream id usage come first, followed by URL constraints, formats and limits, async status, posting behavior, and retry guidance. Every sentence contributes useful information for a relatively complex upload tool.

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?

With no output schema, the description sufficiently explains that the tool returns an id and that readiness is confirmed later via postfjord_get_media. The main remaining gap is that the schema marks no parameters as required, while the description says to send url without explaining the no-url case.

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 the schema already documents all four parameters. The description still adds meaningful constraints for url, including public https, CDN/shared-link behavior, supported formats, and size limits, and it explains idempotency_key retry behavior; however, it does not clarify that url is not marked required in the schema.

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 verb and resource: it adds a picture or video to the media library and returns its id. It also distinguishes the tool from siblings by naming postfjord_get_media for processing status and postfjord_create_draft/postfjord_update_post for consuming the returned id.

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?

It gives clear usage context: send a public https URL, use the returned id in drafts or updates, and check readiness with postfjord_get_media before scheduling. It does not explicitly state when not to use this tool versus alternatives such as list_media or resize_media, but the primary routing guidance is strong.

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