pdfnoodle-mcp

brunoluigi/pdfnoodle-mcp

3.2

If you are the rightful owner of pdfnoodle-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The PDFNoodle MCP Server is a Model Context Protocol server designed to facilitate the generation of PDFs using the PDFNoodle API.

Tools
4
Resources
0
Prompts
0

PDFNoodle MCP Server

A Model Context Protocol (MCP) server that enables AI assistants to generate PDFs using the PDFNoodle API.

Features

  • List Templates – Retrieve available PDF templates
  • Get Template Variables – Inspect required variables for a template
  • HTML to PDF – Convert raw HTML content to PDF or PNG
  • Generate PDF – Create PDFs from templates with automatic async handling
  • Check PDF Status – Monitor long-running PDF generation requests

Quick Start

Prerequisites

  • Node.js 20+
  • PDFNoodle API key

Install & Run

npm install
npm run dev

The server starts at http://localhost:3000/mcp

Build for Production

npm run build
npm start

Connecting MCP Clients

Claude Desktop / Cursor

Add to your MCP config:

{
  "mcpServers": {
    "pdfnoodle": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

Remote Server

{
  "mcpServers": {
    "pdfnoodle": {
      "url": "https://your-domain.com/mcp"
    }
  }
}

Tools

list_templates

Retrieve available PDF templates.

{ "apiKey": "your_pdfnoodle_api_key" }

get_template_variables

Get variables required by a template.

{ "apiKey": "...", "templateId": "invoice-001" }

html_to_pdf

Convert HTML content to PDF or PNG. Automatically handles long-running renders (>30s).

{
  "apiKey": "...",
  "html": "<html><body><h1>Hello World</h1></body></html>",
  "pdfParams": "{\"format\": \"A4\"}",
  "convertToImage": false,
  "hasCover": false
}
ParameterRequiredDescription
apiKeyYesYour PDFNoodle API key
htmlYesThe HTML content to render
pdfParamsNoJSON string of PDF parameters
convertToImageNoIf true, returns PNG instead of PDF
metadataNoJSON string of PDF metadata
hasCoverNoIf true, hides header/footer on first page
waitForCompletionNoIf false, returns requestId immediately for long renders

generate_pdf

Generate a PDF from a template. Automatically handles long-running renders (>30s).

{
  "apiKey": "...",
  "templateId": "invoice-001",
  "data": "{\"customer\": \"John Doe\", \"amount\": 100}"
}

check_pdf_status

Check status of an async PDF generation.

{ "apiKey": "...", "requestId": "pdfnoodle_request_123" }

Deployment (Kamal)

kamal setup    # First time
kamal deploy   # Subsequent deploys

Configure config/deploy.yml with your server details.

Environment Variables

VariableDefaultDescription
PORT3000Server port
PDFNOODLE_API_BASEhttps://api.pdfnoodle.com/v1/API base URL

License

MIT