Skip to main content
Glama

Upload media from a URL

upload_media_from_url

Download a photo or video from a public http(s) URL into Sendhour and return its media id. Videos: MP4 or MOV (WEBM for TikTok only). Photos: JPEG, PNG or WEBP (GIF for X only). Up to 95 MB. Local files can be sent with PUT /api/v1/media instead (see https://sendhour.com/docs).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "url": "<url>"
    },
    "name": "upload_media_from_url"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesPublic URL of the image or video

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only declare readOnly=false, openWorld=true, destructive=false; the description adds substantive behavior beyond that — 95 MB ceiling, per-platform format rules (MP4/MOV, WEBM TikTok-only, GIF X-only), and the fact that it returns a media id. It does not mention auth requirements, failure behavior on unsupported formats, or whether the fetched file is persisted permanently.

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?

Four short sentences, each carrying distinct information: action plus return value first, then format rules, then size cap, then the local-file alternative. No filler, no repetition of the title.

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 a one-parameter ingest tool with no output schema, the description covers what the agent needs: input constraints, accepted media types, size limit, and the return value (media id). Missing only secondary details such as error behavior on oversized or unreachable URLs.

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% and the single url parameter is already documented, so the baseline is 3. The description still adds real constraint semantics: the URL must be public and http(s), which tells an agent that authenticated or file:// URLs will fail — meaning beyond the schema's 'Public URL of the image or video'.

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: downloads a photo or video from a public URL into Sendhour and returns a media id. The scope ('from a public http(s) URL') separates it cleanly from local-file ingestion and from the sibling editing tools like add_text_to_photo or swap_slide_photo.

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?

Names an explicit alternative path for the main adjacent case: local files should go through PUT /api/v1/media with a docs link. It does not cover when to prefer this over siblings like find_slide_photos or list_videos, but those are clearly different operations, so the routing gap is minor.

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