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": "52pBJt8swWgtdY54",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "MCP Client with Brave and Telegram",
"tags": [],
"nodes": [
{
"id": "af9b297d-0f8f-408f-a4d6-7545a94e8a38",
"name": "List Brave Tools",
"type": "n8n-nodes-mcp.mcpClient",
"position": [
560,
-40
],
"parameters": {},
"credentials": {
"mcpClientApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "c3265586-a376-4d02-8f33-828bbba6d221",
"name": "Exec Brave tool",
"type": "n8n-nodes-mcp.mcpClient",
"position": [
800,
-40
],
"parameters": {
"toolName": "={{ $json.tools[0].name }}",
"operation": "executeTool",
"toolParameters": "={\n \"query\":\"{{ $('Clean query').item.json.query }}\"\n}"
},
"credentials": {
"mcpClientApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "adbfe84e-ab4a-4640-bb52-fcb06f9d1450",
"name": "Clean query",
"type": "n8n-nodes-base.code",
"position": [
300,
-40
],
"parameters": {
"jsCode": "for (const item of $input.all()) {\n const originalText = item.json.text;\n\n const query = originalText.replace(\"/brave \", \"\");\n\n item.json.query = query;\n}\n\nreturn $input.all();\n"
},
"typeVersion": 2
},
{
"id": "9905cad4-e847-44be-8cc4-69fd427ce8a1",
"name": "Send message",
"type": "n8n-nodes-base.telegram",
"position": [
1040,
-40
],
"parameters": {
"text": "={{ $json.result.content[0].text }}",
"chatId": "={{ $('Get Message').item.json.message.from.id }}",
"additionalFields": {
"parse_mode": "HTML"
}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "bf0e7c48-bbc8-4efd-9083-2fa965902453",
"name": "Get Message",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-440,
-20
],
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.1
},
{
"id": "b37c6f84-bceb-476c-9a7c-5682a4e69f8d",
"name": "Search with Brave?",
"type": "n8n-nodes-base.if",
"position": [
-180,
-20
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "9c5ea127-cbbb-4304-8a93-b47b5c09b837",
"operator": {
"type": "string",
"operation": "startsWith"
},
"leftValue": "={{ $json.message.text }}",
"rightValue": "/brave "
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e879ea50-83f9-4a87-856c-a06a628ae31c",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-440,
-860
],
"parameters": {
"color": 6,
"width": 480,
"content": "## PRELIMINARY STEPS\n- Access to an n8n self-hosted instance and install the Community node \"n8n-nodes-mcp\". Please see this [easy guide](https://github.com/nerding-io/n8n-nodes-mcp)\n- Get your Brave Search API Key: https://brave.com/search/api/\n- Telegram Bot Access Token\n\n\n"
},
"typeVersion": 1
},
{
"id": "754e62d1-efdb-460d-bdb1-2369d633a804",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-440,
-660
],
"parameters": {
"color": 6,
"width": 480,
"height": 420,
"content": "## SET MCP BRAVE TOOL\nIn \"List Brave Tools\" create new credential as shown in this image\n\n\nIn Environment field set this value:\nBRAVE_API_KEY=your-api-key"
},
"typeVersion": 1
},
{
"id": "073eb8d2-9026-4031-af01-850342a5c5ca",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-240,
-120
],
"parameters": {
"height": 260,
"content": "the search only occurs when the command \"/brave\" is present in the message"
},
"typeVersion": 1
},
{
"id": "eb76fbed-0ba0-4a56-a1fe-65e4bfb38ea8",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
240,
-120
],
"parameters": {
"width": 220,
"height": 260,
"content": "I clean the message by removing the \"/brave\" command"
},
"typeVersion": 1
},
{
"id": "980bf4e1-15cf-4276-b746-343850ec4b6f",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
520,
-120
],
"parameters": {
"width": 180,
"height": 260,
"content": "Get all available Brave search tools"
},
"typeVersion": 1
},
{
"id": "2c712ec4-2184-4136-bd21-f17e19fb029e",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
760,
-120
],
"parameters": {
"width": 180,
"height": 260,
"content": "I get the search results"
},
"typeVersion": 1
},
{
"id": "226a396a-e152-422d-b4e2-670a39117f57",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-440,
-1180
],
"parameters": {
"color": 3,
"width": 480,
"height": 280,
"content": "## MCP-based Brave Search Engine on Telegram \n\nThis workflow is a powerful tool for automating interactions with Brave tools through Telegram, providing users with quick and easy access to information directly in their chat.\n\nThis n8n workflow enables users to perform web searches directly from Telegram using the Brave search engine. By simply sending the command /brave followed by a query, the workflow retrieves search results from Brave and returns them as a Telegram message."
},
"typeVersion": 1
},
{
"id": "7c526a9e-f3a2-433c-aeb1-ced2e5af6a12",
"name": "Get Text",
"type": "n8n-nodes-base.set",
"position": [
80,
-40
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "029f4e7e-b367-4aa9-863e-e372694940fb",
"name": "text",
"type": "string",
"value": "={{ $json.message.text }}"
}
]
}
},
"typeVersion": 3.4
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "4566dd53-d373-43da-91c5-213ca5f335c6",
"connections": {
"Get Text": {
"main": [
[
{
"node": "Clean query",
"type": "main",
"index": 0
}
]
]
},
"Clean query": {
"main": [
[
{
"node": "List Brave Tools",
"type": "main",
"index": 0
}
]
]
},
"Get Message": {
"main": [
[
{
"node": "Search with Brave?",
"type": "main",
"index": 0
}
]
]
},
"Exec Brave tool": {
"main": [
[
{
"node": "Send message",
"type": "main",
"index": 0
}
]
]
},
"List Brave Tools": {
"main": [
[
{
"node": "Exec Brave tool",
"type": "main",
"index": 0
}
]
]
},
"Search with Brave?": {
"main": [
[
{
"node": "Get Text",
"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.
mcpClientApitelegramApi
About this workflow
MCP Client with Brave and Telegram. Uses n8n-nodes-mcp, telegram, telegramTrigger, stickyNote. Event-driven trigger; 14 nodes.
Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →