This workflow follows the Agent → HTTP Request 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": "U6cY7PPR0vaRl1I0",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Scrape Web Data with Bright Data, Google Gemini and MCP Automated AI Agent",
"tags": [
{
"id": "ZOwtAMLepQaGW76t",
"name": "Building Blocks",
"createdAt": "2025-04-13T15:23:40.462Z",
"updatedAt": "2025-04-13T15:23:40.462Z"
},
{
"id": "ddPkw7Hg5dZhQu2w",
"name": "AI",
"createdAt": "2025-04-13T05:38:08.053Z",
"updatedAt": "2025-04-13T05:38:08.053Z"
}
],
"nodes": [
{
"id": "0c747f5b-ef72-4e00-a028-4a08461dae28",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"notes": "Bright Data Web Scraping Agent",
"position": [
-140,
60
],
"parameters": {
"text": "=Scrape the web data as per the provided URL: {{ $json.url }} using the format as {{ $json.format }}",
"options": {
"systemMessage": "=You are a helpful assistant."
},
"promptType": "define"
},
"notesInFlow": true,
"typeVersion": 1.8
},
{
"id": "16c7cd90-39da-47a4-8020-a0aa8f87275a",
"name": "When clicking \u2018Test workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-640,
-300
],
"parameters": {},
"typeVersion": 1
},
{
"id": "7b544505-6b6b-4500-a2ad-f7cf62f98c13",
"name": "MCP Client list all tools for Bright Data",
"type": "n8n-nodes-mcp.mcpClient",
"position": [
-380,
-300
],
"parameters": {},
"credentials": {
"mcpClientApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "9f5bf319-9414-4974-bad2-ea24f09ae351",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-220,
-400
],
"parameters": {
"color": 3,
"width": 440,
"height": 320,
"content": "## Bright Data Web Scraper"
},
"typeVersion": 1
},
{
"id": "222e81cf-878e-42de-a325-6b6659145f98",
"name": "MCP Client List all tools",
"type": "n8n-nodes-mcp.mcpClientTool",
"position": [
440,
420
],
"parameters": {},
"credentials": {
"mcpClientApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "a10dfd4f-cadf-4952-8449-1865406358d4",
"name": "MCP Client Bright Data Web Scraper",
"type": "n8n-nodes-mcp.mcpClient",
"notes": "Scrape a single webpage URL with advanced options for content extraction and get back the results in MarkDown language.",
"position": [
60,
-300
],
"parameters": {
"toolName": "=scrape_as_markdown",
"operation": "executeTool",
"toolParameters": "={\n \"url\": \"{{ $json.url }}\"\n} "
},
"credentials": {
"mcpClientApi": {
"name": "<your credential>"
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"id": "0acbd4ff-ce4a-4ff2-b213-2d80dd91e302",
"name": "Webhook for web scraper",
"type": "n8n-nodes-base.httpRequest",
"position": [
280,
-300
],
"parameters": {
"url": "=https://webhook.site/daf9d591-a130-4010-b1d3-0c66f8fcf467",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "response",
"value": "={{ $json.result.content[0].text }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "009ac29f-8cad-4b58-9ca4-e75470a52dcc",
"name": "Set the URLs",
"type": "n8n-nodes-base.set",
"position": [
-160,
-300
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "214e61a0-3587-453f-baf5-eac013990857",
"name": "url",
"type": "string",
"value": "https://about.google/"
},
{
"id": "45014942-0a2e-4f46-b395-f82f97bfa93e",
"name": "webhook_url",
"type": "string",
"value": "https://webhook.site/ce41e056-c097-48c8-a096-9b876d3abbf7"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "104706dd-ae58-47fd-8fea-cefa986ae40c",
"name": "MCP Client to Scrape as Markdown",
"type": "n8n-nodes-mcp.mcpClientTool",
"notes": "Scrape a single webpage URL with advanced options for content extraction and get back the results in MarkDown language.",
"position": [
-60,
400
],
"parameters": {
"toolName": "scrape_as_markdown",
"operation": "executeTool",
"toolParameters": "={\n \"url\": \"{{ $json.url }}\"\n} ",
"descriptionType": "manual",
"toolDescription": "Scrape a single webpage URL with advanced options for content extraction and get back the results in MarkDown language."
},
"credentials": {
"mcpClientApi": {
"name": "<your credential>"
}
},
"notesInFlow": false,
"typeVersion": 1
},
{
"id": "c03c655e-45c8-4278-a01f-ba48282459c5",
"name": "MCP Client to Scrape as HTML",
"type": "n8n-nodes-mcp.mcpClientTool",
"notes": "Scrape a single webpage URL with advanced options for content extraction and get back the results in HTML.",
"position": [
200,
400
],
"parameters": {
"toolName": "scrape_as_html",
"operation": "executeTool",
"toolParameters": "{\n \"url\": \"{{ $json.url }}\"\n} ",
"descriptionType": "manual",
"toolDescription": "Scrape a single webpage URL with advanced options for content extraction and get back the results in HTML."
},
"credentials": {
"mcpClientApi": {
"name": "<your credential>"
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"id": "587300ff-44e5-4ff2-9dee-a4f8720ca26b",
"name": "Google Gemini Chat Model for AI Agent",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-520,
400
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash-exp"
},
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "38ba13a1-f8f7-48ce-a05d-2c2526de606d",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-140,
340
],
"parameters": {
"color": 4,
"width": 480,
"height": 260,
"content": "## Bright Data Web Scraper Tools"
},
"typeVersion": 1
},
{
"id": "e7c8d333-e256-4944-a584-575162072ca4",
"name": "Simple Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-280,
400
],
"parameters": {
"sessionKey": "=Perform the web scraping for the below URL\n\n{{ $json.url }}",
"sessionIdType": "customKey",
"contextWindowLength": 10
},
"typeVersion": 1.3
},
{
"id": "5e89519e-8ee5-4c3b-807d-21cef6e36c32",
"name": "Webhook for Web Scraper AI Agent",
"type": "n8n-nodes-base.httpRequest",
"position": [
260,
120
],
"parameters": {
"url": "={{ $('Set the URL with the Webhook URL and data format').item.json.webhook_url }}",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "response",
"value": "={{ $json.output }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "2de093f4-15e5-4710-83d9-e6d9ed852873",
"name": "Set the URL with the Webhook URL and data format",
"type": "n8n-nodes-base.set",
"position": [
-400,
60
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "214e61a0-3587-453f-baf5-eac013990857",
"name": "url",
"type": "string",
"value": "https://about.google/"
},
{
"id": "45014942-0a2e-4f46-b395-f82f97bfa93e",
"name": "webhook_url",
"type": "string",
"value": "https://webhook.site/daf9d591-a130-4010-b1d3-0c66f8fcf467"
},
{
"id": "7f6c03f6-9fa3-45f9-bf81-243b7106bdac",
"name": "format",
"type": "string",
"value": "scrape_as_markdown"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "04a5b11f-1990-440e-be23-2fbcb985dd4a",
"name": "Create a binary data",
"type": "n8n-nodes-base.function",
"position": [
260,
-80
],
"parameters": {
"functionCode": "items[0].binary = {\n data: {\n data: new Buffer(JSON.stringify(items[0].json, null, 2)).toString('base64')\n }\n};\nreturn items;"
},
"typeVersion": 1
},
{
"id": "0765ffcd-4746-45f7-add8-f82d66709321",
"name": "Write the scraped content to disk",
"type": "n8n-nodes-base.readWriteFile",
"position": [
460,
-80
],
"parameters": {
"options": {},
"fileName": "d:\\Scraped-Content.json",
"operation": "write"
},
"typeVersion": 1
},
{
"id": "16cd9b48-765d-4f0d-8e78-6c41cfc50b03",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-220,
-540
],
"parameters": {
"width": 440,
"height": 120,
"content": "## Disclaimer\nThis template is only available on n8n self-hosted as it's making use of the community node for MCP Client."
},
"typeVersion": 1
},
{
"id": "ff4b9e9c-a0f0-4cdb-ad53-55dc412794fc",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1080,
-80
],
"parameters": {
"color": 5,
"width": 480,
"height": 380,
"content": "## Note\nThe AI agent utilizes Bright Data's MCP tools to perform web scraping based on user requests. It intelligently selects the most suitable web scraping tool to fulfill the user's query.\n\nOnce the web scraping is complete, the AI agent's response is:\n\n1. Used to trigger a webhook call.\n\n2. Persisted to disk for future reference.\n\nGoogle Gemini is employed by the AI agent to understand and interpret user queries. Based on this interpretation, the agent initiates a call to the appropriate MCP client to perform the required web scraping task.\n\nSource - https://github.com/luminati-io/brightdata-mcp"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "ccf9f9af-82d5-4751-b06d-497c043c85fc",
"connections": {
"AI Agent": {
"main": [
[
{
"node": "Webhook for Web Scraper AI Agent",
"type": "main",
"index": 0
},
{
"node": "Create a binary data",
"type": "main",
"index": 0
}
]
]
},
"Set the URLs": {
"main": [
[
{
"node": "MCP Client Bright Data Web Scraper",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Create a binary data": {
"main": [
[
{
"node": "Write the scraped content to disk",
"type": "main",
"index": 0
}
]
]
},
"MCP Client List all tools": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"MCP Client to Scrape as HTML": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"MCP Client to Scrape as Markdown": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Webhook for Web Scraper AI Agent": {
"main": [
[]
]
},
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "MCP Client list all tools for Bright Data",
"type": "main",
"index": 0
},
{
"node": "Set the URL with the Webhook URL and data format",
"type": "main",
"index": 0
}
]
]
},
"MCP Client Bright Data Web Scraper": {
"main": [
[
{
"node": "Webhook for web scraper",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model for AI Agent": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"MCP Client list all tools for Bright Data": {
"main": [
[
{
"node": "Set the URLs",
"type": "main",
"index": 0
}
]
]
},
"Set the URL with the Webhook URL and data format": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googlePalmApimcpClientApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
Efficiently extract and analyse valuable insights from websites without coding expertise, saving hours of manual data collection for market researchers, content creators, and business analysts. This workflow leverages Bright Data's robust scraping capabilities alongside Google Gemini's AI to process and interpret the harvested information intelligently. The pivotal step involves the AI agent coordinating the scraping via MCP tools, followed by Gemini refining the raw data into actionable summaries or reports.
Use this workflow for targeted data gathering from dynamic sites like e-commerce pages or news portals, especially when you need AI-enhanced analysis on demand. Avoid it for high-volume, real-time scraping that demands custom scaling, or if the sites employ advanced anti-bot measures beyond Bright Data's handling. Common variations include swapping Gemini for another LLM to tailor analysis depth, or adding file outputs for direct integration with tools like Google Sheets.
About this workflow
Scrape Web Data with Bright Data, Google Gemini and MCP Automated AI Agent. Uses agent, manualTrigger, n8n-nodes-mcp, stickyNote. Event-driven trigger; 19 nodes.
Source: https://github.com/Zie619/n8n-workflows — 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.
This template is only available on n8n self-hosted as it's making use of the community node for MCP Client.
Scrape Web Data with Bright Data, Google Gemini and MCP Automated AI Agent. Uses agent, n8n-nodes-mcp, httpRequest, lmChatGoogleGemini. Event-driven trigger; 19 nodes.
Community nodes can only be installed on self-hosted instances of n8n.
Community nodes can only be installed on self-hosted instances of n8n.
Arvifund - Supabase. Uses httpRequest, telegram, googleSheets, telegramTrigger. Event-driven trigger; 90 nodes.