Skip to main content
Glama

Inspect uploaded JSON metadata

get_upload
Read-onlyIdempotent

Inspect one upload’s availability, expiration, and byte size without reading its contents, running jq, or extending its lifetime. Use before reusing an older upload_id or to check whether deletion or expiration has made it unavailable. To read contents, use process_json with upload_id and filter ".". To remove it, use delete_upload. Pass the exact secret upload_id returned by upload_json or REST POST /uploads. No upload listing is exposed; anyone holding an ID can inspect that one upload. Returns success, available, status (available, missing, or expired), expires_at (UTC), expires_in_seconds, and size_bytes. Missing/deleted and expired uploads return available:false and size_bytes:null as a successful status check; expiration reports zero seconds. Does not consume processing quota or change stored data. Invalid IDs are rejected; a storage failure returns success:false,error,status:503.

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": {
      "upload_id": "<upload_id>"
    },
    "name": "get_upload"
  }
}

Input Schema

NameRequiredDescriptionDefault
upload_idYesExact secret upload_id returned by upload_json or POST /uploads; not a filename or URL. Anyone holding it can inspect, query, or delete that upload. Valid for 15 minutes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description goes further: no processing quota consumed, stored data unchanged, missing/expired IDs returning available:false with size_bytes:null as a successful status check, zero expires_in_seconds on expiration, invalid IDs rejected, and a success:false/503 on storage failure. That is substantive behavior beyond the annotations.

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?

Purpose and constraints are front-loaded, and each clause carries distinct information (routing, security caveat, return shape, failure modes). It runs long with several dense sentences, but no sentence is filler given the absence of an output schema.

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

Completeness5/5

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

For a single-parameter read tool with no output schema, the description supplies both the return field list (success, available, status, expires_at, expires_in_seconds, size_bytes) and the edge-case semantics for missing versus expired IDs, plus the failure path. Nothing an agent needs to interpret results is missing.

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 schema already documents the pattern, secret semantics, and 15-minute validity, so the baseline is 3. The description adds value by insisting on the exact ID from upload_json or POST /uploads and by stating no listing endpoint exists, meaning an ID is the only access path.

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?

The description opens with a specific verb (inspect) and a precisely scoped resource (one upload's availability, expiration, byte size), and immediately fences off what it does not do (read contents, run jq, extend lifetime). An agent can distinguish it from process_json and delete_upload without opening any schema.

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

Usage Guidelines5/5

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

It states the triggering conditions explicitly — use before reusing an older upload_id, or to check whether deletion/expiration made it unavailable — and routes alternatives by name: process_json with filter "." for contents, delete_upload for removal. Both the when and the when-not are covered.

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