
Research
/Security News
OpenAPI React Query Codegen Compromised in Mini Shai-Hulud npm Supply Chain Attack
Ten malicious OpenAPI React Query Codegen versions were published to npm in the Mini Shai-Hulud attack, all with valid provenance.
pdfmonkey-mcp-server
Advanced tools
Model Context Protocol (MCP) server for PDFMonkey API - Generate PDFs from templates using AI assistants like Claude
A Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with the PDFMonkey API for generating PDFs from templates.
# Build locally (a published Docker Hub image is not available yet)
docker build -t pdfmonkey-mcp-server:latest .
Configure in Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"pdfmonkey": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PDFMONKEY_API_KEY=your-api-key-here",
"pdfmonkey-mcp-server:latest"
]
}
}
}
See DOCKER-MCP-TOOLKIT.md for Docker MCP Toolkit integration.
npm install -g pdfmonkey-mcp-server
{
"mcpServers": {
"pdfmonkey": {
"command": "pdfmonkey-mcp-server",
"env": {
"PDFMONKEY_API_KEY": "your-api-key-here"
}
}
}
}
git clone https://github.com/pdfmonkey/pdfmonkey-mcp
cd pdfmonkey-mcp
npm install
npm run build
{
"mcpServers": {
"pdfmonkey": {
"command": "node",
"args": ["/absolute/path/to/pdfmonkey-mcp-server/dist/index.js"],
"env": {
"PDFMONKEY_API_KEY": "your-api-key-here"
}
}
}
}
list_workspaces - List all accessible workspaceslist_templates - List all PDF templatesget_template - Get template details with full HTML, CSS, and propertiesgenerate_document - Generate PDF with async polling (1.5s intervals, 3min timeout)get_document_status - Check document status and get download URLlist_documents - List documents with filters (status, template_id, page, updated_since)delete_document - Delete document permanentlylist_snippets - List all Liquid code snippetsget_snippet - Get snippet codeget_quota - Get quota and plan informationget_user_info - Get complete account detailsUser: Generate a PDF invoice using my invoice template
Claude: I'll help you generate an invoice. First, let me list your templates.
[Uses list_templates tool]
I found your invoice template (ID: abc-123). Now I'll generate the PDF.
[Uses generate_document tool with data]
Your invoice has been generated! Download: https://...
User: Show me the HTML and CSS for template abc-123
Claude: [Uses get_template tool]
Here's the complete template:
### 📝 HTML Template
[Shows full HTML code]
### 🎨 CSS Styles
[Shows full CSS code]
### 📊 Sample Data
[Shows JSON properties]
User: What's my current quota?
Claude: [Uses get_quota tool]
You have 450 documents available on your Professional plan (monthly).
Share links are enabled.
npm run build
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:coverage # Coverage report
Current test coverage: 80/80 tests passing (~89% overall statements/lines; tools.ts dispatch 100%)
npm run watch
export PDFMONKEY_API_KEY="your-api-key"
npm start
# Build
docker build -t pdfmonkey-mcp-server:latest .
# Test with real API
docker run -it --rm \
-e PDFMONKEY_API_KEY="your-key" \
pdfmonkey-mcp-server:latest
# In another terminal, send test JSON-RPC
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | \
docker run -i --rm -e PDFMONKEY_API_KEY="your-key" pdfmonkey-mcp-server:latest
# 1. Tag image
docker tag pdfmonkey-mcp-server:latest yourusername/pdfmonkey-mcp-server:1.0.0
docker tag pdfmonkey-mcp-server:latest yourusername/pdfmonkey-mcp-server:latest
# 2. Login to Docker Hub
docker login
# 3. Push images
docker push yourusername/pdfmonkey-mcp-server:1.0.0
docker push yourusername/pdfmonkey-mcp-server:latest
Support Mac M1/M2 (ARM64) and Intel (AMD64):
# Create builder
docker buildx create --use --name mcp-builder
# Build and push multi-arch
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t yourusername/pdfmonkey-mcp-server:1.0.0 \
-t yourusername/pdfmonkey-mcp-server:latest \
--push \
.
Create .github/workflows/docker-publish.yml:
name: Docker Build and Publish
on:
release:
types: [created]
push:
branches: [main]
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install and test
run: |
npm ci
npm test
npm run build
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: |
yourusername/pdfmonkey-mcp-server:latest
yourusername/pdfmonkey-mcp-server:${{ github.ref_name }}
generate_document polls every 1.5 seconds for up to 3 minutesFull API documentation: docs.pdfmonkey.io
Verify your configuration file includes the API key.
Get a new key from dashboard.pdfmonkey.io.
Generation took >3 minutes. Use get_document_status with the document ID to check later.
Ensure you're using -i (interactive) flag:
docker run -i --rm -e PDFMONKEY_API_KEY="key" pdfmonkey-mcp-server:latest
docker logs <container-id>
Contributions welcome! Please:
npm test)The project has comprehensive test coverage:
tools.ts dispatch at 100%)Run tests:
npm test # All tests
npm run test:watch # Watch mode
npm run test:coverage # Coverage report
pdfmonkey-mcp-server/
├── src/
│ ├── index.ts # MCP server bootstrap (env, client, stdio)
│ ├── tools.ts # Tool/prompt definitions + dispatch
│ ├── pdfmonkey-client.ts # PDFMonkey API client
│ └── formatters.ts # Output formatters
├── tests/
│ └── unit/
│ ├── formatters.test.ts # Formatter tests (21)
│ ├── pdfmonkey-client.test.ts # Client tests (25)
│ └── tools.test.ts # Tool dispatch tests (34)
├── server.json # MCP registry manifest
├── Dockerfile # Multi-stage build
├── package.json
├── tsconfig.json
└── jest.config.js
MIT License - see LICENSE file
FAQs
Model Context Protocol (MCP) server for PDFMonkey API - Generate PDFs from templates using AI assistants like Claude
We found that pdfmonkey-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Research
/Security News
Ten malicious OpenAPI React Query Codegen versions were published to npm in the Mini Shai-Hulud attack, all with valid provenance.

Security News
Socket joins more than 100 technology, cybersecurity, and financial organizations calling for a global surge in cyber defense.

Product
Enterprise security teams can now detect malware, credential theft, suspicious network activity, and risky updates across Microsoft Edge extensions.