Convert files, HTML, and Markdown to PDF via the FileToPDF API. Bring your own API key.
A Model Context Protocol server for FileToPDF. 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).
| 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.
Cursor — one-click install: Add to Cursor (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, …):
{
"mcpServers": {
"filetopdf": {
"command": "npx",
"args": ["-y", "filetopdf-mcp"],
"env": { "FILETOPDF_API_KEY": "sk_live_YOUR_API_KEY" }
}
}
}
Claude Code:
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):
{
"servers": {
"filetopdf": {
"type": "stdio",
"command": "npx",
"args": ["-y", "filetopdf-mcp"],
"env": { "FILETOPDF_API_KEY": "sk_live_YOUR_API_KEY" }
}
}
}
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.
{
"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:
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).
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.
dev.filetopdf/filetopdf-mcpSource-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y filetopdf-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"dev-filetopdf-filetopdf-mcp": {
"command": "npx",
"args": [
"-y",
"filetopdf-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceFileToPDF works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.