Skip to main content
Glama

Upload File (HTTP)

upload_file

Get a presigned upload URL for use with ocr_to_markdown, transcribe_to_markdown, or extract_to_markdown in HTTP mode. After calling this tool, PUT the file to upload_url (with the correct Content-Type header), then pass object_key as uploaded_file_reference to the processing tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted.
filenameYesOriginal filename with extension (e.g. 'report.pdf').
file_sizeYesFile size in bytes.
mime_typeYesMIME type (e.g. 'application/pdf', 'audio/mpeg').

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
expires_inYesURL expiry in seconds
object_keyYesPass this as uploaded_file_reference to ocr_to_markdown, transcribe_to_markdown, or extract_to_markdown
upload_urlYesPresigned URL — PUT the file here with the correct Content-Type header

TDQS

A4.5/5.0
Behavior4/5

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

It discloses the real workflow: the tool only returns a presigned URL, requiring a subsequent PUT request and passing object_key to the processing tool. This goes beyond the annotations, which only indicate readOnlyHint=false and no destructiveness.

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?

Two sentences, front-loaded with the verb and resource, then a concise follow-up. No fluff.

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?

The description tells the user exactly what to do before, during, and after the call: get the URL, PUT the file, then pass the key. With an output schema present, return values don't need enumeration. This fully covers the tool's purpose and workflow.

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?

The schema already documents all four parameters. The description adds context that these parameters are used to generate the presigned upload URL and that the mime_type must match the Content-Type header in the PUT request, providing extra semantic meaning.

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 clearly states the tool's function: obtaining a presigned upload URL for use with specific processing tools in HTTP mode. It distinguishes from siblings by being the upload step, not the processing step.

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?

It explicitly states the intended context (for use with ocr_to_markdown, transcribe_to_markdown, or extract_to_markdown in HTTP mode) and provides step-by-step instructions for the upload flow. However, it doesn't explicitly mention when not to use it or alternative upload methods.

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

A4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: extracting structured documents, OCR, transcription, image generation, file upload, result file download, and job status retrieval. The descriptions provide clear boundaries, so an agent can easily select the right tool.

Naming Consistency5/5

Tool names follow a consistent snake_case pattern with verb-first names (e.g., extract_to_markdown, generate_image, upload_file). Conversion tools share the _to_markdown suffix, while utility tools use verb_noun, creating a predictable and readable convention.

Tool Count5/5

Seven tools is well-scoped for a file conversion and image generation server. Each tool addresses a distinct need without redundancy or bloat, making the set feel complete yet focused.

Completeness4/5

The tool surface covers the main workflows: converting documents, images, audio/video to Markdown, generating images, and handling file uploads and downloads. A minor gap is that get_job_result only fetches the latest job, lacking support for retrieving specific job results by ID, which could hinder multi-job workflows.