Convert files between 110+ document, image, audio, video, archive and ebook formats from AI agents.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <API key>. Create a key at https://file-convert.online/account/api-keys (format fc_live_...).
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Public 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.
Optional category hint ('image', 'video', 'audio', 'document', 'archive', 'ebook'); only needed when an extension exists in several categories.
Current format of the file, named by extension, e.g. 'png', 'docx', 'mp4'. Required unless source_format_id is given.
Desired 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.
Advanced: numeric format-type id from list_formats. Not needed when formats are given by name.
Advanced: numeric id of the source format from list_formats. Alternative to source_format.
Advanced: numeric id of the target format from list_formats. Alternative to target_format.
Optional free-form conversion arguments passed through to the converter.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| source_url* | string | Public 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_type | string | Optional category hint ('image', 'video', 'audio', 'document', 'archive', 'ebook'); only needed when an extension exists in several categories. |
| source_format | string | Current format of the file, named by extension, e.g. 'png', 'docx', 'mp4'. Required unless source_format_id is given. |
| target_format | string | Desired 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_id | integer | Advanced: numeric format-type id from list_formats. Not needed when formats are given by name. |
| source_format_id | integer | Advanced: numeric id of the source format from list_formats. Alternative to source_format. |
| target_format_id | integer | Advanced: numeric id of the target format from list_formats. Alternative to target_format. |
| additional_arguments | object | Optional free-form conversion arguments passed through to the converter. |
{
"type": "object",
"required": [
"source_url"
],
"properties": {
"source_url": {
"type": "string",
"description": "Public 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_type": {
"type": "string",
"description": "Optional category hint ('image', 'video', 'audio', 'document', 'archive', 'ebook'); only needed when an extension exists in several categories."
},
"source_format": {
"type": "string",
"description": "Current format of the file, named by extension, e.g. 'png', 'docx', 'mp4'. Required unless source_format_id is given."
},
"target_format": {
"type": "string",
"description": "Desired 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_id": {
"type": "integer",
"description": "Advanced: numeric format-type id from list_formats. Not needed when formats are given by name."
},
"source_format_id": {
"type": "integer",
"description": "Advanced: numeric id of the source format from list_formats. Alternative to source_format."
},
"target_format_id": {
"type": "integer",
"description": "Advanced: numeric id of the target format from list_formats. Alternative to target_format."
},
"additional_arguments": {
"type": "object",
"description": "Optional free-form conversion arguments passed through to the converter.",
"additionalProperties": true
}
},
"additionalProperties": false
}Returns the credit balance of the signed-in account, plus where to get more. Every conversion costs credits; call this when a conversion fails with 'no credits' or when the user asks how many conversions they have left.
No arguments.
{
"type": "object",
"additionalProperties": false
}Returns the download URL of a converted file. Pass 'job_id' (conversion uid) to resolve the converted file of a finished conversion, or 'file_id' to download a known file uid directly. The URL needs no authentication (the unguessable file id is the capability), so it can be handed to the user or another system as-is. It stops working when the file's retention ends — about one hour after conversion by default — so download or share it promptly.
| Argument | Type | Description |
|---|---|---|
| job_id | string | The conversion job id (conversion uid). When given, the converted file uid is resolved from the completed conversion. Provide either job_id or file_id. |
| file_id | string | A file uid to download directly. Provide either job_id or file_id. |
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"description": "The conversion job id (conversion uid). When given, the converted file uid is resolved from the completed conversion. Provide either job_id or file_id."
},
"file_id": {
"type": "string",
"description": "A file uid to download directly. Provide either job_id or file_id."
}
},
"additionalProperties": false
}Returns the current status of a conversion job. Statuses: Pending → Processing → Completed or Failed (Failed includes the reason). Poll every 2–3 seconds after convert_file / start_conversion; when Completed, call get_download_url. Also returns the full conversion object, which includes the converted file uid once the job has finished.
| Argument | Type | Description |
|---|---|---|
| job_id* | string | The conversion job id (conversion uid) returned by convert_file. |
{
"type": "object",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"description": "The conversion job id (conversion uid) returned by convert_file."
}
},
"additionalProperties": false
}Returns instructions for uploading an agent-local file into FileConvert. FileConvert does NOT use presigned upload URLs; instead you upload the file bytes directly to the gateway as a multipart/form-data POST. The response gives the exact URL, HTTP method, form field name and required Authorization header. After uploading you receive a file object whose 'uid' can be passed to a conversion. If your file is reachable over http(s), prefer convert_file(source_url, target_format) which fetches and uploads it for you. Works without a token (the upload itself needs one).
| Argument | Type | Description |
|---|---|---|
| filename* | string | The name of the local file the agent wants to upload, e.g. 'report.docx'. Used for the multipart form filename. |
{
"type": "object",
"required": [
"filename"
],
"properties": {
"filename": {
"type": "string",
"description": "The name of the local file the agent wants to upload, e.g. 'report.docx'. Used for the multipart form filename."
}
},
"additionalProperties": false
}Returns the file formats FileConvert can read and write, along with the format-type categories (image, video, document, audio, …). Use this first to discover valid 'format_type', 'source_format' and 'target_format' identifiers before calling convert_file. Each format includes its numeric id, name, file extension and description. Optionally pass 'format_type' to filter to a single category. Works without a token.
| Argument | Type | Description |
|---|---|---|
| format_type | string | Optional format-type name to filter by (e.g. 'image', 'video', 'document'). When omitted, all formats across all types are returned. |
{
"type": "object",
"properties": {
"format_type": {
"type": "string",
"description": "Optional format-type name to filter by (e.g. 'image', 'video', 'document'). When omitted, all formats across all types are returned."
}
},
"additionalProperties": false
}Starts a conversion of a file that is already in FileConvert (a 'file_id' from upload_file or from an earlier job) from 'source_format' to 'target_format' (named by extension). Returns the 'job_id' to poll with get_job_status. Conversions consume account credits.
| Argument | Type | Description |
|---|---|---|
| file_id* | string | The file id returned by upload_file (or by a previous conversion's converted file). |
| format_type | string | Optional category hint ('image', 'document', …) when an extension exists in several categories. |
| source_format | string | Current format of the file by extension, e.g. 'docx'. Required unless source_format_id is given. |
| target_format | string | Desired output format by extension, e.g. 'pdf'. Same category as the source. Required unless target_format_id is given. |
| format_type_id | integer | Advanced: numeric format-type id from list_formats. |
| source_format_id | integer | Advanced: numeric source format id from list_formats. |
| target_format_id | integer | Advanced: numeric target format id from list_formats. |
| additional_arguments | object |
Uploads file bytes (base64) into FileConvert and returns a 'file_id'. Use this when the file is not reachable by URL, then call start_conversion(file_id, source_format, target_format). For files reachable over http(s), convert_file is a single call instead.
| Argument | Type | Description |
|---|---|---|
| filename* | string | File name with extension, e.g. 'report.docx'. The extension helps the converter detect the format. |
| content_base64* | string | The file bytes encoded as base64 (standard or URL-safe alphabet, padding optional). Up to 25 MiB decoded; larger files should be given to convert_file by URL. |
{
"type": "object",
"required": [
"filename",
"content_base64"
],
"properties": {
"filename": {
"type": "string",
"description": "File name with extension, e.g. 'report.docx'. The extension helps the converter detect the format."
},
"content_base64": {
"type": "string",
"description": "The file bytes encoded as base64 (standard or URL-safe alphabet, padding optional). Up to 25 MiB decoded; larger files should be given to convert_file by URL."
}
},
"additionalProperties": false
}| Optional free-form conversion arguments passed through to the converter. |
{
"type": "object",
"required": [
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "The file id returned by upload_file (or by a previous conversion's converted file)."
},
"format_type": {
"type": "string",
"description": "Optional category hint ('image', 'document', …) when an extension exists in several categories."
},
"source_format": {
"type": "string",
"description": "Current format of the file by extension, e.g. 'docx'. Required unless source_format_id is given."
},
"target_format": {
"type": "string",
"description": "Desired output format by extension, e.g. 'pdf'. Same category as the source. Required unless target_format_id is given."
},
"format_type_id": {
"type": "integer",
"description": "Advanced: numeric format-type id from list_formats."
},
"source_format_id": {
"type": "integer",
"description": "Advanced: numeric source format id from list_formats."
},
"target_format_id": {
"type": "integer",
"description": "Advanced: numeric target format id from list_formats."
},
"additional_arguments": {
"type": "object",
"description": "Optional free-form conversion arguments passed through to the converter.",
"additionalProperties": true
}
},
"additionalProperties": false
}