Skip to main content
Glama

Convert a file from a URL

convert_file

End-to-end conversion of a remote file: fetches 'source_url' (with SSRF protection), uploads it to FileConvert, and starts a conversion from 'source_format' to 'target_format' (named by extension, e.g. png → webp, docx → pdf). Returns the conversion 'job_id' and the uploaded 'file_id'. Poll progress with get_job_status(job_id); when the status is Completed, call get_download_url(job_id) for the result. Conversions consume account credits. For a file you hold locally, use upload_file + start_conversion instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
source_urlYesPublic http(s) URL of the file to convert. It is fetched server-side with SSRF protection (private/loopback/link-local/metadata targets are refused). Max 200 MiB.
format_typeNoOptional category hint ('image', 'video', 'audio', 'document', 'archive', 'ebook'); only needed when an extension exists in several categories.
source_formatNoCurrent format of the file, named by extension, e.g. 'png', 'docx', 'mp4'. Required unless source_format_id is given.
target_formatNoDesired output format, named by extension, e.g. 'webp', 'pdf', 'mp3'. Must be in the same category as the source (image→image, document→document, …). Required unless target_format_id is given.
format_type_idNoAdvanced: numeric format-type id from list_formats. Not needed when formats are given by name.
source_format_idNoAdvanced: numeric id of the source format from list_formats. Alternative to source_format.
target_format_idNoAdvanced: numeric id of the target format from list_formats. Alternative to target_format.
additional_argumentsNoOptional free-form conversion arguments passed through to the converter.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden — and it delivers meaningful traits: SSRF filtering on the server-side fetch, credit consumption per conversion, and the multi-step async lifecycle with the exact follow-up calls. It omits auth requirements, failure/partial-failure behavior, and whether a failed job still consumes credits, which keeps it short of a 5.

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 end-to-end action, then workflow, then cost, then the alternative — a logical order with no filler sentences. The second sentence is long and dense given the 8-parameter surface, but it carries real information.

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?

Covers what a caller needs despite having no output schema: it names the returned job_id and file_id, the polling and download follow-ups, the credit cost, and the local-file alternative. The remaining unknowns (auth, error semantics) are peripheral to correct invocation.

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 3 baseline applies, but the description adds coordination value across 8 parameters: formats are named by extension, source and target must share a category, and the name-vs-id alternatives are framed as interchangeable. That cross-parameter framing goes slightly beyond the per-field schema text, warranting a modest bump.

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 with the full scope: fetch source_url, upload to FileConvert, and start a conversion. It explicitly distinguishes itself from upload_file/start_conversion for local files, so an agent can route correctly 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 the complete operating procedure (call it, then poll get_job_status(job_id), then get_download_url(job_id) on Completed) and names the alternative path ('For a file you hold locally, use upload_file + start_conversion instead'). Both when-to-use and when-not-to-use are explicit.

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