npm.io
0.1.3 • Published 1 month agoCLI

filechanger-mcp

Licence
MIT
Version
0.1.3
Deps
0
Size
6 kB
Vulns
0
Weekly
0

filechanger-mcp

MCP server for FileChanger, giving an AI assistant the ability to convert documents between formats. Markdown to HTML, LaTeX to Typst, DocBook to AsciiDoc, RST to Jira markup, and a few hundred other pairs.

Conversion runs on FileChanger's servers (pandoc under the hood), so there is nothing to install locally beyond this package.

Setup

Get an API key (fc_...) at filechanger.io.

Claude Code:

claude mcp add filechanger -e FILECHANGER_API_KEY=fc_your_key_here -- npx -y filechanger-mcp

Any other MCP client, add to your config:

{
  "mcpServers": {
    "filechanger": {
      "command": "npx",
      "args": ["-y", "filechanger-mcp"],
      "env": { "FILECHANGER_API_KEY": "fc_your_key_here" }
    }
  }
}

Tools

Tool Arguments Returns
convert content, from, to (all required) The converted document as text
convert_file content_base64, from, to (all required) A job_id to poll
get_conversion job_id The job's status, and the converted file as base64 once it is done
list_formats none Supported input and output formats
docs none The FileChanger API documentation as markdown

list_formats and docs need no API key. Everything else does.

Formats are named as you would expect: markdown, gfm, commonmark, html, latex, typst, rst, docbook, org, mediawiki, dokuwiki, jira, textile, djot, json, csv, tsv, native. A couple are output-only, notably asciidoc and plain. Call list_formats for the authoritative lists, they are what the server actually validates against.

Once configured, you can just ask: "convert this LaTeX to Typst", and the assistant picks the tool up on its own.

Files and binary formats

convert handles text in, text out, in a single call. For anything else, files on disk and the binary formats (docx, epub, odt, pdf, images, audio, video), use convert_file: send the bytes base64-encoded, get a job_id back, and poll get_conversion until it reports done, at which point it hands back content_base64. The conversion runs on FileChanger's job queue, so transcoding a video does not hold a request open. The output is delivered once, so write it to disk when you get it.

Configuration

Variable Required Default
FILECHANGER_API_KEY for converting none, without it only list_formats and docs answer
FILECHANGER_URL no https://filechanger.io/mcp

FILECHANGER_URL is there for self-hosted or staging deployments. This package is a thin stdio proxy: it forwards JSON-RPC to that endpoint and streams the response back.

MIT licensed.

Keywords