← Docs · Markdown · Agent register · Home

PDF

Agent document export: render Markdown or HTML to PDF (Chromium print) or DOCX (structured Word styles), return a staging URL. No LLM — deliverable output.

Service id: pdf
Version: 0.2.0
Status: available

Authentication

MCP endpoint: https://mcp.glc-rag.hu/mcp (streamable HTTP)

Agents (recommended): self-register with account_type=agent to get an auto-approved token — see https://mcp.glc-rag.hu/guide/agent.

Or register as a human on the public site (all listed services are auto-approved), wait for system-admin approval, then create a token.

Authorization: Bearer mcp_...

Cursor mcp.json example:

{
  "mcpServers": {
    "pdf": {
      "url": "https://mcp.glc-rag.hu/mcp",
      "headers": {
        "Authorization": "Bearer mcp_YOUR_TOKEN"
      }
    }
  }
}

Tools

markdown_to_pdf

Render Markdown to PDF and publish to staging. Provide markdown string, or url / content_base64 for larger content.

Input schema:

{
  "type": "object",
  "properties": {
    "markdown": {
      "type": "string",
      "description": "Markdown source text"
    },
    "url": {
      "type": "string",
      "description": "Public or staging URL of a UTF-8 markdown/text file"
    },
    "content_base64": {
      "type": "string",
      "description": "Small markdown as base64 or data: URL"
    },
    "filename": {
      "type": "string",
      "description": "Output filename (default document.pdf)"
    },
    "page_format": {
      "type": "string",
      "enum": [
        "A4",
        "Letter"
      ],
      "default": "A4"
    },
    "margin_mm": {
      "type": "number",
      "minimum": 4,
      "maximum": 40,
      "default": 12,
      "description": "Page margin in millimeters"
    },
    "css": {
      "type": "string",
      "description": "Optional extra CSS (size-limited)"
    }
  },
  "additionalProperties": false
}

Examples:

{
  "markdown": "# Report\n\nHello **world**.\n",
  "filename": "report.pdf"
}
{
  "url": "https://mcp.glc-rag.hu/staging/EXAMPLE"
}

html_to_pdf

Render HTML (document or fragment) to PDF and publish to staging. Provide html string, or url / content_base64. Does not navigate to live pages.

Input schema:

{
  "type": "object",
  "properties": {
    "html": {
      "type": "string",
      "description": "HTML document or fragment"
    },
    "url": {
      "type": "string",
      "description": "Public or staging URL of a UTF-8 HTML file (downloaded, not navigated)"
    },
    "content_base64": {
      "type": "string",
      "description": "Small HTML as base64 or data: URL"
    },
    "filename": {
      "type": "string",
      "description": "Output filename (default document.pdf)"
    },
    "page_format": {
      "type": "string",
      "enum": [
        "A4",
        "Letter"
      ],
      "default": "A4"
    },
    "margin_mm": {
      "type": "number",
      "minimum": 4,
      "maximum": 40,
      "default": 12,
      "description": "Page margin in millimeters"
    },
    "css": {
      "type": "string",
      "description": "Optional extra CSS (size-limited)"
    }
  },
  "additionalProperties": false
}

Examples:

{
  "html": "<h1>Invoice</h1><p>Total: 42 EUR</p>",
  "page_format": "A4"
}

markdown_to_docx

Render Markdown to a formatted DOCX (headings, lists, tables, code, links) and publish to staging. Provide markdown string, or url / content_base64.

Input schema:

{
  "type": "object",
  "properties": {
    "markdown": {
      "type": "string",
      "description": "Markdown source text"
    },
    "url": {
      "type": "string",
      "description": "Public or staging URL of a UTF-8 markdown/text file"
    },
    "content_base64": {
      "type": "string",
      "description": "Small markdown as base64 or data: URL"
    },
    "filename": {
      "type": "string",
      "description": "Output filename (default document.docx)"
    },
    "page_format": {
      "type": "string",
      "enum": [
        "A4",
        "Letter"
      ],
      "default": "A4",
      "description": "Word page size"
    },
    "margin_mm": {
      "type": "number",
      "minimum": 4,
      "maximum": 40,
      "default": 12,
      "description": "Page margin in millimeters"
    }
  },
  "additionalProperties": false
}

Examples:

{
  "markdown": "# Report\n\nHello **world**.\n\n- item\n",
  "filename": "report.docx"
}

html_to_docx

Render HTML (document or fragment) to a formatted DOCX and publish to staging. Maps headings, paragraphs, lists, tables, pre/code, blockquotes, links. Does not navigate to live pages; css is ignored.

Input schema:

{
  "type": "object",
  "properties": {
    "html": {
      "type": "string",
      "description": "HTML document or fragment"
    },
    "url": {
      "type": "string",
      "description": "Public or staging URL of a UTF-8 HTML file (downloaded, not navigated)"
    },
    "content_base64": {
      "type": "string",
      "description": "Small HTML as base64 or data: URL"
    },
    "filename": {
      "type": "string",
      "description": "Output filename (default document.docx)"
    },
    "page_format": {
      "type": "string",
      "enum": [
        "A4",
        "Letter"
      ],
      "default": "A4",
      "description": "Word page size"
    },
    "margin_mm": {
      "type": "number",
      "minimum": 4,
      "maximum": 40,
      "default": 12,
      "description": "Page margin in millimeters"
    }
  },
  "additionalProperties": false
}

Examples:

{
  "html": "<h1>Invoice</h1><p>Total: <strong>42 EUR</strong></p>",
  "filename": "invoice.docx"
}

pdf_status

PDF/DOCX service health, Chromium path, and limits.

Input schema:

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Examples:

{}

Usage notes

PDF: markdown_to_pdf / html_to_pdf. DOCX: markdown_to_docx / html_to_docx (headings, lists, tables, code, links). Large / shared source: staging_put_text({ text }) → url → same tools with { url } (or POST /staging/upload). PDF options: page_format A4|Letter, margin_mm, optional css. DOCX options: page_format, margin_mm (css not applied). Output is always a staging URL (no base64). Credits: PDF base + per page; DOCX base only; pdf_status is free.

Errors / limits

SSRF-blocked URL, oversize input/output, page limit (PDF), Chromium missing, or render timeout → {error, is_error}. Insufficient credits → platform debit error.

Agent discovery