Skip to main content
Glama
aadilr

ChangeThisFile MCP Server

by aadilr

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_file

Convert a file. Pass a publicly accessible source_url or base64_content (max ~5MB), plus a target_format (e.g. pdf, mp3, json). Source format is auto-detected from the URL/filename, or pass source_format explicitly. Returns a download URL valid for 1 hour.

list_conversions

List all supported conversion routes, optionally filtered by source_format (e.g. docx β†’ see every format you can convert DOCX into).

translate_file

Translate a document with its layout preserved. Returns a free preview and a one-time checkout link for the full output.

extract_tables

Extract tables from PDFs or images into Excel. Returns a free preview and a one-time checkout link for the full output.

compress_file

Compress a PDF, image, or video to an exact maximum size. Free with a daily limit.

do_file_job

Route a plain-language file instruction to conversion, translation, extraction, or compression.

check_job

Check a submitted job and retrieve its preview, checkout link, or download URL.

Related MCP server: Omni File Converter MCP

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/mcp

Option 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.js

Option 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-mcp

Claude Code plugin (bundles the MCP server + the skill):

/plugin marketplace add aadilr/changethisfile-mcp
/plugin install changethisfile@changethisfile

The 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-mcp

Quick 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

CTF_API_KEY

unset

Optional verified developer key forwarded as a bearer token; the value is never logged

CTF_MCP_URL

https://changethisfile.com/mcp

Override the upstream endpoint

CHANGETHISFILE_MCP_URL

unset

Legacy alias for CTF_MCP_URL

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_file uses 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 tools
convert_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).

ParametersJSON Schema
NameRequiredDescriptionDefault
source_urlNoPublicly accessible URL of the file to convert (preferred for large files)
base64_contentNoBase64-encoded file content (for small files; max ~5MB)
source_formatNoSource format extension (e.g. "docx", "mp4"). Auto-detected from URL if omitted.
target_formatYesTarget format extension (e.g. "json", "mp3", "pdf"). Required.
filenameNoOptional filename hint for auto-detection (e.g. "document.docx")

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 ConversionsA
Read-only
Inspect

List all supported conversion routes. Optionally filter by source format to see what you can convert FROM a specific format.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_formatNoFilter by source format (e.g. "docx" returns all DOCX target options)

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 2 tool updatesv1.0.0
    • First observedconvert_file
    • First observedlist_conversions

TDQS

A4.3/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one performs file conversions, the other lists supported conversion routes. No overlap exists.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern (convert_file, list_conversions) using snake_case, making naming predictable.

Tool Count3/5

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.

Completeness3/5

The server covers basic conversion and format discovery, but lacks features like conversion history, batch processing, or progress tracking, leaving notable gaps.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

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

Related MCP Servers

Latest Blog Posts

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