Skip to main content
Glama

Add a photo to a project from a local file

add_image_from_file

Upload a local image file to a project, obtaining a presigned URL and storing the image directly to cloud storage, then attaching it to the project.

Instructions

Upload a LOCAL image file to a project. Reads the file, mints a presigned S3 URL (POST /projects/:id/images/upload-url), PUTs the bytes straight to storage (no credentials needed), then attaches it (POST /projects/:id/images). This is the credential-less upload path the remote MCP can't do. Image aspect ratio must be between 0.5:1 and 2:1. Blocked in read-only mode.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to a local image file (jpg/png/webp).
captionNoOptional caption stored with the image.
filenameNoOverride the stored filename (defaults to the file's basename).
projectIdYesTarget project id.
addToTimelineNoAlso append a video timeline element so the image is in the render. Default true.
Behavior4/5

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

Given no annotations, the description fully discloses the multi-step process (read file, mint S3 URL, PUT bytes, attach) and that no credentials are needed. Notes aspect ratio constraint. Missing potential side effects like overwriting, but overall transparent.

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?

Concise 4-sentence paragraph. Front-loads purpose, explains process, then constraints. Every sentence is informative with no redundancy.

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?

No output schema, but parameters are well-documented in schema. Description covers workflow and constraints. Could mention error cases or size limits, but fairly complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds context about local file path and aspect ratio, but does not elaborate on optional parameters beyond schema descriptions.

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 action: 'Upload a LOCAL image file to a project.' Distinguishes from siblings by emphasizing the credential-less local upload path not possible via remote MCP. Includes constraints like aspect ratio and read-only block.

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?

Explicitly notes this is the 'credential-less upload path the remote MCP can't do,' guiding when to use it. Also mentions 'Blocked in read-only mode.' Lacks explicit alternatives but provides clear contextual usage.

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/TryReelEstate/reel-estate-mcp'

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