merge_pdfs
Merge multiple base64-encoded PDFs into a single PDF file. Provide an array of PDF strings; returns the combined document as a base64-encoded output.
Instructions
Merge multiple PDFs into a single PDF.
Args: pdfs_base64: List of base64-encoded PDF files to merge.
Returns: Base64-encoded merged PDF.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pdfs_base64 | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- mcp/src/docgen_mcp/server.py:273-286 (handler)The MCP tool 'merge_pdfs' is registered via @mcp.tool() decorator. It accepts a list of base64-encoded PDFs, decodes them, calls the DocGen client's merge_pdfs, and returns the result as base64-encoded string.
@mcp.tool() def merge_pdfs(pdfs_base64: list[str]) -> str: """Merge multiple PDFs into a single PDF. Args: pdfs_base64: List of base64-encoded PDF files to merge. Returns: Base64-encoded merged PDF. """ dg = _get_client() files = [base64.b64decode(p) for p in pdfs_base64] merged = dg.merge_pdfs(files) return base64.b64encode(merged).decode() - mcp/src/docgen_mcp/server.py:273-286 (registration)The tool is registered with the FastMCP server using the @mcp.tool() decorator, making it available as an MCP tool named 'merge_pdfs'.
@mcp.tool() def merge_pdfs(pdfs_base64: list[str]) -> str: """Merge multiple PDFs into a single PDF. Args: pdfs_base64: List of base64-encoded PDF files to merge. Returns: Base64-encoded merged PDF. """ dg = _get_client() files = [base64.b64decode(p) for p in pdfs_base64] merged = dg.merge_pdfs(files) return base64.b64encode(merged).decode() - python/src/docgen/client.py:208-217 (helper)Sync DocGen client's merge_pdfs method that delegates to PdfToolsClient.merge().
def merge_pdfs(self, files: list[FileInput]) -> bytes: """Merge multiple PDF files into one. Args: files: List of PDF files (paths, bytes, or base64). Returns: Merged PDF bytes. """ return self._pdf_tools.merge(files) - python/src/docgen/client.py:329-335 (helper)Async DocGen client's merge_pdfs method that sends base64 PDFs to the /api/pdf-tools/merge/base64 endpoint.
async def merge_pdfs(self, files: list[FileInput]) -> bytes: """Merge multiple PDFs asynchronously.""" pdfs = [to_base64(f) for f in files] return await self._transport.request_bytes( "POST", "/api/pdf-tools/merge/base64", json={"pdfs": pdfs}, ) - PdfToolsClient.merge() - the low-level implementation that converts files to base64 and sends a POST request to /api/pdf-tools/merge/base64.
def merge(self, files: list[FileInput]) -> bytes: """Merge multiple PDFs into one. Args: files: List of PDF files to merge (in order). Returns: Merged PDF bytes. """ pdfs = [to_base64(f) for f in files] return self._transport.request_bytes( "POST", "/api/pdf-tools/merge/base64", json={"pdfs": pdfs}, )