Connect Claude, ChatGPT, Gemini, or any MCP-compatible AI assistant to PDFen. Describe what you want in chat β your AI handles the conversion.
The PDFen MCP server connects your AI assistant directly to your PDFen account. Works with Claude, ChatGPT (Business/Enterprise/Edu), and Gemini CLI. Just describe what you want β "convert this document to PDF" β and your AI handles the rest.
| Scenario | Recommended variant |
|---|---|
| Files are online (URLs) or small (<5 MB) | HTTP variant β no installation needed |
| You use Claude Desktop and convert large local files (>5 MB) | Stdio variant β install once, use forever |
| Not sure | Start with the HTTP variant |
No installation. Works in Claude.ai web, Claude Desktop, and Claude mobile.
Go to Profile β API Tokens and create a new token. Copy it β you'll only see it once.
Select your AI assistant below for the exact setup steps:
Open the Claude Desktop config file
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add PDFengine to the config
{
"mcpServers": {
"pdfen": {
"url": "https://pdfen.com/mcp/sse",
"headers": {
"Authorization": "Bearer YOUR_TOKEN_HERE"
}
}
}
}
Replace <code class="bg-gray-100 px-1 rounded">YOUR_TOKEN_HERE</code> with the token you just created.
Restart Claude Desktop. PDFengine will appear in the MCP servers list.
In Claude.ai, open settings
Settings β Integrations β Add MCP ServerEnter the server details
https://pdfen.com/mcp/sseAuthorization: Bearer YOUR_TOKEN_HEREClick "Connect". PDFengine opens an authorization page to request permission.
In ChatGPT, go to connections
Settings β Connections β Add MCP ServerEnter the server URL
https://pdfen.com/mcp/sse
ChatGPT automatically detects the OAuth configuration and guides you through authorization.
Click "Allow". The connection is active.
Open the Gemini CLI config file
~/.gemini/settings.json
Add PDFengine
{
"mcpServers": {
"pdfen": {
"url": "https://pdfen.com/mcp/sse"
}
}
}
Run <code class="bg-gray-100 px-1 rounded">gemini</code>. Gemini CLI automatically detects the OAuth server and prompts for authorization.
| Mode | Max size | When to use |
|---|---|---|
file_url |
Up to your license limit (25β200 MB) | File has a public HTTPS URL |
file_base64 |
5 MB | Small file attached inline |
file_path |
Not available | Use stdio variant instead |
The stdio variant adds support for large local files directly from disk β no upload size limit.
Not yet publicly available
The @pdfen/mcp npm package is currently in development. The HTTP variant is live now and handles most use cases. For early access to local file support, contact us:
Once published, the stdio variant will be configured as follows:
node --version # Must be 18 or higher
No Node? Download from nodejs.org.
{
"mcpServers": {
"pdfen-local": {
"command": "npx",
"args": ["-y", "@pdfen/mcp"],
"env": {
"PDFEN_API_TOKEN": "YOUR_TOKEN_HERE"
}
}
}
}
The npx -y command will fetch the latest version automatically β no manual install needed.
| Mode | Max size | When to use |
|---|---|---|
file_url | Up to your license limit | File has a public HTTPS URL |
file_base64 | 5 MB | Small file inline |
file_path | Up to your license limit | Local file on disk |
Once connected, Claude can use these tools automatically. You don't need to call them by name β just describe what you want in plain language.
| Tool | What it does |
|---|---|
list_workflows | List all available PDF conversion workflows |
get_workflow_options | See configurable options for a workflow (OCR, compression, page rangeβ¦) |
start_conversion | Start a PDF conversion (async). Returns an execution_id immediately. |
get_execution_status | Poll status: pending, processing, done, or error |
get_download_url | Get a signed download link (valid 1 hour) when status is done |
get_user | Show your account info and subscription tier |
get_credits | Show your credit balance (personal + organization) |
get_upload_capabilities | Check which file input modes are available in this variant |
Every conversion follows this sequence β Claude handles this automatically when you describe what you need:
list_workflows β discover available workflows and find the workflow_id (an integer) for the conversion type you need.get_workflow_options (optional) β inspect configurable options such as OCR language, PDF/A type, or compression level.start_conversion β pass the workflow_id, your files, and any options. Returns an execution_id immediately; processing runs in the background.get_execution_status β poll every few seconds until status is done or error. Typical conversions complete in 5β30 seconds.get_download_url β retrieve a signed download link valid for 1 hour. Download your file before the link expires.Copy and paste these directly into Claude:
Convert this Word document to PDF: [attach file or paste URL]
What PDF workflows do I have available?
Convert https://example.com/report.docx to PDF and give me the download link.
Check my credit balance before converting these 5 files.
Compress this PDF and send me the result.
Merge these 3 PDFs into one document.
Your token may have expired or been revoked. Create a new one at Profile β API Tokens.
Make sure you copied the full token with no trailing spaces.
The HTTP variant has a 5 MB limit for inline files. Options:
file_url if the file has a public URL@pdfen/mcp) to use local file paths without size limitsYou're using the HTTP variant which doesn't have access to your local filesystem. Install the stdio variant:
npx -y @pdfen/mcp
Install Node.js from nodejs.org (LTS version). On Mac: brew install node.
After installing, restart your terminal and Claude Desktop.
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonYes β same rate as the API. 1 credit per document by default. New accounts receive 15 free credits. Purchase more at pdfen.com/pricing.
Errors are returned as {"isError": true, "code": "...", "message": "...", "user_instructions": "..."}. Common codes:
| Code | Meaning |
|---|---|
insufficient_credits | Not enough credits β buy more at pdfen.com/pricing |
workflow_not_found | Invalid workflow_id β run list_workflows to get a valid ID |
workflow_access_denied | That workflow belongs to another user |
file_too_large_for_license | File exceeds your plan's per-file size limit |
not_completed | Called get_download_url before conversion finished β poll first |
access_denied | Execution belongs to another user |
not_found | Execution ID does not exist |
server_error | Unexpected server-side error β try again or contact support |
Files are processed on PDFen servers and deleted after conversion. Same as the web app.
Yes β give them different names in the config (pdfen and pdfen-local).
No difference β credits are based on conversions, not the transport.
Use list_workflows in Claude to see all available conversions for your account.