This workflow corresponds to n8n.io template #5522 — we link there as the canonical source.
This workflow follows the HTTP Request Tool → Mcptrigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "L7ZgmrqmEBeiLlPk",
"meta": null,
"name": "Api2Pdf - PDF Generation, Powered by AWS Lambda MCP Server",
"tags": [],
"nodes": [
{
"id": "65d3bc5d-fb22-4959-9fde-ebf153e1bfc3",
"name": "Setup Instructions",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1380,
-240
],
"parameters": {
"color": 4,
"height": 1060,
"content": "### \u2699\ufe0f Setup Instructions\n\n1. **Import Workflow**: \nLoad this workflow into your n8n instance\n\n2. **Configure Authentication**: \nSet up apiKey credentials\n - Type: API Key in header\n - Key name: Authorization\n\n3. **Activate Workflow**:\nEnable the workflow to start the MCP server\n\n4. **Get MCP URL**: \nCopy the webhook URL from the MCP trigger\n\n5. **Connect AI Agent**:\nUse the MCP URL in your AI agent configuration\n\n\n### \ud83d\udca1 Usage Notes\n\u2022 Parameters are auto-populated by AI using $fromAI() expressions\n\u2022 With 9 API endpoints available as tools\n\u2022 Responses maintain original API structure\n\n\n### \ud83d\udee0\ufe0f Customization\n\u2022 Add data transformation nodes if needed\n\u2022 Implement custom error handling\n\u2022 Add logging or monitoring nodes\n\n\u2022 Modify parameter defaults in any HTTP request node as needed\n\n### \ud83d\udcac Need Help?\nPing me on [discord](https://discord.me/cfomodz) for integration guidance and custom automations. Check the [n8n documentation](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolmcp/) for more information."
},
"typeVersion": 1
},
{
"id": "94fe9d0f-2004-409b-a8cc-8217f65d20c1",
"name": "Workflow Overview",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1120,
-240
],
"parameters": {
"width": 420,
"height": 1300,
"content": "## \ud83d\udee0\ufe0f Api2Pdf - PDF Generation, Powered by AWS Lambda MCP Server \u2705 9 operations\n\n### About\nIntroduction [Api2Pdf](https://www.api2pdf.com) is a powerful PDF generation API with no rate limits or file size constraints. Api2Pdf runs on AWS Lambda, a serverless architecture powered by Amazon to scale to millions of requests while being up to 90% cheaper than alternatives. **Supports wkhtmltopdf, Headless Chrome, LibreOffice, and PDF Merge.** You can also generate barcodes with ZXING (Zebra Crossing). SDKs & Client Libraries We've made a number of open source libraries available for the API - Python: [https://github.com/api2pdf/api2pdf.python](https://github.com/api2pdf/api2pdf.python) - .NET: [https://github.com/api2pdf/api2pdf.dotnet](https://github.com/api2pdf/api2pdf.dotnet) - Nodejs: [https://github.com/api2pdf/api2pdf.node](https://github.com/api2pdf/api2pdf.node) - PHP: [https://github.com/Api2Pdf/api2pdf.php](https://github.com/Api2Pdf/api2pdf.php) - Ruby: (Coming soon) Authorization Create an account at [portal.api2pdf.com](https://portal.api2pdf.com/register) to get an API key. **Authorize your API calls** - GET requests, include apikey=YOUR-API-KEY as a query string parameter - POST requests, add **Authorization** to your header. ``` Authorization: YOUR-API-KEY ``` Quickstart If you are looking for just a quick call to grab PDFs of a URL, you can do a GET request like: ``` https://v2018.api2pdf.com/chrome/url?url={UrlToConvert}&apikey={YourApiKey} ``` For more advanced usage and settings, see the API specification below.\n\n### \ud83d\udd27 How it Works\n\nThis workflow converts the Api2Pdf - PDF Generation, Powered by AWS Lambda API into an MCP-compatible interface for AI agents.\n\n\u2022 **MCP Trigger**: Serves as your server endpoint for AI agent requests\n\u2022 **HTTP Request Nodes**: Handle API calls to https://v2018.api2pdf.com\n\u2022 **AI Expressions**: Automatically populate parameters via `$fromAI()` placeholders\n\u2022 **Native Integration**: Returns responses directly to the AI agent\n\n\n### \ud83d\udccb Available Operations (9 endpoints)\n\n**Headless Chrome (3 operations)**\nconvert\n\n**Libre Office (1 operations)**\nconvert\n\n**Merge / Combine Pdfs (1 operations)**\nmerge\n\n**W K Html To Pdf (3 operations)**\nconvert\n\n**Zxing (zebra Crossing) Bar Codes (1 operations)**\ngenerate\n"
},
"typeVersion": 1
},
{
"id": "9fb074ab-63a5-4128-a578-9ccedea16425",
"name": "Api2Pdf - PDF Generation, Powered by AWS Lambda MCP Server",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
-580,
-240
],
"parameters": {
"path": "api2pdf---pdf-generation,-powered-by-aws-lambda-mcp"
},
"typeVersion": 1
},
{
"id": "a7de75a3-d818-43e1-a3da-93f727a63fda",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-660,
-100
],
"parameters": {
"color": 2,
"width": 700,
"height": 200,
"content": "## Headless Chrome"
},
"typeVersion": 1
},
{
"id": "93b208ae-c5a1-4403-9533-eed464c4a850",
"name": "Convert raw HTML to PDF",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-520,
-60
],
"parameters": {
"url": "=https://v2018.api2pdf.com/chrome/html",
"method": "POST",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"toolDescription": "Convert raw HTML to PDF"
},
"typeVersion": 4.2
},
{
"id": "9362c0b2-02eb-4d27-8098-13791767ef25",
"name": "Convert URL to PDF",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-320,
-60
],
"parameters": {
"url": "=https://v2018.api2pdf.com/chrome/url",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "url",
"value": "={{ $fromAI('url', 'Url of the page to convert to PDF. Must start with http:// or https://.', 'string') }}"
},
{
"name": "output",
"value": "={{ $fromAI('output', 'Specify output=json to receive a JSON output. Defaults to PDF file.', 'string') }}"
}
]
},
"toolDescription": "Convert URL to PDF\n\nParameters:\n- Query parameters:\n \u2022 url (required) - Url of the page to convert to PDF. Must start with http:// or https://.\n \u2022 output (optional) - Specify output=json to receive a JSON output. Defaults to PDF file."
},
"typeVersion": 4.2
},
{
"id": "8e713c5a-1416-4c77-bff1-ca2e01d82699",
"name": "Convert URL to PDF 1",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-120,
-60
],
"parameters": {
"url": "=https://v2018.api2pdf.com/chrome/url",
"method": "POST",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"toolDescription": "Convert URL to PDF"
},
"typeVersion": 4.2
},
{
"id": "d577b5ba-7dc9-48ca-8f59-483423cd3380",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-660,
140
],
"parameters": {
"color": 3,
"width": 300,
"height": 200,
"content": "## Libre Office"
},
"typeVersion": 1
},
{
"id": "a25f441d-4db0-48a0-a3df-4c0df9922d94",
"name": "Convert office document or image to PDF",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-520,
180
],
"parameters": {
"url": "=https://v2018.api2pdf.com/libreoffice/convert",
"method": "POST",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"toolDescription": "Convert office document or image to PDF"
},
"typeVersion": 4.2
},
{
"id": "292f4eb9-8c03-4687-ac9d-129780ca1110",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-660,
380
],
"parameters": {
"color": 4,
"width": 300,
"height": 200,
"content": "## Merge / Combine Pdfs"
},
"typeVersion": 1
},
{
"id": "3efbf8bc-12ba-4549-b22c-efd94393b968",
"name": "Merge multiple PDFs together",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-520,
420
],
"parameters": {
"url": "=https://v2018.api2pdf.com/merge",
"method": "POST",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"toolDescription": "Merge multiple PDFs together"
},
"typeVersion": 4.2
},
{
"id": "69bfade2-eef2-4eda-873f-23c4102ccbe9",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-660,
620
],
"parameters": {
"color": 5,
"width": 700,
"height": 200,
"content": "## W K Html To Pdf"
},
"typeVersion": 1
},
{
"id": "54e6233c-dd39-4de5-8c71-7e6cc1437163",
"name": "Convert raw HTML to PDF 1",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-520,
660
],
"parameters": {
"url": "=https://v2018.api2pdf.com/wkhtmltopdf/html",
"method": "POST",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"toolDescription": "Convert raw HTML to PDF"
},
"typeVersion": 4.2
},
{
"id": "dd97a4ce-df42-4675-93cf-8109a9771567",
"name": "Convert URL to PDF 2",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-320,
660
],
"parameters": {
"url": "=https://v2018.api2pdf.com/wkhtmltopdf/url",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "url",
"value": "={{ $fromAI('url', 'Url of the page to convert to PDF. Must start with http:// or https://.', 'string') }}"
},
{
"name": "output",
"value": "={{ $fromAI('output', 'Specify output=json to receive a JSON output. Defaults to PDF file.', 'string') }}"
}
]
},
"toolDescription": "Convert URL to PDF\n\nParameters:\n- Query parameters:\n \u2022 url (required) - Url of the page to convert to PDF. Must start with http:// or https://.\n \u2022 output (optional) - Specify output=json to receive a JSON output. Defaults to PDF file."
},
"typeVersion": 4.2
},
{
"id": "ceba0dad-6e3f-4f94-ac91-c74f533a092d",
"name": "Convert URL to PDF 3",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-120,
660
],
"parameters": {
"url": "=https://v2018.api2pdf.com/wkhtmltopdf/url",
"method": "POST",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"toolDescription": "Convert URL to PDF"
},
"typeVersion": 4.2
},
{
"id": "0d31e401-d0f2-4e3a-9656-eb910de634b4",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-660,
860
],
"parameters": {
"color": 6,
"width": 300,
"height": 200,
"content": "## Zxing (zebra Crossing) Bar Codes"
},
"typeVersion": 1
},
{
"id": "6717ea20-b643-48c6-8c25-9f7e21e7801e",
"name": "Generate bar codes and QR codes with ZXING.",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-520,
900
],
"parameters": {
"url": "=https://v2018.api2pdf.com/zebra",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "format",
"value": "={{ $fromAI('format', 'Most common is CODE_39 or QR_CODE', 'string') }}"
},
{
"name": "value",
"value": "={{ $fromAI('value', 'Specify the text value you want to convert', 'string') }}"
},
{
"name": "showlabel",
"value": "={{ $fromAI('showlabel', 'Show label of text below barcode', 'boolean') }}"
},
{
"name": "height",
"value": "={{ $fromAI('height', 'Height of the barcode generated image', 'number') }}"
},
{
"name": "width",
"value": "={{ $fromAI('width', 'Width of the barcode generated image', 'number') }}"
}
]
},
"toolDescription": "Generate bar codes and QR codes with ZXING.\n\nParameters:\n- Query parameters:\n \u2022 format (required) - Most common is CODE_39 or QR_CODE\n \u2022 value (required) - Specify the text value you want to convert\n \u2022 showlabel (optional) - Show label of text below barcode\n \u2022 height (optional) - Height of the barcode generated image\n \u2022 width (optional) - Width of the barcode generated image"
},
"typeVersion": 4.2
}
],
"active": false,
"shared": [
{
"role": "workflow:owner",
"project": {
"id": "G5fce9xGuBAsWBXe",
"icon": null,
"name": "David Ashby <david.ashby.lds@gmail.com>",
"type": "personal",
"createdAt": "2025-06-04T02:55:02.013Z",
"updatedAt": "2025-06-04T02:56:01.361Z",
"projectRelations": [
{
"role": "project:personalOwner",
"user": {
"id": "715c1c00-cb48-4712-9a32-f1f4b6db2b30",
"role": "global:owner",
"email": "david.ashby.lds@gmail.com",
"disabled": false,
"lastName": "Ashby",
"settings": {
"npsSurvey": {
"responded": true,
"lastShownAt": 1749357655581
},
"userActivated": true,
"userActivatedAt": 1749075994495,
"easyAIWorkflowOnboarded": true,
"firstSuccessfulWorkflowId": "3N3vVikZb3MckFYm"
},
"createdAt": "2025-06-04T02:55:01.745Z",
"firstName": "David",
"isPending": false,
"updatedAt": "2025-06-08T04:40:58.399Z",
"mfaEnabled": false,
"personalizationAnswers": {
"version": "v4",
"personalization_survey_n8n_version": "1.95.3",
"personalization_survey_submitted_at": "2025-06-04T02:56:07.075Z"
}
},
"userId": "715c1c00-cb48-4712-9a32-f1f4b6db2b30",
"createdAt": "2025-06-04T02:55:02.013Z",
"projectId": "G5fce9xGuBAsWBXe",
"updatedAt": "2025-06-04T02:55:02.013Z"
}
]
},
"createdAt": "2025-07-01T14:38:52.773Z",
"projectId": "G5fce9xGuBAsWBXe",
"updatedAt": "2025-07-01T14:38:52.773Z",
"workflowId": "L7ZgmrqmEBeiLlPk"
}
],
"settings": {
"timezone": "America/New_York"
},
"createdAt": "2025-07-01T14:38:52.768Z",
"updatedAt": "2025-07-01T17:11:36.000Z",
"versionId": "8986c82d-cdf4-4eeb-a574-555d65fd4829",
"isArchived": false,
"staticData": null,
"connections": {
"Convert URL to PDF": {
"ai_tool": [
[
{
"node": "Api2Pdf - PDF Generation, Powered by AWS Lambda MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"Convert URL to PDF 1": {
"ai_tool": [
[
{
"node": "Api2Pdf - PDF Generation, Powered by AWS Lambda MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"Convert URL to PDF 2": {
"ai_tool": [
[
{
"node": "Api2Pdf - PDF Generation, Powered by AWS Lambda MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"Convert URL to PDF 3": {
"ai_tool": [
[
{
"node": "Api2Pdf - PDF Generation, Powered by AWS Lambda MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"Convert raw HTML to PDF": {
"ai_tool": [
[
{
"node": "Api2Pdf - PDF Generation, Powered by AWS Lambda MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"Convert raw HTML to PDF 1": {
"ai_tool": [
[
{
"node": "Api2Pdf - PDF Generation, Powered by AWS Lambda MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"Merge multiple PDFs together": {
"ai_tool": [
[
{
"node": "Api2Pdf - PDF Generation, Powered by AWS Lambda MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"Convert office document or image to PDF": {
"ai_tool": [
[
{
"node": "Api2Pdf - PDF Generation, Powered by AWS Lambda MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"Generate bar codes and QR codes with ZXING.": {
"ai_tool": [
[
{
"node": "Api2Pdf - PDF Generation, Powered by AWS Lambda MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
}
},
"triggerCount": 0
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Complete MCP server exposing 9 Api2Pdf - PDF Generation, Powered by AWS Lambda API operations to AI agents.
Source: https://n8n.io/workflows/5522/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Need help? Want access to this workflow + many more paid workflows + live Q&A sessions with a top verified n8n creator?
Need help? Want access to this workflow + many more paid workflows + live Q&A sessions with a top verified n8n creator?
Complete MCP server exposing 21 api.clarify.io API operations to AI agents.
Complete MCP server exposing 9 NPR Listening Service API operations to AI agents.
Complete MCP server exposing 14 Domains-Index API operations to AI agents.