Get started

MCP server

Connect Claude, Cursor, or any MCP client to ChangeThisFile — convert files between 999 routes with two tools, no API key.

ChangeThisFile ships a remote Model Context Protocol server. Any MCP-capable client — Claude.ai, Claude Code, Claude Desktop, Cursor, or your own agent — can convert files between 999 conversion routes with no account or API key.

Endpointhttps://changethisfile.com/mcp
TransportStreamable HTTP (POST), MCP spec 2025-03-26
AuthenticationNone required
Official registrycom.changethisfile/mcp
Source (stdio bridge)github.com/aadilr/changethisfile-mcp

Connect #

Claude.ai (web): Settings → Connectors → Add custom connector → paste https://changethisfile.com/mcp.

Claude Code:

claude mcp add --transport http changethisfile https://changethisfile.com/mcp

Claude Desktop / Cursor (stdio clients) — add to your MCP config:

{
  "mcpServers": {
    "changethisfile": {
      "command": "npx",
      "args": ["-y", "github:aadilr/changethisfile-mcp"]
    }
  }
}

Anything else — it is plain JSON-RPC 2.0 over HTTPS:

curl -X POST https://changethisfile.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Tools #

convert_file #

Convert a file and get back a temporary download URL. Pass either source_url or base64_content (+ source_format).

ArgumentRequiredDescription
target_formatYesTarget extension, e.g. pdf, mp3, json
source_urlOne ofPublicly accessible URL of the file (preferred for large files)
base64_contentOne ofBase64-encoded file content (≤ 25 MB decoded)
source_formatWith base64Source extension; auto-detected from URL/filename otherwise
filenameNoFilename hint for auto-detection
curl -X POST https://changethisfile.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"convert_file","arguments":{"source_url":"https://example.com/report.docx","target_format":"pdf"}}}'

The result text contains a signed download URL (valid 1 hour); the converted file itself is deleted within 24 hours.

list_conversions #

List every supported route, optionally filtered by source format:

curl -X POST https://changethisfile.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_conversions","arguments":{"source_format":"docx"}}}'

Limits #

LimitValue
convert_file calls5 / minute per IP
Other tool calls30 / minute per IP
Max input size25 MB
Download URL validity1 hour
File retentionDeleted within 24 hours

Need more? Get a free API key (1,000 conversions/month) and use the authenticated REST API, or see pricing for paid tiers.

Use as an Agent Skill #

For skills-capable agents (Claude Code, Codex CLI, Cursor, Gemini CLI, Copilot, and others), install the file-conversion skill — it uses the MCP tools when connected and falls back to a bundled script over plain HTTPS otherwise:

npx skills add aadilr/changethisfile-mcp

Claude Code users can alternatively install the plugin (bundles the MCP server + skill): /plugin marketplace add aadilr/changethisfile-mcp then /plugin install changethisfile@changethisfile.

Troubleshooting #

"Rate limit exceeded (5/min per IP)" — wait 60 seconds, or switch to an API key for higher per-key limits.

"Unsupported conversion: X→Y" — the error lists valid targets for your source format; call list_conversions to browse all routes, or see supported formats.

"File too large" — the no-auth MCP path caps inputs at 25 MB. Use the authenticated API for files up to 5 GB (plan-dependent).

Download URL returns 410/expired — signed URLs last 1 hour. Re-run the conversion to get a fresh URL.

GET /mcp returns 405 — expected. The server is POST-only (no SSE stream); MCP clients fall back to POST mode automatically.

Tools don't appear in your client — remove and re-add the server (Claude.ai: Settings → Connectors; Claude Code: claude mcp remove changethisfile then re-add). Verify the endpoint responds with the curl tools/list example above.

Conversion fails with a 5xx — transient backend issue; retry once, then check system status or email support@changethisfile.com.