Skip to main content
Glama

Storage Upload Request

storage_upload_request

Mint a one-time uploader script for a private Storage blob (any file type).

Storage is the org's binary store: bytes go to the Railway bucket, metadata to drive_objects. Objects stay private until a human seat calls storage_publish (agent seats must request_gated_approval(gate=publish)). HTML/Markdown/diagram documents still use file_upload_request. Pass work_id and/or project_id to attach after ingest (kind=artifact; transcripts stay on shared files). Pass parent_id to place the file in a folder. Batch uploads are multiple grants (one file each) — console multi-select uses sequential ingest, not a multi-file grant. Returns upload_url, upload_token, max_bytes, and a self-deleting Python script. Token is single-use and expires in ~10 min. drive_upload_request is a deprecated alias of this tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
agentNoOverride agent identity
titleYesStorage object title
work_idNoAttach the uploaded Storage object to this work item UUID
filenameNoOptional local filename (script default path + MIME sniff)
parent_idNoFolder UUID to land the file in (omit or empty = org root). One grant per file.
project_idNoAttach the uploaded Storage object to this project UUID (kind=artifact)
content_typeNoOptional MIME type hint stored on the grant
upload_base_urlNoOptional server origin (e.g. https://teamshared.com). Defaults to settings.public_url.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • addedInput schema / properties / parent_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Folder UUID to land the file in (omit or empty = org root). One grant per file."
      +}
  2. Added

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so thoroughly. It discloses that objects stay private until storage_publish, that agent seats require request_gated_approval for publish, that the token is single-use and expires in ~10 minutes, and that the generated Python script is self-deleting. It also states the returned fields.

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?

The description is compact given the amount of routing, lifecycle, and parameter context it provides. The single-sentence purpose is front-loaded, and each subsequent sentence adds distinct useful information without filler.

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 tool with no annotations and 8 parameters, the description is unusually complete: purpose, sibling distinction, storage visibility model, approval flow, return values, token expiry, self-deleting script, attachment parameters, and batch behavior are all covered. An output schema exists for return shape, so the remaining detail burden is satisfied.

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%, so the schema already documents each parameter. The description adds useful behavior beyond the schema, such as attaching work_id/project_id after ingest with kind=artifact, clarifying parent_id folder placement, and explaining that batch uploads are one-file-per-grant rather than a multi-file grant.

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 and resource: 'Mint a one-time uploader script for a private Storage blob (any file type).' It explicitly contrasts with file_upload_request for documents and names drive_upload_request as a deprecated alias, so an agent can disambiguate from siblings.

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?

The description gives explicit routing guidance: use file_upload_request for HTML/Markdown/diagram documents, use this tool for binary Storage objects, and be aware that drive_upload_request is deprecated. It also explains the publish/approval workflow and batch semantics, which tells an agent when and how to invoke this tool versus alternatives.

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.

TDQS

B3.4/5.0
Disambiguation4/5

With 104 tools across many domains (memory, work, projects, files, agents, context, strategic, ontology), the use of clear prefixes (memory_, work_, project_, file_, agent_run_, context_) makes most tools distinct. However, there are some potential confusions between memory_session_* vs memory_state_*, and memory_recall vs memory_think vs memory_assemble_context, though descriptions clarify their specific purposes. Aliases like memory_playbook_get for memory_procedure_get are explicit and reduce ambiguity.

Naming Consistency5/5

Tool names follow a highly consistent pattern: prefix_domain_action (e.g., file_create, work_update, memory_recall, agent_run_start). All use snake_case, with verbs consistently placed after the domain prefix. Even less common tools like account_brief and attention_snapshot fit the overall naming scheme, making the set predictable and easy to navigate.

Tool Count3/5

At 104 tools, this is an exceptionally large surface area, far exceeding the 25+ threshold that feels heavy. However, the server covers an extensive domain (organizational memory, work management, project tracking, file sharing, agent orchestration, and strategic planning), which justifies a large count. Still, the sheer number may overwhelm agents, and some tools could be consolidated (e.g., many memory_session_* and memory_state_* variants).

Completeness4/5

The tool surface is remarkably complete for its stated purpose, covering CRUD operations for files, work items, projects, and memory, plus lifecycle management for agents, sessions, and strategic plans. Minor gaps exist (e.g., no direct memory_item_get by ID, no section removal in projects), but agents can work around these using existing tools like memory_recall or work_create with parent_id. Overall, the set minimizes dead ends.