Server definition
- Hash
- sha256:db21b9cdd9bc31f61d78660aaf18eaeeb8740c2d87c57cf27effd8baf1b79ce1
- What it is
- What a remote MCP server returned when asked what it offers: 8 tools
The blob, as servednamed by its sha256
{
"instructions": "FileConvert converts files between formats (documents, images, audio, video, archives, ebooks).\nTypical flow:\n 1. If the file is reachable by URL: call convert_file(source_url, source_format, target_format) — one call fetches, uploads and starts the job.\n If the file is local to you: call upload_file(filename, content_base64) then start_conversion(file_id, source_format, target_format).\n 2. Poll get_job_status(job_id) every couple of seconds until status is \"Completed\" (or \"Failed\", which includes the reason). Most jobs finish in seconds.\n 3. Call get_download_url(job_id); the returned link needs no authentication and can be given to the user directly. Results stay downloadable for about an hour.\nFormats are named by extension (\"pdf\", \"docx\", \"png\", \"webp\", \"mp3\", …); both formats must be in the same category (e.g. image→image). Use list_formats only when unsure what is supported.\nEvery conversion costs credits; get_balance shows what is left. Free accounts get a small daily package; more credits are available at the pricing page returned in errors.\nAuthentication: list_formats and get_upload_url work without credentials. Every other tool needs a FileConvert API key sent as the HTTP header \"Authorization: Bearer fc_live_...\" on the MCP request; keys are created at https://file-convert.online/account/api-keys.",
"tools": [
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"additional_arguments": {
"additionalProperties": true,
"description": "Optional free-form conversion arguments passed through to the converter.",
"type": "object"
},
"format_type": {
"description": "Optional category hint ('image', 'video', 'audio', 'document', 'archive', 'ebook'); only needed when an extension exists in several categories.",
"type": "string"
},
"format_type_id": {
"description": "Advanced: numeric format-type id from list_formats. Not needed when formats are given by name.",
"type": "integer"
},
"source_format": {
"description": "Current format of the file, named by extension, e.g. 'png', 'docx', 'mp4'. Required unless source_format_id is given.",
"type": "string"
},
"source_format_id": {
"description": "Advanced: numeric id of the source format from list_formats. Alternative to source_format.",
"type": "integer"
},
"source_url": {
"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.",
"type": "string"
},
"target_format": {
"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.",
"type": "string"
},
"target_format_id": {
"description": "Advanced: numeric id of the target format from list_formats. Alternative to target_format.",
"type": "integer"
}
},
"required": [
"source_url"
],
"type": "object"
},
"name": "convert_file",
"outputSchema": null
},
{
"description": "Returns the credit balance of the account that owns the API key, 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.",
"inputSchema": {
"additionalProperties": false,
"type": "object"
},
"name": "get_balance",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"file_id": {
"description": "A file uid to download directly. Provide either job_id or file_id.",
"type": "string"
},
"job_id": {
"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.",
"type": "string"
}
},
"type": "object"
},
"name": "get_download_url",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"job_id": {
"description": "The conversion job id (conversion uid) returned by convert_file.",
"type": "string"
}
},
"required": [
"job_id"
],
"type": "object"
},
"name": "get_job_status",
"outputSchema": null
},
{
"description": "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 an API key (the upload itself needs one).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"filename": {
"description": "The name of the local file the agent wants to upload, e.g. 'report.docx'. Used for the multipart form filename.",
"type": "string"
}
},
"required": [
"filename"
],
"type": "object"
},
"name": "get_upload_url",
"outputSchema": null
},
{
"description": "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 an API key.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"format_type": {
"description": "Optional format-type name to filter by (e.g. 'image', 'video', 'document'). When omitted, all formats across all types are returned.",
"type": "string"
}
},
"type": "object"
},
"name": "list_formats",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"additional_arguments": {
"additionalProperties": true,
"description": "Optional free-form conversion arguments passed through to the converter.",
"type": "object"
},
"file_id": {
"description": "The file id returned by upload_file (or by a previous conversion's converted file).",
"type": "string"
},
"format_type": {
"description": "Optional category hint ('image', 'document', …) when an extension exists in several categories.",
"type": "string"
},
"format_type_id": {
"description": "Advanced: numeric format-type id from list_formats.",
"type": "integer"
},
"source_format": {
"description": "Current format of the file by extension, e.g. 'docx'. Required unless source_format_id is given.",
"type": "string"
},
"source_format_id": {
"description": "Advanced: numeric source format id from list_formats.",
"type": "integer"
},
"target_format": {
"description": "Desired output format by extension, e.g. 'pdf'. Same category as the source. Required unless target_format_id is given.",
"type": "string"
},
"target_format_id": {
"description": "Advanced: numeric target format id from list_formats.",
"type": "integer"
}
},
"required": [
"file_id"
],
"type": "object"
},
"name": "start_conversion",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"content_base64": {
"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.",
"type": "string"
},
"filename": {
"description": "File name with extension, e.g. 'report.docx'. The extension helps the converter detect the format.",
"type": "string"
}
},
"required": [
"filename",
"content_base64"
],
"type": "object"
},
"name": "upload_file",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:db21b9cdd9bc31f61d78660aaf18eaeeb8740c2d87c57cf27effd8baf1b79ce1 | sha256sum