ChangeThisFile MCP Server
This server lets you convert files between 690+ formats for free, with no API key or signup required. It provides two tools:
convert_fileβ Convert a file by providing a publicly accessible URL (source_url) or base64-encoded content (base64_content, max ~5MB), along with atarget_format(e.g.pdf,mp3,json). Source format is auto-detected but can be specified manually. Returns a temporary download URL valid for 1 hour; files are auto-deleted within 24 hours.list_conversionsβ List all supported conversion routes, optionally filtered by asource_formatto see every compatible target format.
Supported format categories:
πΌοΈ Image: JPG, PNG, WebP, GIF, BMP, AVIF, ICO, SVG, TIFF, HEIC, PSD, RAW
π¬ Video: MP4, WebM, MKV, AVI, MOV, FLV, WMV
π΅ Audio: MP3, WAV, FLAC, AAC, OGG, M4A, OPUS
π Document: PDF, DOCX, ODT, RTF, TXT, HTML, MD, PPTX
π Data: JSON, CSV, TSV, YAML, XML, TOML, XLSX
π€ Font: TTF, OTF, WOFF, WOFF2
π Ebook: EPUB, MOBI, AZW3, FB2, CBR, CBZ
ποΈ Archive: ZIP, RAR, 7Z, TAR, TAR.GZ, TAR.BZ2
Powered by engines such as FFmpeg, LibreOffice, Calibre, 7-Zip, Ghostscript, and more.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ChangeThisFile MCP Serverconvert this PDF to DOCX"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ChangeThisFile MCP Server
Use ChangeThisFile's seven file tools from any MCP client: conversion across 1,000+ supported routes, document translation, table extraction, exact-size compression, natural-language routing, and job status checks.
Powered by ChangeThisFile.com. Discovery and paid-preview jobs are public. General convert_file accepts a verified developer key now and shares its quota with REST API usage. Anonymous conversion remains available during the connector compatibility window; authentication will not be enforced before August 27, 2026, and only after connector support is verified.
Tools
Tool | Description |
| Convert a file. Pass a publicly accessible |
| List all supported conversion routes, optionally filtered by |
| Translate a document with its layout preserved. Returns a free preview and a one-time checkout link for the full output. |
| Extract tables from PDFs or images into Excel. Returns a free preview and a one-time checkout link for the full output. |
| Compress a PDF, image, or video to an exact maximum size. Free with a daily limit. |
| Route a plain-language file instruction to conversion, translation, extraction, or compression. |
| Check a submitted job and retrieve its preview, checkout link, or download URL. |
Related MCP server: Omni File Converter MCP
Option 1 β Remote endpoint (recommended, no install)
The server is hosted at https://changethisfile.com/mcp using streamable HTTP transport (MCP spec 2025-03-26). If your client supports remote MCP servers, point it straight at the endpoint. Clients that support custom headers can send Authorization: Bearer ctf_sk_... to use authenticated developer metering.
{
"mcpServers": {
"changethisfile": {
"type": "streamable-http",
"url": "https://changethisfile.com/mcp"
}
}
}Claude Code:
claude mcp add --transport http changethisfile https://changethisfile.com/mcpOption 2 β Local stdio server (this package)
For clients that only speak stdio, this package bridges stdio β the hosted endpoint:
{
"mcpServers": {
"changethisfile": {
"command": "npx",
"args": ["-y", "github:aadilr/changethisfile-mcp"],
"env": {
"CTF_API_KEY": "ctf_sk_your_key_here"
}
}
}
}CTF_API_KEY is optional: without it you get 25 free conversions per month per network; after that convert_file asks for a key. Get a verified free key from the ChangeThisFile dashboard (or POST https://changethisfile.com/v1/keys/free with {"email":"you@example.com"} and click the verification email); its 25 monthly conversions are shared across MCP and REST. Paid plans start at $29/month.
Or clone and run directly:
git clone https://github.com/aadilr/changethisfile-mcp.git
cd changethisfile-mcp
npm install
node index.jsOption 3 β Agent Skill / Claude Code plugin
This repo doubles as an Agent Skill and Claude Code plugin.
Any skills-capable agent (Claude Code, Codex CLI, Cursor, Gemini CLI, Copilot, and more):
npx skills add aadilr/changethisfile-mcpClaude Code plugin (bundles the MCP server + the skill):
/plugin marketplace add aadilr/changethisfile-mcp
/plugin install changethisfile@changethisfileThe file-conversion skill prefers the MCP tools when connected and otherwise falls back to a bundled script (skills/file-conversion/scripts/convert.sh) that talks to the hosted endpoint over plain HTTPS β no MCP client required.
Option 4 β Docker
docker build -t changethisfile-mcp .
docker run -i --rm -e CTF_API_KEY changethisfile-mcpQuick test
curl -X POST https://changethisfile.com/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'Supported formats
Category | Examples |
Image | JPG, PNG, WebP, GIF, BMP, AVIF, ICO, SVG, TIFF, HEIC, PSD, RAW |
Video | MP4, WebM, MKV, AVI, MOV, 3GP, FLV, WMV |
Audio | MP3, WAV, FLAC, AAC, OGG, M4A, OPUS |
Document | PDF, DOCX, DOC, ODT, RTF, TXT, HTML, MD, PPT, PPTX |
Data | JSON, CSV, TSV, YAML, XML, TOML, XLSX, XLS |
Font | TTF, OTF, WOFF, WOFF2 |
Ebook | EPUB, MOBI, AZW3, FB2, CBR, CBZ |
Archive | ZIP, RAR, 7Z, TAR, TAR.GZ, TAR.BZ2, TAR.XZ |
Use list_conversions for the full route table.
Environment variables
Variable | Default | Purpose |
| unset | Optional verified developer key forwarded as a bearer token; the value is never logged |
|
| Override the upstream endpoint |
| unset | Legacy alias for |
Privacy & limits
Discovery and paid-preview jobs require no account. General conversion is temporarily anonymous in compatibility mode; a verified key enables shared developer metering now.
Files are processed server-side and auto-deleted within 24 hours; download URLs expire after 1 hour.
MCP inputs are capped at 25 MB. Authenticated
convert_fileuses the developer account's shared API/MCP rate and monthly quota; other expensive tools retain per-account or per-IP abuse limits.
License
MIT
Available Tools
2 toolsconvert_fileConvert FileAInspect
Convert a file from one format to another. Pass EITHER a publicly accessible URL (source_url) OR base64-encoded file contents (base64_content + source_format) β exactly one is required. Returns a temporary download URL (valid 1 hour; file deleted within 24 hours).
| Name | Required | Description | Default |
|---|---|---|---|
| source_url | No | Publicly accessible URL of the file to convert (preferred for large files) | |
| base64_content | No | Base64-encoded file content (for small files; max ~5MB) | |
| source_format | No | Source format extension (e.g. "docx", "mp4"). Auto-detected from URL if omitted. | |
| target_format | Yes | Target format extension (e.g. "json", "mp3", "pdf"). Required. | |
| filename | No | Optional filename hint for auto-detection (e.g. "document.docx") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral details: returns a temporary download URL (valid 1 hour) and that the file is deleted within 24 hours. These details are beyond what annotations provide (readOnlyHint=false, destructiveHint=false) and give the agent important lifecycle information. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at 3 sentences, each serving a distinct purpose: stating the core action, specifying parameter rules, and detailing the return behavior. No extraneous information is included, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return format (temporary URL with expiry) and data retention. It covers all input modalities and constraints. The presence of sibling tool name provides context. The description is complete for a conversion tool of moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all 5 parameters (100% coverage), setting baseline at 3. The description adds semantic value by explaining the mutual exclusivity of source_url and base64_content, specifying the ~5MB limit for base64, and noting that source_format can be auto-detected. This enhances the agent's understanding beyond the schema's per-parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a clear verb-resource pair: 'Convert a file from one format to another.' This immediately identifies the tool's core function. It also distinguishes itself from the sibling tool 'list_conversions' by focusing on performing the conversion rather than listing available formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the two mutually exclusive input methods (url vs base64) and clarifies that exactly one is required. It provides guidance on when to prefer each (URL for large files, base64 for small files) and mentions auto-detection of source format. However, it does not explicitly state when not to use this tool or compare it to alternatives beyond the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conversionsList Supported ConversionsARead-onlyInspect
List all supported conversion routes. Optionally filter by source format to see what you can convert FROM a specific format.
| Name | Required | Description | Default |
|---|---|---|---|
| source_format | No | Filter by source format (e.g. "docx" returns all DOCX target options) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description need not restate safety. The description adds the filtering behavior, which is useful but not extensive behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently communicate the purpose and optional filter, with zero unnecessary words. Front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description fully covers what the agent needs to know: what it lists and how to filter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter already described, but the description adds meaning by explaining the filter effect and providing an example ('docx' returns all DOCX target options), enhancing understandability.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and resource 'supported conversion routes', and implicitly distinguishes from sibling 'convert_file' by indicating this tool provides options for conversion rather than performing the conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies when to use the tool (to list conversion routes, optionally filtered by source format) and gives a concrete example. However, it does not explicitly state when not to use it or mention alternatives beyond the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.0.0- First observed
convert_file - First observed
list_conversions
TDQS
The two tools have clearly distinct purposes: one performs file conversions, the other lists supported conversion routes. No overlap exists.
Both tools follow a consistent verb_noun pattern (convert_file, list_conversions) using snake_case, making naming predictable.
With only 2 tools, the server feels minimal for a file conversion service. While covering the core functionality, the low count suggests a thin surface.
The server covers basic conversion and format discovery, but lacks features like conversion history, batch processing, or progress tracking, leaving notable gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Convert files between 400+ image, video, audio, document, ebook, archive and font formats.
Convert files between formats without quality loss. Speed up your workflow with fast, reliable conβ¦
Convert images to PNG, JPEG, WebP, or AVIF through one public remote MCP tool.
Convert between 200+ format pairs: JSON, CSV, XML, YAML, PDF, Excel, DOCX and more.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for seamless document format conversion using Pandoc, supporting Markdown, HTML, PDF, DOCX (.docx), csv and more.1579MIT
- AlicenseNot gradedqualityDmaintenanceConverts various document formats to desired output formats, currently supporting PDF to image conversion. No access keys required for basic file format conversion operations.3MIT
- AlicenseNot gradedqualityCmaintenanceFile conversion built for AI agents. CLI, REST API, and MCP server β all sharing one engine.141MIT
- AlicenseNot gradedqualityCmaintenanceA local file conversion server supporting audio, video, image, document, and specialized formats via Model Context Protocol. It enables batch and single-file conversions without cloud dependencies.12MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aadilr/changethisfile-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server