Dokmatiq DocGen
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DOCGEN_API_KEY | Yes | Your Dokmatiq DocGen API key | |
| DOCGEN_BASE_URL | No | Optional base URL override for the DocGen API |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| generate_pdf_from_htmlC | Generate a PDF from HTML content. Args: html: HTML content to convert to PDF. Returns: Base64-encoded PDF bytes. |
| generate_pdf_from_markdownA | Generate a PDF from Markdown content. Args: markdown: Markdown content to convert to PDF. Returns: Base64-encoded PDF bytes. |
| generate_documentB | Generate a document with optional template, fields, and watermark. Args: html_content: HTML content for the document body. markdown_content: Markdown content (alternative to HTML). template_name: Name of a pre-uploaded template (ODT/DOCX). fields: Template field replacements (key-value pairs). watermark: Diagonal watermark text overlay. output_format: Output format – PDF, DOCX, or ODT (default: PDF). Returns: Base64-encoded document bytes. |
| compose_documentA | Compose a multi-part document from several sections. Each part is a dict with: htmlContent, markdownContent, templateName, fields. Args: parts: List of document parts. Each part can have htmlContent, markdownContent, templateName, fields. watermark: Optional diagonal watermark text overlay. output_format: Output format – PDF, DOCX, or ODT (default: PDF). Returns: Base64-encoded document bytes. |
| create_invoiceA | Create a ZUGFeRD-compliant invoice PDF with structured e-invoicing data. Each item in the items list should have: description, unitPrice, and optionally quantity, unit (C62=piece, HUR=hour, DAY=day, KGM=kg), vatRate. Args: invoice_number: Unique invoice number (e.g. "RE-2026-001"). invoice_date: Invoice date in ISO format (e.g. "2026-04-12"). seller_name: Seller company name. seller_street: Seller street address. seller_zip: Seller postal code. seller_city: Seller city. buyer_name: Buyer company name. buyer_street: Buyer street address. buyer_zip: Buyer postal code. buyer_city: Buyer city. items: Line items – each with description, unitPrice, and optionally quantity, unit, vatRate. iban: Payment IBAN. bic: Payment BIC/SWIFT code. payment_terms: Payment terms text. due_date: Payment due date (ISO format). seller_vat_id: Seller VAT ID. seller_country: Seller country code (default: DE). buyer_country: Buyer country code (default: DE). buyer_vat_id: Buyer VAT ID. currency: Currency code (default: EUR). template_name: Template name for the invoice layout. html_content: HTML content for the invoice body. Returns: Base64-encoded PDF with embedded ZUGFeRD XML. |
| merge_pdfsA | Merge multiple PDFs into a single PDF. Args: pdfs_base64: List of base64-encoded PDF files to merge. Returns: Base64-encoded merged PDF. |
| extract_text_from_pdfA | Extract all text content from a PDF. Args: pdf_base64: Base64-encoded PDF file. Returns: Extracted text content. |
| get_pdf_metadataA | Get metadata (title, author, page count, etc.) from a PDF. Args: pdf_base64: Base64-encoded PDF file. Returns: JSON string with metadata fields. |
| convert_to_pdfaB | Convert a PDF to PDF/A archival format. Args: pdf_base64: Base64-encoded PDF file. Returns: Base64-encoded PDF/A file. |
| rotate_pdfA | Rotate pages in a PDF. Args: pdf_base64: Base64-encoded PDF file. angle: Rotation angle in degrees (90, 180, 270). pages: Page range to rotate (e.g. "1-3", "all"). Default: all pages. Returns: Base64-encoded rotated PDF. |
| inspect_pdf_formA | Inspect form fields in a PDF and return their names, types, and current values. Args: pdf_base64: Base64-encoded PDF file with form fields. Returns: JSON array of form field definitions. |
| fill_pdf_formA | Fill form fields in a PDF. Args: pdf_base64: Base64-encoded PDF file with form fields. fields: Field name-value pairs to fill. flatten: Whether to flatten the form (make fields non-editable). Returns: Base64-encoded filled PDF. |
| sign_pdfB | Digitally sign a PDF with a PKCS#12 certificate. Args: pdf_base64: Base64-encoded PDF to sign. certificate_name: Name of a pre-uploaded certificate. certificate_password: Password for the certificate. reason: Reason for signing. location: Location of signing. Returns: Base64-encoded signed PDF. |
| verify_pdf_signaturesB | Verify digital signatures in a PDF. Args: pdf_base64: Base64-encoded signed PDF. Returns: JSON with verification results (signed, signatureCount, allValid, signatures). |
| list_certificatesB | List all uploaded signing certificates. Returns: JSON array of certificate info objects. |
| list_templatesB | List all uploaded document templates. Returns: JSON array of template info objects. |
| upload_templateA | Upload a document template (ODT or DOCX). Args: template_base64: Base64-encoded template file. filename: Filename for the template (e.g. "invoice.odt"). Returns: JSON with upload result. |
| delete_templateB | Delete a template by name. Args: name: Name of the template to delete. Returns: Confirmation message. |
| list_fontsA | List all uploaded custom fonts. Returns: JSON array of font info objects. |
| preview_pdf_pageA | Render a PDF page as a PNG image preview. Args: pdf_base64: Base64-encoded PDF file. page: Page number (1-based, default: 1). dpi: Resolution in DPI (default: 150). Returns: Base64-encoded PNG image. |
| get_pdf_page_countB | Get the total number of pages in a PDF. Args: pdf_base64: Base64-encoded PDF file. Returns: Page count. |
| validate_zugferdA | Validate a ZUGFeRD/Factur-X PDF for compliance. Args: pdf_base64: Base64-encoded PDF with embedded ZUGFeRD data. Returns: JSON validation result (valid, profile, errors, warnings). |
| extract_zugferdB | Extract structured invoice data from a ZUGFeRD/Factur-X PDF. Args: pdf_base64: Base64-encoded ZUGFeRD PDF. Returns: JSON with extracted invoice data. |
| validate_xrechnungA | Validate XRechnung XML for compliance. Args: xml: XRechnung XML content. Returns: JSON validation result (valid, format, errors, warnings). |
| parse_xrechnungA | Parse XRechnung XML into structured invoice data. Args: xml: XRechnung XML content. Returns: JSON with parsed invoice data. |
| detect_xrechnungA | Detect if an XML document is an XRechnung and identify its format. Args: xml: XML content to analyze. Returns: JSON with detection result (detected, format, version). |
| generate_excelA | Generate an Excel workbook (.xlsx) from a structured JSON definition. The request dict should contain: sheets: List of sheet definitions, each with: name: Sheet tab name columns: Column definitions (header, width, format, align) rows: Data rows (list of dicts with 'values' or 'cells') formulas: List of formula definitions (cell, formula, label) headerFooter: Print header/footer configuration printArea: Print area in A1 notation freezePane: {row, col} for frozen panes headerStyle/dataStyle: Cell styling definitions autoSizeColumns, autoFilter, pageOrientation, fitToPage properties: Document properties (title, author, subject) password: Workbook protection password Args: request: Structured JSON definition of the Excel workbook. Returns: Base64-encoded XLSX file. |
| csv_to_excelA | Convert CSV content into a styled Excel workbook. Auto-formats with header styling, auto-filter, frozen header row, and auto-sized columns. Args: csv_content: Raw CSV text content. delimiter: CSV delimiter (default: comma). has_header: Whether the first row is a header (default: true). sheet_name: Name for the sheet tab (default: "Data"). Returns: Base64-encoded XLSX file. |
| excel_to_csvA | Extract data from an Excel sheet and return it as CSV text. Args: excel_base64: Base64-encoded Excel file. sheet_index: Sheet index to extract (0-based, default: 0). delimiter: CSV delimiter (default: comma). Returns: CSV text content. |
| excel_to_jsonA | Extract data from an Excel sheet and return structured JSON. Returns headers (if present) and typed data rows. Args: excel_base64: Base64-encoded Excel file. sheet_index: Sheet index to extract (0-based, default: 0). has_header: Whether the first row is a header (default: true). Returns: JSON with sheetName, totalRows, headers, and data array. |
| fill_excel_templateA | Fill an Excel template with data at named cells and ranges. Args: template_base64: Base64-encoded Excel template file. values: Cell values to set (key = cell ref like 'Sheet1!A1' or named range, value = content). tables: Table data to insert at named ranges (key = range name, value = row arrays). recalculate: Recalculate formulas after filling (default: true). Returns: Base64-encoded filled XLSX file. |
| inspect_excelB | Inspect an Excel workbook and return metadata. Returns sheet names, row/column counts, and named ranges. Args: excel_base64: Base64-encoded Excel file. Returns: JSON with sheetCount, sheets array, and namedRanges. |
| extract_receiptA | Extract structured data from a receipt or invoice image using AI. Returns vendor, date, totals (gross/net/VAT per rate), line items, currency, payment method, SKR03/04 account, category, and confidence score. Args: image_base64: Base64-encoded receipt image (JPEG, PNG) or PDF. filename: Original filename (helps with format detection). content_type: MIME type (default: image/jpeg). Use application/pdf for PDF receipts. Returns: JSON with extracted receipt data. |
| extract_receipt_asyncA | Submit a receipt for async AI extraction. Returns a job ID for polling. Use get_receipt_job to check status and get_receipt_job_result for the result. Args: image_base64: Base64-encoded receipt image or PDF. filename: Original filename. content_type: MIME type (default: image/jpeg). callback_url: Optional webhook URL to receive the result. Returns: JSON with jobId and status. |
| get_receipt_jobA | Check the status of an async receipt extraction job. Args: job_id: The job ID returned by extract_receipt_async. Returns: JSON with job status (PENDING, PROCESSING, COMPLETED, FAILED). |
| get_receipt_job_resultA | Get the extraction result of a completed async receipt job. Args: job_id: The job ID returned by extract_receipt_async. Returns: JSON with extracted receipt data. |
| list_receipt_jobsB | List all async receipt extraction jobs. Returns: JSON array of job info objects. |
| receipt_to_documentA | Extract receipt data and generate an expense report document. Combines AI extraction with document generation in a single step. Args: image_base64: Base64-encoded receipt image or PDF. filename: Original filename. content_type: MIME type (default: image/jpeg). output_format: Output format – PDF, DOCX, or ODT (default: PDF). title: Document title (default: "Spesenbeleg"). template_name: Optional template for the expense report layout. Returns: JSON with extracted data and base64-encoded document. |
| export_receipts_csvA | Export extracted receipt data as DATEV-compatible CSV. Args: receipts: List of receipt extraction results (from extract_receipt). Returns: Base64-encoded CSV file. |
| export_receipts_xlsxA | Export extracted receipt data as Excel workbook (XLSX). Args: receipts: List of receipt extraction results (from extract_receipt). Returns: Base64-encoded XLSX file. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dokmatiq/docgen-sdks'
If you have feedback or need assistance with the MCP directory API, please join our Discord server