Skip to main content
Glama

Convert file

convert_file

Convert uploaded documents, spreadsheets, presentations, PDFs, and images to another format; OCR extracts text from scanned PDFs and pictures.

Instructions

Convert an uploaded file to another format, with no AI. Word, Markdown, text, HTML and .odt → docx, pdf, md, txt, html, odt, rtf; Excel and CSV → xlsx, csv, pdf, md, txt; PowerPoint → pptx, pdf, md, txt; PDF → docx, md, txt; PNG and JPEG → pdf, md. Scanned PDFs and pictures are read with OCR. md, txt, html and csv come back as text (use md to read any file); the rest as a download link valid 5 minutes. The first 1000 conversions each month are free, then 0.01 € each.

Input Schema

NameRequiredDescriptionDefault
toYesThe format you want.
file_idYesFrom upload_file, or the id of a document Doconda made (list_documents).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.0

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the response shape difference (md/txt/html/csv return inline `text`, everything else returns a download link valid only 5 minutes), OCR behavior for scanned PDFs and images, and the billing model (first 1000/month free, then 0.01 € each). These are exactly the operational facts an agent cannot get from readOnlyHint=false or destructiveHint=false.

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-loads the purpose, then packs the format matrix into one dense but scannable clause, followed by return-format and pricing sentences. The conversion lists are long but each entry carries decision-relevant information; the only slight waste is the somewhat verbose arrow chains.

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?

With no output schema, the description carries the return-value burden itself — and it does, covering the text-vs-download-link split, the 5-minute link expiry, and OCR handling. Combined with the format matrix and cost note, an agent has everything needed to call this correctly on the first try.

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 baseline is 3, and the description earns a bump by explaining what each `to` value implies for the response type and by making the md choice a usability recommendation. What it doesn't do is clarify format-specific failure modes (e.g., unsupported source/target pairs) beyond the matrix.

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+resource (convert a file) and backs it with an explicit source→target format matrix, so an agent can immediately tell this apart from create_document, upload_file, or get_document. The 'with no AI' qualifier further distinguishes it from AI-driven document creation siblings.

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?

Gives clear routing context: file_id comes 'From upload_file, or the id of a document Doconda made (list_documents)', and 'use md to read any file' steers the agent toward md when the goal is reading content. It stops short of stating when NOT to use it (e.g., when to prefer get_document over converting), so no explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.