Skip to main content
Glama

Create upload sessions

create_upload_sessions
Read-onlyIdempotent

Creates bounded, expiring upload programs for one or more files the host holds — one item per file. The result carries a signed PUT program per item. Exact replay of the required idempotency_key returns the same sessions and programs; reuse with changed inputs is idempotency_conflict.

After the PUT, FinStat checks the declared size and optional SHA-256 and retains the exact bytes behind the handle, never inspecting or interpreting them. Uploading admits nothing and authors nothing — the handle feeds create_standard_statements or create_standard_book. Not metered.

Input Schema

NameRequiredDescriptionDefault
itemsYes
workspace_tagYes
idempotency_keyYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior2/5

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

The description carries genuinely valuable behavior the annotations do not: exact replay of the idempotency_key returns identical sessions, changed inputs yield idempotency_conflict, size and optional SHA-256 are verified after PUT, bytes are retained unexamined, and the call is not metered. However, it opens with "Creates ... upload programs" while annotations declare readOnlyHint=true and destructiveHint=false — a mismatch an agent may act on when deciding whether a retry is safe. The "uploading admits nothing and authors nothing" clause partly reconciles this, but the verb/annotation tension should not be silently passed.

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 the action, then the result shape ("signed PUT program per item"), then the idempotency contract, then the downstream consumer. Dense but every sentence adds distinct information; the only soft spot is that the read-only framing is buried mid-paragraph rather than stated up front.

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?

An output schema exists and the description still usefully characterizes the return (a signed PUT program per item), and it covers expiry bounds, post-upload validation, and the downstream handoff. Gaps remain on authorization/workspace_tag semantics and on the read-only claim, which matter for a creation-style tool with a 50-item batch limit.

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 description coverage is 0%, so the description must compensate and it only partly does: it explains items as one-per-file, idempotency_key semantics (replay vs. idempotency_conflict), declared size / SHA-256 (max_bytes, sha256), and expiry (expires_in_seconds). It says nothing about workspace_tag, client_item_id, file_name, or media_type, leaving half the parameters undocumented in both schema and prose.

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 with scope: "Creates bounded, expiring upload programs for one or more files the host holds — one item per file." It also positions the result relative to sibling tools ("the handle feeds create_standard_statements or create_standard_book"), so an agent can distinguish this from the download-session and statement-authoring siblings without opening a 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?

The description makes the usage flow explicit: this tool produces a handle that is then consumed by create_standard_statements or create_standard_book, and it notes the operation is "not metered." It stops short of naming exclusions or the sibling it replaces (e.g., create_download_sessions for the reverse direction), so there is clear context but no when-not guidance.

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