# PDFMonkey — how to use (mcp.ai)

Connect your PDFMonkey account and use 18 tools for documents straight from your AI agent. Connect with your own API key. PDFMonkey is a service that automates the generation of PDF documents from templates, allowing users to create professional PDFs programmatically.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_pdfmonkey?ms=1787291460000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `pdfmonkey_create_document`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/pdfmonkey`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/pdfmonkey/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/pdfmonkey/create/document` — Tool to create a Document. Use when you need to instantiate a PDF from a template; set status='pending' to queue immediate generation. Ensure valid `document_template_id` is provided.
  - body: { document: object }
- `POST https://api.mcp.ai/api/pdfmonkey/create/document/sync` — Tool to create a document and wait for generation to finish. Use when immediate PDF is needed.
  - body: { document: object }
- `POST https://api.mcp.ai/api/pdfmonkey/create/template` — Creates a new PDF document template in PDFMonkey. Use this to define reusable templates with HTML/Liquid content and CSS styles for generating PDF documents. Typical workflow: Create template → Previe
  - body: { ttl?: integer, body?: string, app_id?: string, settings?: object, body_draft?: string, identifier: string, scss_style?: string, sample_data?: string, edition_mode?: string, pdf_engine_id?: string, settings_draft?: object, scss_style_draft?: string, sample_data_draft?: string, pdf_engine_draft_id?: string }
- `POST https://api.mcp.ai/api/pdfmonkey/delete/document` — Tool to delete a Document by its ID. Use when you need to permanently remove a document after confirming its ID. Returns 204 No Content on success.
  - body: { id: string }
- `POST https://api.mcp.ai/api/pdfmonkey/delete/template` — Tool to delete a document template by ID. Use when you need to remove obsolete templates after validation.
  - body: { id: string }
- `POST https://api.mcp.ai/api/pdfmonkey/download/document/file` — Tool to download a generated PDF file via a presigned URL. Use after obtaining a valid download_url from the Document details endpoint. Verify document status is 'success' (not 'draft' or 'pending') v
  - body: { download_url: string }
- `POST https://api.mcp.ai/api/pdfmonkey/get/current/user` — Tool to retrieve details about the currently authenticated user. Use when you need account info (quota, plan, email, locale) after authentication.
- `POST https://api.mcp.ai/api/pdfmonkey/get/document` — Tool to fetch a Document by its ID. Returns the full document record including payload, meta, logs, and download URL. Note: download_url is time-limited; if a download attempt fails, call GetDocument 
  - body: { id: string }
- `POST https://api.mcp.ai/api/pdfmonkey/get/document/card` — Tool to fetch a DocumentCard by ID. Use when you have a DocumentCard ID and need its download URLs, status, and metadata. Use after generating or updating a DocumentCard.
  - body: { id: string }
- `POST https://api.mcp.ai/api/pdfmonkey/get/template` — Tool to fetch a Document Template by ID. Use when you need the template's content, styles, settings, and preview URL.
  - body: { id: string }
- `POST https://api.mcp.ai/api/pdfmonkey/list/document/cards` — Tool to list DocumentCards. Use when you need to retrieve multiple DocumentCards with optional pagination and filtering by template, status, workspace, or update time.
  - body: { status?: string, page_number?: integer, workspace_id?: string, updated_since?: integer, document_template_ids?: string[] }
- `POST https://api.mcp.ai/api/pdfmonkey/list/pdf/engines` — Lists all available PDF rendering engines in PDFMonkey. Returns engine IDs, version names, numeric versions, and deprecation status. Use this to select a PDF engine when creating templates or generati
- `POST https://api.mcp.ai/api/pdfmonkey/list/templates` — List all document template cards for a workspace. Use this action to: - Retrieve all templates available in a workspace - Filter templates by folder (or get only root folder templates with folders='no
  - body: { page?: integer, sort?: string, folders?: string, workspace_id: string }
- `POST https://api.mcp.ai/api/pdfmonkey/list/workspaces` — Tool to list workspaces (applications). Use when you need all available workspaces for the authenticated user after login.
- `POST https://api.mcp.ai/api/pdfmonkey/preview/template` — Fetches the template preview viewer page from PDFMonkey's preview_url. Returns an HTML viewer page that displays the rendered template draft. Use this after obtaining a template's preview_url via Get 
  - body: { preview_url: string }
- `POST https://api.mcp.ai/api/pdfmonkey/update/document` — Updates an existing PDFMonkey document's payload, metadata, template, or status. Common use cases: - Modify document data (payload) before generation - Change the template used for the document - Add 
  - body: { id: string, document: object }
- `POST https://api.mcp.ai/api/pdfmonkey/update/template` — Tool to update a document template’s properties. Use when you need to modify an existing template’s content, styles, settings, engine, folder, or TTL.
  - body: { id: string, ttl?: integer, body?: string, settings?: object, body_draft?: string, identifier?: string, scss_style?: string, sample_data?: string, edition_mode?: string, pdf_engine_id?: string, settings_draft?: object, scss_style_draft?: string, sample_data_draft?: string, template_folder_id?: string, pdf_engine_draft_id?: string }
- `POST https://api.mcp.ai/api/pdfmonkey/view/public/share/link` — Tool to download a publicly shared PDF via its permanent share link. Use when the document's public_share_link is enabled to fetch the PDF file directly.
  - body: { token: string, filename: string, public_share_url?: string }

## Example prompts
- "What can I do in PDFMonkey?"
- "Show me a summary of my PDFMonkey account"

## More
- Page: https://mcp.ai/pdfmonkey
- Agent spec (llms.txt): https://mcp.ai/pdfmonkey/llms.txt
- Postman collection: https://mcp.ai/pdfmonkey/postman.json
