# filechanger-mcp

> MCP server for FileChanger: convert text between document formats, list supported formats, and read the API docs.

Latest version **0.1.3** (published 2026-08-26) · MIT license · 0 weekly downloads

## Install

```sh
npm install filechanger-mcp
pnpm add filechanger-mcp
yarn add filechanger-mcp
bun add filechanger-mcp
```

Provides the command `filechanger-mcp`.

## Health

**Score 60/100 (C)** — status: active.

Positive: esm support; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no types; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.1.3 |
| Published | 2026-08-26 |
| First published | 2026-07-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM |
| Node | >=18 |
| Dependencies | 0 |
| Unpacked size | 6.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | seanparsons |
| Keywords | mcp, modelcontextprotocol, filechanger, pandoc, document-conversion |

## Links

- npm: https://www.npmjs.com/package/filechanger-mcp
- Homepage: https://filechanger.io
- npm.io page: https://npm.io/package/filechanger-mcp

## Alternatives

- [@cantoo/pdf-lib](https://npm.io/package/@cantoo/pdf-lib.md) — 297.9K weekly downloads
- [datatables.net-buttons](https://npm.io/package/datatables.net-buttons.md) — 200.1K weekly downloads
- [@ckeditor/ckeditor5-export-pdf](https://npm.io/package/@ckeditor/ckeditor5-export-pdf.md) — 167.0K weekly downloads
- [scanbot-web-sdk](https://npm.io/package/scanbot-web-sdk.md) — 15.0K weekly downloads
- [@syncfusion/ej2-angular-pdfviewer](https://npm.io/package/@syncfusion/ej2-angular-pdfviewer.md) — 8.8K weekly downloads

## Recent versions

- 0.1.3 (latest) — 2026-08-26
- 0.1.2 — 2026-07-31
- 0.1.1 — 2026-07-10
- 0.1.0 — 2026-07-08

## README

# filechanger-mcp

MCP server for [FileChanger](https://filechanger.io), 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](https://filechanger.io).

**Claude Code:**

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

**Any other MCP client**, add to your config:

```json
{
  "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.

## Links

- [filechanger.io](https://filechanger.io)
- [API documentation](https://filechanger.io/docs)
- [Supported format pairs](https://filechanger.io/formats)
- [Pricing](https://filechanger.io/pricing)

MIT licensed.

---
_Source: https://npm.io/package/filechanger-mcp · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
