Skip to main content
Glama

Request File Upload

talonic_request_upload

Generate a browser upload link so users can add files to their workspace when bytes cannot be attached to a tool call or exceed argument size limits; returns the URL and document ID.

Instructions

Get a browser upload link the user opens to add a file to their workspace. Returns the link plus a pre-allocated document_id.

USE WHEN: the user wants to upload a document and you cannot pass it directly: the client cannot attach file bytes to a tool call, or the file is too large for tool-call arguments. NOT FOR: a document already in the workspace (use its document_id) · a file already on a public URL (use file_url on talonic_extract). ARGS: filename (with extension). RETURNS: upload_url, document_id, expires_at. After the user uploads, poll talonic_get_document on that document_id until status is 'completed', then call talonic_extract. If status becomes ocr_failed, extraction_failed, or error, stop polling and report the failure to the user.

Input Schema

NameRequiredDescriptionDefault
filenameYesThe name of the file being uploaded, including extension (e.g. 'invoice.pdf'). Used to pre-allocate the document and infer MIME type.

Output Schema

NameRequiredDescriptionDefault
expires_atYesISO 8601 timestamp when the upload link expires.
upload_urlYesURL the user should open in their browser to drop the file.
document_idYesThe pre-allocated document ID. Use with talonic_get_document to poll status, and with talonic_extract once uploaded.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.45

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare readOnlyHint=false and destructiveHint=false but say nothing about the workflow. The description supplies the missing behavioral layer: the link is user-opened (out-of-band), an id is pre-allocated, the link expires, and the caller must poll talonic_get_document until 'completed' before calling talonic_extract. It even enumerates terminal failure states (ocr_failed, extraction_failed, error) and instructs the agent to stop polling — genuinely actionable context not present in the structured 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?

Front-loaded with the core action and return shape, then cleanly segmented into USE WHEN / NOT FOR / ARGS / RETURNS. Every sentence carries distinct information — no restatement of the name or 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?

Although an output schema exists, the description goes beyond it to explain the multi-step human-in-the-loop protocol (poll, then extract, with exit conditions on failure), which is exactly the orchestration knowledge an agent needs and structured fields cannot convey.

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 100% and the parameter's own description already covers extension and MIME-type inference. The 'ARGS: filename (with extension)' line adds a light reinforcement of the extension requirement but nothing the schema doesn't already state, so baseline 3 applies.

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 ('Get a browser upload link... to add a file to their workspace') and immediately names what it returns (link + pre-allocated document_id). This is clearly distinguishable from siblings like talonic_extract (URL-based ingestion) and talonic_get_document (status polling).

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?

Explicit USE WHEN clause defines the trigger condition (client cannot attach file bytes, or file too large for tool arguments). NOT FOR clause names two concrete alternatives and routes to them (existing document → document_id; public file → file_url on talonic_extract). Both when and 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.