Skip to main content
Glama

Upload a file to your Library

soclo_library_upload
Idempotent

Upload one selected image, video or audio file to the same owner upload namespace the app uses. Needs the separate manage:library grant and confirm: true after the owner approved the exact item. Pass a stable UUID uploadId, the exact SHA-256 digest of the file, a supported MIME type, and either base64 bytes or a public https sourceUrl. Upload stores bytes only: call soclo_library_finalize to obtain the durable asset id. After interruption read soclo_library_upload_status with the original uploadId; never substitute ids or repeat blindly. Debits no customer credits.

Input Schema

NameRequiredDescriptionDefault
bucketNo
sha256Yes
confirmNo
mimeTypeYes
uploadIdYes
sourceUrlNoA public https URL to fetch the file from (no credentials, private hosts or automatic redirects to them; up to 20 MiB, matching finalization). Use instead of contentBase64 for larger files.
contentBase64NoThe file bytes, base64. Inline base64 must fit the full 1 MiB MCP request envelope; use sourceUrl for larger selected files.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare idempotentHint/readOnlyHint/destructiveHint, but the description adds real behavioral context beyond them: the required grant, the confirm gate, that it stores bytes only (not a durable asset), that it debits no credits, and idempotency discipline ('never substitute ids or repeat blindly'). That is substantive disclosure layered on top of 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?

Front-loaded with the action and prerequisites, then parameters, then follow-up workflow. Five dense sentences, all carrying information, though the parameter sentence is long and could be split for readability.

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?

For a 7-parameter mutation with no output schema and low schema coverage, the description supplies auth, idempotency, size/transport choice, and the follow-up workflow. The main omission is the bucket parameter's role and any explicit return-shape note, but the finalize pointer largely covers the outcome.

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 description coverage is only 29%, so the description must compensate, and it does: it specifies uploadId as a stable UUID, sha256 as the exact file digest, mimeType as supported, and the either/or of base64 bytes vs public https sourceUrl. It omits any mention of the bucket parameter and only implies the confirm flag, leaving a small gap.

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 (upload an image/video/audio file into the Library) plus scope (owner upload namespace). It names sibling tools (soclo_library_finalize, soclo_library_upload_status) so the agent can distinguish this step from the surrounding finalize/status workflow without opening schemas.

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?

Gives explicit prerequisites (manage:library grant, confirm: true after owner approval of the exact item) and explicit routing: call finalize for the durable id, call upload_status after interruption. This is when-to-use and when-to-call-which-sibling guidance, not inference.

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