makespdf
Compliant PDFs (PDF/A-2A + PDF/UA-1) from markdown or a compact DSL - fast, no headless browser.
Community: Submitted by a user or imported; check the owner before granting accessDegradedAPI key requiredGlobalFreeRead-only
What it can do
What data it sees
Do you need an account
An API key from the service settings is required
Compliant PDFs (PDF/A-2A + PDF/UA-1) from markdown or a compact DSL - fast, no headless browser.
Server tool list (10)
Raw names from tools/list. Only developers need these.
| validate_dsl | Validate a PDF template DSL script for structure, tag/style correctness, and accessibility issues. Runs catalog validation plus alt-text checks. Cheap — no rendering. Mirrors POST /api/v1/preview/validate. |
| validate_markdown | Validate a markdown document for PDF/UA-1 accessibility issues (heading hierarchy, missing alt text). Cheap — no rendering. Mirrors POST /api/v1/md/validate. |
| render_dsl_preview | Render a DSL template + data to a preview PDF. Free (no credits), always watermarked 'PREVIEW — NOT FOR USE'. Returns JSON metadata plus the PDF bytes as an embedded base64 resource. Mirrors POST /api/v1/preview. |
| render_template | Render any readable template (curated library row or caller-owned) to a real PDF. **BILLED — consumes credits at the rate of 1 credit per 10 pages.** Returns JSON metadata (pageCount, creditsDeducted, creditsRemaining, artifactId) plus the PDF bytes as an embedded base64 resource. On the free plan the PDF is watermarked; paid plans render clean. Mirrors POST /api/v1/render with the { templateId, data } body shape. Use `render_dsl_preview` first to confirm the layout — that's free and watermarked. Only call this once you're confident the template is right. |
| save_template | Save a user-owned DSL template for later reuse via /api/v1/render. Validates the DSL with the catalog before persisting. Free (no credits). Pass `sampleData` (any JSON value) so the template's binding shape is preserved — the modify-template flow on /ai/chat round-trips this back into the Render data panel when the user returns. Optional `description` is a one-sentence summary surfaced on /templates. Returns { templateId, name, createdAt }. |
| list_templates | List templates visible to the caller — both curated library templates (no owner) and the caller's own saved templates. Metadata only (no DSL bodies). Paginated. Use `owner: 'mine'` to restrict to your own; `owner: 'library'` for the curated catalog only; default `'all'` returns both. Optional `category`, `tags` (comma-separated, ANDed), and `q` (free-text over name + description) filters apply across both. Mirrors GET /api/v1/templates. |
| get_template | Fetch a single template (library or caller-owned) by ID, including its full DSL source and sampleData. Mirrors GET /api/v1/templates/:id. |
| update_template | Update a saved template's DSL, name, description, and/or sampleData. Revalidates the DSL when provided. For `description` and `sampleData`: pass `null` to clear; omit to leave unchanged. Mirrors PUT /api/v1/templates/:id. |
| delete_template | Delete a caller-owned template by ID. Library rows cannot be deleted. Mirrors DELETE /api/v1/templates/:id. |
| render_markdown | Render GitHub-flavored markdown to a real PDF (PDF/A-2A + PDF/UA-1 dual-compliant, tagged). **BILLED - consumes credits at the rate of 1 credit per 10 pages.** Returns JSON metadata (pageCount, creditsDeducted, creditsRemaining, artifactId) plus the PDF bytes as an embedded base64 resource. On the free plan the PDF is watermarked; paid plans render clean. Mirrors POST /api/v1/md. Run `validate_markdown` first - it is free and catches heading-hierarchy and alt-text problems before you pay to render them. There is no free markdown preview: markdown needs no layout iteration, so this is the only markdown render tool. |