Skip to main content
Glama

skylight_upload_photo

Destructive

Upload a photo or video from your local file to appear in a Skylight frame slideshow. Requires confirmation to proceed; without it returns a preview.

Instructions

Upload a photo or video from a local file to the Skylight frame (it appears in the slideshow). Two-step: signs an S3 upload with temporary credentials, then registers it as a frame message. Without confirm:true it returns a dry-run preview echoing the resolved absolute image_path + detected mime and makes NO S3/network call; with confirm:true it uploads.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
captionNoCaption shown with the photo.
confirmNoMust be true to proceed. Without this, the tool returns a preview.
frameIdNo
frame_idsNoFrame ids to post to; defaults to the resolved frame.
image_pathYesAbsolute path to a local image/video file (jpg, png, heic, mp4, …).
Behavior5/5

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

Goes beyond destructiveHint annotation by detailing the two-step S3 signing and registration, and explicitly states that without confirm:true no network call is made. This level of detail helps the agent understand side effects and dry-run behavior.

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 front-loaded purpose, but the second sentence is dense with technical details. Nearly concise, but could be slightly more streamlined without losing key behavioral nuances.

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?

Given the lack of output schema and 5 parameters, the description covers the critical behavioral aspects: two-step process, dry-run mode, and S3 signing. It omits error handling or return format, but for a mutation tool with destructiveHint, this is fairly complete.

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?

The description adds context beyond the schema by mentioning 'resolved absolute image_path' and 'detected mime'. With 80% schema coverage, it still provides meaningful explanation of the dry-run mechanism and the role of confirm.

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?

Clearly states the tool uploads a photo/video to the Skylight frame for slideshow appearance, distinct from many sibling tools that manage lists, calendars, etc. The description explicitly mentions the two-step process and dry-run preview, leaving no ambiguity.

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?

Provides clear guidance on when to use confirm:true (actual upload) vs false (dry-run preview). Does not explicitly state when to use this tool over alternatives, but given no other upload tools exist among siblings, this is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrischall/skylight-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server