Skip to main content
Glama

upload_object

Upload a local file to an S3 bucket without overwriting an existing object, preventing accidental data loss.

Instructions

Upload a local file without overwriting an existing object.

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": {
      "bucket": "<bucket>",
      "key": "<key>",
      "local_path": "<local_path>"
    },
    "name": "upload_object"
  }
}

Input Schema

NameRequiredDescriptionDefault
keyYes
bucketYes
local_pathYes
content_typeNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the entire behavioral burden, and it discloses only one trait: existing objects are not overwritten. It does not say what actually happens in that case (error, skip, versioned write), whether the operation is idempotent, what permissions are required, or how content_type is resolved.

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?

A single front-loaded sentence with no filler; the no-overwrite constraint is placed where it will be read first. It is efficient, though the brevity is partly under-specification rather than pure tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter write tool with zero annotation coverage and zero schema descriptions, one sentence is not enough. An output schema exists so return values need not be explained, but error behavior, overwrite semantics, and parameter roles are all missing.

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

Parameters2/5

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

Schema description coverage is 0% across four parameters, so the description must compensate and largely does not. "Local file" loosely maps to local_path, but bucket, key, and especially content_type are never mentioned, leaving their meaning and defaults undocumented anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs a specific verb ("upload") with a specific resource ("a local file") and implicitly names the destination as an object in the store, which is enough to distinguish it from download_object. It stops short of explicitly referencing bucket/key or naming the sibling it complements, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this over download_object or the listing/inspection siblings, and no mention of prerequisites such as existing bucket, credentials, or size limits. The only contextual hint is the no-overwrite constraint, which is stated as a property rather than an instruction.

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