Skip to main content
Glama

Add a file

add_media_file

Puts a file sent in this call on an alarm the person made: a picture or short video as the wallpaper, a song, or a voiceover. For a file this AI app has in hand; a file only on the person's phone can't be sent this way. The file goes in as base64, up to 28,000,000 characters, so a file of about 20MB at most through this call. LFG checks it like any upload, replaces what that slot had, and adds it to the person's uploads. What each takes. Wallpaper: a square (1:1) picture, about 1080 x 1080 pixels, as JPEG, PNG, WebP or GIF up to 50MB; a picture that is not square is cropped to a square. Or a square MP4 or MOV video, or a GIF that loops, up to 30 seconds and 50MB; a video needs a paid plan, a GIF does not. Song or voiceover: MP3, M4A, OGG, WAV or FLAC up to 5 minutes and 20MB.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesThe alarm's id.
useYeswallpaper, song, or voiceover.
nameNoWhat to call the file in the person's library, "Soccer team anthem". When absent, the file's own title.
data_base64YesThe file itself, base64-encoded.
content_typeYesThe file's type, "audio/mpeg", "audio/wav", "image/png", "video/mp4".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that the file replaces whatever previously occupied that slot, that it lands in the person's uploads, that it is validated like any upload, that a video requires a paid plan while a GIF does not, and that the 28,000,000-character base64 payload translates to roughly a 20MB ceiling. Annotations only supply the generic non-read-only/non-idempotent hints, so this added operational detail is genuinely load-bearing.

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 purpose and the payload constraint, and almost every sentence carries usable information. It is dense, run-on prose with no separation of the three 'use' cases, so a bulleted breakdown would be easier to act on, but there is little dead weight.

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 5-parameter mutation tool with no output schema and only generic annotations, it covers constraints, per-format rules, plan gating and the overwrite outcome. It does not describe the response or what happens on validation failure, but the remaining gap is small and the safety profile is annotation-backed.

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 already 100%, so the baseline is 3, but the description adds real meaning beyond it: per-enum constraints for 'use' (square 1:1 for wallpaper, 30s/50MB video vs 5min/20MB audio), crop behavior for non-square images, and accepted MIME families per slot. That materially clarifies how to pick 'use' and what will be accepted.

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: 'Puts a file sent in this call on an alarm', then narrows the three slots it can fill (wallpaper, song, voiceover). The scope constraint 'For a file this AI app has in hand; a file only on the person's phone can't be sent this way' effectively separates it from its close sibling add_media_from_url without opening either schema.

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 a clear use condition (file already in hand, base64-sendable) and a negative condition (file only on the phone). It never names the obvious alternative add_media_from_url, so the agent must infer the routing itself. Clear context, but no explicit 'use X instead'.

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