← PDF docs · Markdown · All payloads · Home

PDF — canonical payload contracts

Convert Markdown or HTML to a PDF or DOCX published as a temporary staging URL.

Service id: pdf
Docs: https://mcp.glc-rag.hu/guide/pdf
Markdown docs: https://mcp.glc-rag.hu/guide/pdf.md
MCP resource: docs://pdf/payload

POST https://mcp.glc-rag.hu/mcp. Values below are type slots from the live input schema (e.g. <string, required>), not example data. Fill them from the user task.

RPC result wrapper: result.structuredContent is the object in Output schema. result.isError mirrors structuredContent.is_error.

markdown_to_pdf

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

Required arguments: (none)

Request contract

{
  "jsonrpc": "2.0",
  "id": "<integer|string>",
  "method": "tools/call",
  "params": {
    "name": "markdown_to_pdf",
    "arguments": {
      "markdown": "<string, optional>",
      "url": "<string, optional>",
      "content_base64": "<string, optional>",
      "filename": "<string, optional>",
      "page_format": "<string, optional, enum A4|Letter, default 'A4'>",
      "margin_mm": "<number, optional, default 12, minimum 4, maximum 40>",
      "css": "<string, optional>"
    }
  }
}

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
}

Output schema (structuredContent on success)

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "bytes": {
      "type": "integer"
    },
    "filename": {
      "type": "string"
    },
    "content_type": {
      "type": "string"
    }
  },
  "additionalProperties": true,
  "required": [
    "url"
  ]
}

Error object

{
  "type": "object",
  "required": [
    "error",
    "is_error"
  ],
  "properties": {
    "error": {
      "type": "string"
    },
    "is_error": {
      "type": "boolean",
      "const": true
    }
  },
  "additionalProperties": true
}

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.

Required arguments: (none)

Request contract

{
  "jsonrpc": "2.0",
  "id": "<integer|string>",
  "method": "tools/call",
  "params": {
    "name": "html_to_pdf",
    "arguments": {
      "html": "<string, optional>",
      "url": "<string, optional>",
      "content_base64": "<string, optional>",
      "filename": "<string, optional>",
      "page_format": "<string, optional, enum A4|Letter, default 'A4'>",
      "margin_mm": "<number, optional, default 12, minimum 4, maximum 40>",
      "css": "<string, optional>"
    }
  }
}

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
}

Output schema (structuredContent on success)

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "bytes": {
      "type": "integer"
    },
    "filename": {
      "type": "string"
    },
    "content_type": {
      "type": "string"
    }
  },
  "additionalProperties": true,
  "required": [
    "url"
  ]
}

Error object

{
  "type": "object",
  "required": [
    "error",
    "is_error"
  ],
  "properties": {
    "error": {
      "type": "string"
    },
    "is_error": {
      "type": "boolean",
      "const": true
    }
  },
  "additionalProperties": true
}

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.

Required arguments: (none)

Request contract

{
  "jsonrpc": "2.0",
  "id": "<integer|string>",
  "method": "tools/call",
  "params": {
    "name": "markdown_to_docx",
    "arguments": {
      "markdown": "<string, optional>",
      "url": "<string, optional>",
      "content_base64": "<string, optional>",
      "filename": "<string, optional>",
      "page_format": "<string, optional, enum A4|Letter, default 'A4'>",
      "margin_mm": "<number, optional, default 12, minimum 4, maximum 40>"
    }
  }
}

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
}

Output schema (structuredContent on success)

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "bytes": {
      "type": "integer"
    },
    "filename": {
      "type": "string"
    },
    "content_type": {
      "type": "string"
    }
  },
  "additionalProperties": true,
  "required": [
    "url"
  ]
}

Error object

{
  "type": "object",
  "required": [
    "error",
    "is_error"
  ],
  "properties": {
    "error": {
      "type": "string"
    },
    "is_error": {
      "type": "boolean",
      "const": true
    }
  },
  "additionalProperties": true
}

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.

Required arguments: (none)

Request contract

{
  "jsonrpc": "2.0",
  "id": "<integer|string>",
  "method": "tools/call",
  "params": {
    "name": "html_to_docx",
    "arguments": {
      "html": "<string, optional>",
      "url": "<string, optional>",
      "content_base64": "<string, optional>",
      "filename": "<string, optional>",
      "page_format": "<string, optional, enum A4|Letter, default 'A4'>",
      "margin_mm": "<number, optional, default 12, minimum 4, maximum 40>"
    }
  }
}

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
}

Output schema (structuredContent on success)

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "bytes": {
      "type": "integer"
    },
    "filename": {
      "type": "string"
    },
    "content_type": {
      "type": "string"
    }
  },
  "additionalProperties": true,
  "required": [
    "url"
  ]
}

Error object

{
  "type": "object",
  "required": [
    "error",
    "is_error"
  ],
  "properties": {
    "error": {
      "type": "string"
    },
    "is_error": {
      "type": "boolean",
      "const": true
    }
  },
  "additionalProperties": true
}

pdf_status

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

Required arguments: (none)

Request contract

{
  "jsonrpc": "2.0",
  "id": "<integer|string>",
  "method": "tools/call",
  "params": {
    "name": "pdf_status",
    "arguments": {}
  }
}

Input schema

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

Output schema (structuredContent on success)

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    }
  },
  "additionalProperties": true,
  "required": [
    "ok"
  ]
}

Error object

{
  "type": "object",
  "required": [
    "error",
    "is_error"
  ],
  "properties": {
    "error": {
      "type": "string"
    },
    "is_error": {
      "type": "boolean",
      "const": true
    }
  },
  "additionalProperties": true
}