mcp-server-pdfnoodle
An MCP server that enables AI assistants to generate PDF documents through pdf noodle - create PDFs from templates or raw HTML using natural language.
What is pdf noodle?
pdf noodle is a PDF generation API that lets you:
- Create reusable PDF templates using AI
- Generate PDFs by filling templates with data
- Convert HTML directly to PDF
Installation
Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"pdfnoodle": {
"command": "npx",
"args": ["-y", "mcp-server-pdfnoodle"],
"env": {
"PDFNOODLE_API_KEY": "your-api-key"
}
}
}
}
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"pdfnoodle": {
"command": "npx",
"args": ["-y", "mcp-server-pdfnoodle"],
"env": {
"PDFNOODLE_API_KEY": "your-api-key"
}
}
}
}
Manual Execution
PDFNOODLE_API_KEY=your-key npx mcp-server-pdfnoodle
Remote Usage
This MCP server can also be used remotely via HTTP, making it compatible with ChatGPT and workflow automation tools like n8n.
Remote Server URL
The remote MCP server endpoint is:
https://mcp.pdfnoodle.com/mcp?api_key={your-api-key}
Authentication: None (API key is passed via URL query parameter only, no authentication headers required)
Using with ChatGPT
To use this MCP server with ChatGPT, configure it as a custom GPT or via the MCP settings:
- Get your API key from pdf noodle
- Configure the MCP server with the remote URL:
https://mcp.pdfnoodle.com/mcp?api_key=your-api-key - ChatGPT will be able to use all available pdf noodle tools through the remote server
Note: Replace your-api-key with your actual pdf noodle API key in the URL.
Using with n8n
You can integrate pdf noodle MCP server into your n8n workflows using HTTP Request nodes:
-
Create an HTTP Request node in your n8n workflow
-
Configure the node:
- Method:
POST - URL:
https://mcp.pdfnoodle.com/mcp?api_key=your-api-key - Authentication: None (API key is in the URL query parameter)
- Headers:
Content-Type: application/json - Body: JSON-RPC 2.0 format for MCP protocol calls
- Method:
-
Example request body for generating a PDF:
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "generate_pdf", "arguments": { "templateId": "template-id", "data": "{\"field\": \"value\"}" } } } -
Example request body for converting HTML to PDF:
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "html_to_pdf", "arguments": { "html": "<h1>Hello World</h1>", "pdfParams": "{\"format\": \"A4\"}" } } }
Security Note: Store your API key securely in n8n credentials or environment variables rather than hardcoding it in the URL.
Getting an API Key
- Go to pdf noodle
- Create an account or sign in
- Navigate to API settings to get your key
Available Tools
Template Operations
| Tool | Description |
|---|---|
list_templates | List all templates in your account |
get_template | Get details of a specific template |
get_template_schema | Get the variables required by a template |
create_template_with_ai | Create a new template using AI from a description |
PDF Generation
| Tool | Description |
|---|---|
generate_pdf | Generate a PDF from a template with data |
html_to_pdf | Convert HTML content to PDF |
check_pdf_status | Check status of async PDF generation |
PDF Best Practices
IMPORTANT: Before using the html_to_pdf tool, AI agents should follow the PDF Best Practices guidelines.
Install the skill:
npx skills add pdfnoodle/pdf-best-practices
Or via npm:
npm install pdf-best-practices
The skill covers:
- Paper setup: A4 size, 40px margins
- Page break control: Prevent content from breaking awkwardly
- Content density: Avoid sparse pages
- Tables: Proper formatting with thead/tbody
- Images: Fixed dimensions, proper sizing
- Colors:
-webkit-print-color-adjust: exact - Document types: Invoice, report, certificate, letter templates
Usage Examples
Once configured, you can interact with pdf noodle using natural language:
Create a template:
"Create a professional invoice template with company logo, billing details, line items table, and payment terms"
Generate a PDF:
"Generate an invoice PDF using template abc123 with the following data: company name 'Acme Inc', invoice number 1001, items: Widget ($50), Service ($100)"
Convert HTML to PDF (recommended workflow):
"Convert this report to a well-formatted PDF"
The AI will automatically:
- Reference the PDF Best Practices guidelines
- Create properly structured HTML with page break controls, proper margins, and optimized layout
- Call
html_to_pdfwith the correct pdfParams for A4 paper and 40px margins
Quick HTML conversion:
"Convert this HTML to PDF:
<h1>Hello World</h1><p>This is a test document</p>"
Tool Parameters
generate_pdf
{
"templateId": "template-id",
"data": "{\"field\": \"value\"}",
"convertToImage": false,
"hasCover": false
}
html_to_pdf
{
"html": "<html>...</html>",
"pdfParams": "{\"format\": \"A4\", \"margin\": {\"top\": \"1cm\"}}",
"convertToImage": false
}
create_template_with_ai
{
"displayName": "My Template",
"prompt": "A detailed description of the template design...",
"fileUrl": "https://example.com/reference.pdf"
}
Development
# Clone the repository
git clone https://github.com/pdfnoodle/mcp-server-pdfnoodle.git
cd mcp-server-pdfnoodle
# Install dependencies
npm install
# Build
npm run build
# Run in development mode
PDFNOODLE_API_KEY=your-key npm run dev
License
MIT - see LICENSE
Changelog
| Version | Date | Changes |
|---|---|---|
| 1.0.2 | 2026-02-10 | Bug Fix: Fixed get_template to correctly handle API response format and return all template fields (id, displayName, createdAt, updatedAt, type, style, html). |
| 1.0.1 | 2026-02-10 | Bug Fix: Fixed list_templates to handle wrapped API responses ({ templates: [...] } or { data: [...] }). |
| 1.0.0 | 2026-02-10 | Initial release with support for template operations and PDF generation. |
Links
- pdf noodle - PDF generation platform
- pdf noodle API Docs - API documentation
- PDF Best Practices - Guidelines for HTML-to-PDF conversion
- MCP Protocol - Model Context Protocol specification