PDF generation for AI agents

Let Claude and other MCP-compatible agents generate production-ready PDFs directly ”” no API plumbing, no adapter code, no separate integration to maintain.

The problem

PDF generation doesn't belong in your agent's system prompt

AI agents are good at pulling data, writing summaries, and triggering downstream actions. Generating a well-formatted PDF is a different story. Wiring in a PDF service means writing adapter code, managing API keys, handling async job polling, and building download flows ”” all outside the agent's existing tool set, and all needing maintenance separate from the agent itself.

Most teams write a thin wrapper around a PDF API and call it from a tool definition. It works, but it is fragile: the wrapper is untested infrastructure that breaks silently when schemas drift or the PDF service changes.

How it works

Connect once. The agent figures out the rest.

1

Connect via OAuth

Open Settings → Integrations in the PDFox dashboard and connect the MCP server via OAuth. This creates a scoped token bound to your organisation. Add the server to your agent's tool list in Claude's settings or your MCP host.

2

Agent discovers templates

The agent calls list_templates to see what's published, then get_template_schema to inspect field requirements. It validates its data against the schema before generating ”” no hallucinated field names.

3

Generate, poll, retrieve

The agent calls generate_pdf with the data payload, polls get_job_status until complete, then calls download_pdf for the signed URL. The whole flow takes a few seconds, unattended.

Available tools

Seven tools ”” everything the agent needs, nothing more

list_templates Returns the published templates the agent is allowed to use
get_template_schema Returns the JSON schema for a template's data fields
create_draft_template Creates a new draft template ”” agent cannot publish it
upload_asset Uploads a font or image for use in a template
generate_pdf Submits a generation job with a template ID and data payload
get_job_status Polls a job until it completes or fails
download_pdf Returns a signed download URL for a completed PDF

MCP tool call · JSON

// MCP tool call ”” Claude sends this automatically after inspecting the schema
{
  "tool": "generate_pdf",
  "input": {
    "templateId": "tpl_invoice_standard",
    "data": {
      "invoice": {
        "number": "INV-2026-0891",
        "date": "2026-05-26",
        "due_date": "2026-06-09",
        "currency": "GBP"
      },
      "client": {
        "name": "Meridian Software Ltd",
        "address": "14 Finsbury Square, London"
      },
      "items": [
        { "description": "Platform licence ”” June 2026", "qty": 1, "unit_price": 1200 },
        { "description": "Onboarding session",           "qty": 2, "unit_price": 350  }
      ]
    }
  }
}

// PDFox returns: { "jobId": "job_..." }
// Agent polls get_job_status(jobId) → "completed"
// Agent calls download_pdf(jobId) → { "url": "https://..." }

No environment variables to manage on the agent side ”” the OAuth connection handles authentication. The agent operates within the access boundaries you defined when connecting.

Why teams choose PDFox for agents

The right balance of agent capability and team control

No adapter code

The MCP server is the integration. No thin wrapper to write, test, or maintain. The agent uses the same tool-calling interface it uses for everything else.

Scoped OAuth token

The agent acts within the access boundaries you defined at connection time. It can only generate from published templates in your organisation ”” not across org boundaries, not into drafts.

Agent cannot publish

The agent can create and edit draft templates but cannot publish them. What reaches your customers goes through your team's normal review flow in the PDFox dashboard ”” unchanged.

Ready to connect your agent?

Free tier included. No card required. OAuth setup takes under two minutes.