Skip to main content
Glama
FileToPDF

FileToPDF MCP server

Official
by FileToPDF
README.md
# FileToPDF MCP server

[![npm](https://img.shields.io/npm/v/filetopdf-mcp)](https://www.npmjs.com/package/filetopdf-mcp)
[![smithery badge](https://smithery.ai/badge/filetopdf/filetopdf)](https://smithery.ai/servers/filetopdf/filetopdf)
[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=filetopdf&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImZpbGV0b3BkZi1tY3AiXSwiZW52Ijp7IkZJTEVUT1BERl9BUElfS0VZIjoic2tfbGl2ZV9ZT1VSX0FQSV9LRVkifX0%3D)

A [Model Context Protocol](https://modelcontextprotocol.io) server for
[FileToPDF](https://filetopdf.dev). It lets any MCP client — Claude Desktop, Claude Code,
Cursor, Cline, VS Code, ChatGPT, n8n, Make, or your own agent — convert **files, HTML,
and Markdown to PDF** through natural language: invoices, reports, documentation,
DOCX/XLSX/PPTX, images, web pages, and more.

**Bring your own API key** — get one free, in one click, at
<https://filetopdf.dev> (10 free conversions, no signup required).

## Tools

| Tool | What it does |
|------|--------------|
| `get_account` | Check the API key and show plan + remaining credits. Free, no credits used. |
| `convert_file` | Convert a file from a **public URL** (DOCX, XLSX, PPTX, images, HTML, MD, PDF…) to PDF. |
| `convert_html` | Render a raw **HTML** string (with optional CSS + layout options) to a pixel-perfect PDF via Chromium. |
| `convert_markdown` | Render a raw **Markdown** string (with optional CSS + layout options) to a clean PDF. |

Each convert tool returns a metadata summary **and** the PDF as an embedded
`application/pdf` resource (base64), so capable clients can save the file. Set the
`FILETOPDF_OUTPUT_DIR` env var, or pass `save_path`, to also write the PDF to disk.

Layout options (`landscape`, `paperWidth/Height`, margins, `scale`, `pdfa`,
passwords, …) are available on **Pro, Scale, and the free trial**; on Starter/Basic
they return an upgrade error. Each successful conversion costs **1 credit**; errors
are free.

## Quick start (local / stdio)

**Cursor** — one-click install:
[**Add to Cursor**](https://cursor.com/en/install-mcp?name=filetopdf&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImZpbGV0b3BkZi1tY3AiXSwiZW52Ijp7IkZJTEVUT1BERl9BUElfS0VZIjoic2tfbGl2ZV9ZT1VSX0FQSV9LRVkifX0%3D)
(then replace the placeholder with your key).

**Claude Desktop / Cline / any stdio client** — add to the MCP config
(`claude_desktop_config.json`, `cline_mcp_settings.json`, …):

```json
{
  "mcpServers": {
    "filetopdf": {
      "command": "npx",
      "args": ["-y", "filetopdf-mcp"],
      "env": { "FILETOPDF_API_KEY": "sk_live_YOUR_API_KEY" }
    }
  }
}
```

**Claude Code**:

```bash
claude mcp add filetopdf -e FILETOPDF_API_KEY=sk_live_YOUR_API_KEY -- npx -y filetopdf-mcp
```

**VS Code** (`.vscode/mcp.json` or via *MCP: Add Server*):

```json
{
  "servers": {
    "filetopdf": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "filetopdf-mcp"],
      "env": { "FILETOPDF_API_KEY": "sk_live_YOUR_API_KEY" }
    }
  }
}
```

## Hosted / remote (Streamable HTTP) — no install

A hosted endpoint is available at **`https://api.filetopdf.dev/mcp`**. Authenticate
with your own key via the `x-api-key` header, an `Authorization: Bearer` header, or
an `?apiKey=` query parameter.

```json
{
  "mcpServers": {
    "filetopdf": {
      "type": "streamable-http",
      "url": "https://api.filetopdf.dev/mcp",
      "headers": { "x-api-key": "sk_live_YOUR_API_KEY" }
    }
  }
}
```

This is also the URL to paste into any platform with an MCP client step —
**n8n** (MCP Client Tool), **Make** (MCP Client), **Zapier** (MCP Client beta),
**Relay.app** (Call MCP tool), Flowise, Langflow, Dify, LibreChat, AnythingLLM,
or agent frameworks (OpenAI Agents SDK, LangChain, CrewAI, Vercel AI SDK).

To self-host instead:

```bash
npm run build && npm run start:http   # listens on $PORT (default 8080) at /mcp
```

A `Dockerfile` is included for container hosting (Smithery, Fly, Render, Cloud Run).

## Develop & test

```bash
npm install
npm run build          # tsc -> dist/
npm test               # spawns the built stdio server, runs a live conversion
```

`npm test` reads `FILETOPDF_API_KEY`, or `API_KEY=` from a gitignored `.env`.

## Links

- Website & instant free API key: <https://filetopdf.dev>
- API docs: <https://filetopdf.dev/documentation>
- Official MCP registry name: `dev.filetopdf/filetopdf-mcp`

## License

[MIT](LICENSE)

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation5/5

Each conversion tool targets a distinct input type (URL-based files, raw HTML, raw Markdown), and get_account is separate. No overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (convert_file, convert_html, convert_markdown, get_account).

Tool Count5/5

Four tools is appropriate for a focused PDF conversion server, covering the main conversion methods and account info.

Completeness5/5

The tool surface covers all major conversion paths (URL-based auto-detection, raw HTML, raw Markdown) and account verification, with no obvious gaps.

Maintenance

ActivityInactive
ResponsivenessUnresponsive