Agent intelligent de recherche Brave

Avancé

Ceci est unEngineering, AIworkflow d'automatisation du domainecontenant 26 nœuds.Utilise principalement des nœuds comme McpClientTool, Agent, McpTrigger, ToolWorkflow, ExecuteWorkflowTrigger, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Recherche intelligente web et locale basée sur l'API de recherche Brave et le serveur MCP Google Gemini

Prérequis
  • Clé API Google Gemini
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "QclY1XQ8GEstkvk7",
  "meta": {
    "instanceId": "3612a0c89f35a354ddd1216385240db51b4635fde7cae2a0d5004be915b832f3",
    "templateCredsSetupCompleted": true
  },
  "name": "Brave Search Smithery AI Agent MCP Server",
  "tags": [],
  "nodes": [
    {
      "id": "74edac39-0775-4a4d-a007-43e8853b6ff4",
      "name": "Modèle de chat Google Gemini",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        200,
        400
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-flash-preview-05-20"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "c8jj7D6oz6RJ81qp",
          "name": "Google Gemini Context7"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "980cab3a-cc95-4e93-b334-7659d86e535d",
      "name": "Simple Mémoire",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        700,
        520
      ],
      "parameters": {
        "sessionKey": "={{ $execution.id }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "530a8f53-88ff-42e2-84df-75c2e053c0ad",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3000,
        -1280
      ],
      "parameters": {
        "width": 980,
        "height": 440,
        "content": "## 📞 MCP Client Configuration\n### For Roo Code, Cline, etc.\nTo use this Brave Search AI Agent in your MCP client:\n\n```json\n\"n8n-brave-search-agent\": {\n  \"url\": \"https://YOUR_N8N_INSTANCE/mcp/cc8cc827-3e72-4029-8a9d-76519d1c136d/sse\",\n  \"alwaysAllow\": [\n    \"call_brave_search_agent\"\n  ]\n}\n```\n\n**📝 Notes:**\n*   Replace `YOUR_N8N_INSTANCE` with your actual n8n URL.\n*   The URL path `cc8cc827-3e72-4029-8a9d-76519d1c136d` comes from the **Brave Search MCP Server Trigger** node.\n*   `call_brave_search_agent` is the name of the **Tool Workflow** node in this main workflow.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "0e22c1e6-8bc2-40a1-9bdf-d498e39c8184",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        -1140
      ],
      "parameters": {
        "color": 4,
        "width": 680,
        "height": 440,
        "content": "## 📡 Brave Search MCP Server Trigger\nThis node is the **public entry point** for the Brave Search AI Agent service. It exposes an MCP (Multi-Agent Collaboration Protocol) SSE (Server-Sent Events) endpoint.\n\n### Key Details:\n*   **🛤️ Path:** `/cc8cc827-3e72-4029-8a9d-76519d1c136d` (Unique endpoint identifier)\n*   **👂 Function:** Listens for incoming HTTP POST requests to its SSE endpoint.\n*   **🛠️ Tool Exposed:** Makes the `call_brave_search_agent` tool available to external MCP clients.\n*   **📥 Input:** Expects JSON: `{\"input\": {\"query\": \"user's search query\"}}`\n*   **📤 Output:** Streams SSE events with the AI agent's responses."
      },
      "typeVersion": 1
    },
    {
      "id": "1f2b2e2d-b05c-4721-9603-4b7911763f7e",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        -680
      ],
      "parameters": {
        "color": 4,
        "width": 680,
        "height": 340,
        "content": "## ➡️ call_brave_search_agent (Tool Workflow Node)\nThis node represents the **tool** (`call_brave_search_agent`) that external clients call via the MCP Server Trigger.\n\n### Functionality:\n*   **🚀 Action:** Invokes the **\"Brave Search Smithery AI Agent MCP Server\"** sub-workflow (ID: `QclY1XQ8GEstkvk7`) to process the user's search request.\n*   **📥 Inputs to Sub-Workflow:**\n    *   `query`: The user's natural language search query from the MCP client.\n*   **📤 Output:** The AI agent's final response/stream is passed back through the MCP Server Trigger to the client."
      },
      "typeVersion": 1
    },
    {
      "id": "32123f13-3b04-4245-b757-9dc128fa1ff9",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2060,
        -660
      ],
      "parameters": {
        "color": 2,
        "width": 860,
        "height": 600,
        "content": "## 🗺️ Main MCP Server Workflow Overview\n### Brave Search AI Agent Gateway 🔎\nThis workflow acts as the public gateway for the Brave Search AI Agent.\n\n### 1. `Brave Search MCP Server Trigger` 📡\n*   Receives requests from external clients (e.g., Roo Code, Cline).\n*   **Client JSON Example:**\n    ```json\n    \"n8n-brave-search-agent\": {\n      \"url\": \"https://YOUR_N8N_INSTANCE/mcp/cc8cc827-3e72-4029-8a9d-76519d1c136d/sse\",\n      \"alwaysAllow\": [\"call_brave_search_agent\"]\n    }\n    ```\n    *(Confirm path & replace `YOUR_N8N_INSTANCE`)*\n\n### 2. `call_brave_search_agent` (Tool Workflow Node) ➡️\n*   The \"tool\" exposed by the MCP Server Trigger.\n*   Calls the AI Agent Sub-Workflow (ID: `QclY1XQ8GEstkvk7`), passing the user's `query`.\n\n### Data Flow 🔄:\nClient → MCP Trigger → `call_brave_search_agent` → Sub-Workflow → MCP Trigger → Client\n\n### ℹ️ Learn More:\nWatch a video explaining this pattern: [MCP Agent Video](https://youtu.be/dudvmyp7Pyg?si=N59DYTe2WE6GPlvf)\n   "
      },
      "typeVersion": 1
    },
    {
      "id": "14df63dc-d419-435b-9214-68dfb550d3b3",
      "name": "Note adhésive4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -220,
        -280
      ],
      "parameters": {
        "color": 5,
        "width": 540,
        "height": 500,
        "content": "## 🏁 Sub-Workflow Start: Brave Search Logic\nThis is the entry point for the **Brave Search AI Agent** sub-workflow.\n\n*   **📥 Receives:**\n    *   `query`: The user's natural language search query from the main workflow.\n*   **➡️ Passes data to:** The **Brave Search AI Agent** node."
      },
      "typeVersion": 1
    },
    {
      "id": "f43df2ce-59d4-4e6e-a9aa-bf1cb6740ca1",
      "name": "Note adhésive5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        760,
        -280
      ],
      "parameters": {
        "color": 5,
        "width": 740,
        "height": 500,
        "content": "## 🧠 Brave Search AI Agent (Core Logic)\nThis is the primary AI unit.\n\n### Components:\n*   **🤖 Model:** Google Gemini (`models/gemini-2.5-flash-preview-05-20`)\n*   **📜 System Prompt:** Instructs the AI on query understanding and Brave Search tool usage. (See node config)\n*   **🛠️ Tools:**\n    *   `brave_web_search`\n    *   `brave_local_search`\n*   **💾 Memory:** `Simple Memory` (Session Key: `{{ $execution.id }}`)\n*   **📥 Input:** User's `query`.\n*   **📤 Output:** Summarized search results after orchestrating tool calls."
      },
      "typeVersion": 1
    },
    {
      "id": "505ec39d-e687-4a5c-b0c0-c906e35cc830",
      "name": "Note adhésive6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        500,
        640
      ],
      "parameters": {
        "color": 6,
        "width": 500,
        "height": 240,
        "content": "## 💾 Agent Memory (Simple Memory)\nProvides conversational memory for the AI Agent.\n\n*   **📋 Type:** Window Buffer Memory (keeps a sliding window of recent messages).\n*   **🔑 Session Key:** `{{ $execution.id }}`\n    *   *Ensures memory is unique to each execution, preventing cross-talk.*"
      },
      "typeVersion": 1
    },
    {
      "id": "aa198f9b-5fcf-4d7d-a597-5aa12c67e122",
      "name": "Note adhésive7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        640
      ],
      "parameters": {
        "color": 6,
        "width": 540,
        "height": 420,
        "content": "## 🛠️ Tool: brave_web_search (MCP Client)\nCalls the external **Brave Web Search** MCP tool via Smithery.\n\n### Details:\n*   **🔗 Connection:** Uses the 'smithery brave search' credential.\n*   **🎯 Purpose:** Performs general web searches (articles, news, etc.).\n*   **🤖 AI Interaction:**\n    *   Guided by the AI Agent's system prompt for general queries.\n    *   AI generates JSON for parameters:\n        *   `query` (string, **required**)\n        *   `count` (number, optional, max 20)\n        *   `offset` (number, optional, max 9)\n    *   *Example JSON:* `{\"query\": \"latest AI news\", \"count\": 5}`\n*   **📤 Output:** Web search results to the AI Agent."
      },
      "typeVersion": 1
    },
    {
      "id": "39f4dff5-2086-4663-9238-e0749f74cfe4",
      "name": "Note adhésive8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1620,
        640
      ],
      "parameters": {
        "color": 6,
        "width": 520,
        "height": 420,
        "content": "## 🛠️ Tool: brave_local_search (MCP Client)\nCalls the external **Brave Local Search** MCP tool via Smithery.\n\n### Details:\n*   **🔗 Connection:** Uses the 'smithery brave search' credential.\n*   **🎯 Purpose:** Finds local businesses, services. *May fall back to web search.*\n*   **🤖 AI Interaction:**\n    *   Guided by system prompt for queries with local intent.\n    *   AI generates JSON for parameters:\n        *   `query` (string, **required**)\n        *   `count` (number, optional, max 20)\n    *   *Example JSON:* `{\"query\": \"pizza near me\", \"count\": 3}`\n*   **📤 Output:** Local search results (or web results if fallback) to AI Agent."
      },
      "typeVersion": 1
    },
    {
      "id": "f5a49518-9373-4791-ac04-5ee8c2956c7f",
      "name": "Note adhésive9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        780,
        -1580
      ],
      "parameters": {
        "color": 7,
        "width": 720,
        "height": 660,
        "content": "## 💡 n8n AI Agent as an MCP Service\n### Brave Search Example 🔎\n**🎯 What This Sub-Workflow Does:**\nTransforms an AI agent specialized in **Brave Search** into a callable \"skill\" for the main MCP server. It enables natural language queries for web and local search.\n\n**🔄 How It Works (Internally):**\n1.  Receives `query` from the main workflow's `call_brave_search_agent` tool.\n2.  The **`Brave Search AI Agent`** node (Gemini) orchestrates the task.\n3.  Uses connected MCP Client tools to call Smithery's Brave Search:\n    *   `brave_web_search` 🌍\n    *   `brave_local_search` 📍\n4.  Utilizes `Simple Memory` for conversational context.\n\n**🏆 Why This Pattern is Useful (with Smithery):**\n*   **Client Simplicity:** Main MCP clients call just *one tool* (`call_brave_search_agent`).\n*   **Token Efficiency:** Complex prompting for Brave tools happens *here*, not on the client-side.\n*   **Centralized Logic:** Update Brave search strategies here without affecting clients.\n*   **Agent Specialization:** This agent focuses *only* on Brave Search, making it modular.\n\n**(See Main Workflow for client connection examples.)**"
      },
      "typeVersion": 1
    },
    {
      "id": "4dbcdda3-c1c6-4e7b-a58c-dd7216934f13",
      "name": "Brave Search MCP Server Trigger",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        120,
        -820
      ],
      "webhookId": "cc8cc827-3e72-4029-8a9d-76519d1c136d",
      "parameters": {
        "path": "cc8cc827-3e72-4029-8a9d-76519d1c136d"
      },
      "typeVersion": 1
    },
    {
      "id": "64cd0750-4f06-49ce-93f3-4fd97e37a94f",
      "name": "call_brave_search_agent",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        280,
        -460
      ],
      "parameters": {
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "QclY1XQ8GEstkvk7",
          "cachedResultName": "Brave Search Smithery AI Agent MCP Server"
        },
        "description": "=To perform web and local searches using the Brave Search MCP and provide relevant results based on user queries. It should intelligently decide when to use web search versus local search.",
        "workflowInputs": {
          "value": {
            "query": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('query', `The primary natural language query from the user for searching.`, 'string') }}"
          },
          "schema": [
            {
              "id": "query",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "query",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b58d3462-db63-4007-8faa-83fafac2e2fe",
      "name": "brave_web_search",
      "type": "n8n-nodes-mcp.mcpClientTool",
      "position": [
        1280,
        480
      ],
      "parameters": {
        "toolName": "brave_web_search",
        "operation": "executeTool",
        "connectionType": "http",
        "toolParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Parameters', `Generate a JSON object with the parameters for the 'brave_web_search' tool.\nThe tool expects a JSON object with the following keys:\n- \"query\": (string, **required**) The search terms for the web search.\n- \"count\": (number, optional) The number of results to return per page. Maximum is 20. If not provided, a default value will be used by the service.\n- \"offset\": (number, optional) The pagination offset to retrieve a specific page of results. Maximum is 9. If not provided, the first page is returned.\n\nExample (required only):\n{\"query\": \"latest AI research\"}\n\nExample (with optionals):\n{\"query\": \"popular javascript frameworks\", \"count\": 10, \"offset\": 0}`, 'json') }}",
        "descriptionType": "manual",
        "toolDescription": "Calls the 'brave_web_search' MCP tool to perform a general web search. Useful for finding articles, news, and answers to general knowledge questions. Supports pagination."
      },
      "credentials": {
        "mcpClientHttpApi": {
          "id": "izP58157WoLmqx5y",
          "name": "smithery brave search"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4578b0da-6a61-4b60-b178-7614139559eb",
      "name": "brave_local_search",
      "type": "n8n-nodes-mcp.mcpClientTool",
      "position": [
        1840,
        480
      ],
      "parameters": {
        "toolName": "brave_local_search",
        "operation": "executeTool",
        "connectionType": "http",
        "toolParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Parameters', `Generate a JSON object with the parameters for the 'brave_local_search' tool.\nThe tool expects a JSON object with the following keys:\n- \"query\": (string, **required**) The search terms for the local search (e.g., \"coffee shop downtown\", \"bookstore [zip code]\").\n- \"count\": (number, optional) The number of local results to return. Maximum is 20. If not provided, a default value will be used by the service.\n\nExample (required only):\n{\"query\": \"restaurants near Eiffel Tower\"}\n\nExample (with optional count):\n{\"query\": \"best parks in Berlin\", \"count\": 5}\n\nNote: This tool does not support an 'offset' parameter for pagination. It may fall back to web search if no local results are found.`, 'json') }}",
        "descriptionType": "manual",
        "toolDescription": "Calls the 'brave_local_search' MCP tool to find local businesses, restaurants, and services. If no local results are found, it may automatically fall back to a web search."
      },
      "credentials": {
        "mcpClientHttpApi": {
          "id": "izP58157WoLmqx5y",
          "name": "smithery brave search"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4a481f1a-ddb6-4ddc-8c80-789a20369516",
      "name": "Brave Search Agent IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1000,
        80
      ],
      "parameters": {
        "text": "={{ $('Brave Search Workflow Start').item.json.query }}",
        "options": {
          "systemMessage": "You are an AI assistant designed to help users find information using Brave Search. You have access to two tools: 'brave_web_search' for general web queries and 'brave_local_search' for finding local businesses and services.\n\nYour primary goal is to understand the user's query and choose the most appropriate tool to get the best results.\n\nHere's how you should operate:\n1.  Analyze the user's query. Identify if it has a clear local intent (e.g., \"restaurants near me,\" \"hardware store in London,\" \"coffee shop 90210\") or if it's a general web search (e.g., \"latest news on AI,\" \"how to bake bread,\" \"what is quantum physics?\").\n\n2.  If local intent is strong:\n    *   Use the `brave_local_search` tool.\n    *   The `query` parameter for this tool should contain the local search terms (e.g., \"cafe Paris\", \"bookstore Main Street\").\n    *   You can use the optional `count` parameter (number, max 20) to specify how many results to retrieve.\n    *   Be aware that `brave_local_search` might automatically fall back to a web search if no specific local results are found. If this happens, clarify this in your response.\n\n3.  If the query is general or explicitly asks for web information:\n    *   Use the `brave_web_search` tool.\n    *   The `query` parameter for this tool should be the user's search terms.\n    *   You can use the optional `count` parameter (number, max 20) for results per page and `offset` (number, max 9) for pagination if needed for follow-up queries or if the user asks for more.\n\n4.  If the query is ambiguous (could be local or web):\n    *   You can either default to `brave_web_search` for broader coverage or, if confidence is low, ask the user for clarification, for example: \"Are you looking for web results or local businesses for this query?\"\n\n5.  After receiving results from a tool:\n    *   Summarize the key findings for the user.\n    *   Indicate whether the information came primarily from a web search or a local search, especially if a fallback occurred with `brave_local_search`.\n\nCritical points:\n*   Do not use the `offset` parameter with `brave_local_search`.\n*   Ensure parameters passed to tools are correctly formatted. `query` is always a string. `count` and `offset` are numbers.\n*   If a tool call fails or returns no relevant information, inform the user gracefully.\n*   Your final output should be a helpful summary addressing the user's query."
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "f811a9ae-4b05-4409-8f80-56e468c07111",
      "name": "Brave Search Workflow Début",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -20,
        80
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "query"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "0bff9d79-dc48-45e5-b5c4-a05832999e77",
      "name": "Note adhésive10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2060,
        -1280
      ],
      "parameters": {
        "width": 860,
        "height": 400,
        "content": "## 🧪 Testing this MCP Endpoint\nYou can test this agent externally using tools like Postman, curl, or an MCP client.\n\n### Request Details:\n*   **Method:** `POST`\n*   **URL:** `https://YOUR_N8N_INSTANCE/mcp/cc8cc827-3e72-4029-8a9d-76519d1c136d/sse`\n    *(Replace with your full URL from the MCP Server Trigger node)*\n*   **Headers:** `Content-Type: application/json`\n*   **Body Example:**\n    ```json\n    {\n      \"input\": {\n        \"query\": \"your test query here\"\n      },\n      \"options\": {} // Optional, depending on MCP client\n    }\n    ```"
      },
      "typeVersion": 1
    },
    {
      "id": "69d177f9-777d-4348-897e-5eabc0e314c9",
      "name": "Note adhésive12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -20,
        540
      ],
      "parameters": {
        "color": 6,
        "width": 480,
        "height": 340,
        "content": "## ⚙️ Key LLM & Agent Settings\n### Core Configuration:\n*   **🤖 LLM Model:** `models/gemini-2.5-flash-preview-05-20`\n*   **📜 Agent System Prompt:**\n    *   Defined in the **'Brave Search AI Agent'** node.\n    *   *Crucial for tool selection and response style.*\n*   **🧠 Memory:** `Simple Memory`\n    *   Session Key: `{{ $execution.id }}`\n\n✨ *Modifying the System Prompt or LLM can significantly alter agent behavior.*"
      },
      "typeVersion": 1
    },
    {
      "id": "d3b3c2b9-5ddf-4ac1-a2e7-a50f7fdc6da1",
      "name": "Note adhésive13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        340,
        -280
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 500,
        "content": "## 🎯 Sub-Workflow: Brave Search AI Agent Core Logic\n### Purpose:\nTo process a user's search query, intelligently decide between web or local Brave search, execute the search via Smithery MCP tools, and summarize the results.\n\n### Expected Input:\n(From main workflow, via the `query` parameter passed to `call_brave_search_agent`)\n*   A natural language string representing the user's search request.\n    *   *Example 1:* \"restaurants near me\"\n    *   *Example 2:* \"latest AI news\""
      },
      "typeVersion": 1
    },
    {
      "id": "e00f2870-ff34-4d5d-926f-93ed191f7b22",
      "name": "Note adhésive14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2060,
        -860
      ],
      "parameters": {
        "width": 860,
        "height": 180,
        "content": "## 🛠️ Troubleshooting Tips (Sub-Workflow)\n1.  **📜 Agent Logs:** Check execution logs of the **'Brave Search AI Agent'** node for its \"thought process\" and tool calls.\n2.  **🔎 MCP Client Tools:** Verify inputs/outputs of `brave_web_search` & `brave_local_search` nodes.\n3.  **🌐 External Service:** Test the Smithery Brave Search MCP (URL in Sticky Note11) independently if tool calls fail.\n4.  **🔑 Credentials:** Ensure 'smithery brave search' n8n credential is valid.\n5.  **💬 LLM Issues:** For unexpected LLM responses, review/tweak the System Prompt in the AI Agent node."
      },
      "typeVersion": 1
    },
    {
      "id": "3eed4f4b-d7c1-42b8-b6a1-86e005454624",
      "name": "Note adhésive15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        -1580
      ],
      "parameters": {
        "color": 4,
        "width": 680,
        "height": 200,
        "content": "## 📄 Workflow Information\n*   **Workflow:** Brave Search Smithery AI Agent MCP Server (Main Gateway)\n*   **Version:** 1.0.0\n*   **Last Updated:** 2025-06-01\n*   **👤 Author:** Jeremy Dawes, Jezweb ([www.jezweb.com.au](https://www.jezweb.com.au/))\n*   **📜 Description:** Main MCP server exposing the Brave Search AI Agent."
      },
      "typeVersion": 1
    },
    {
      "id": "cb0b44b4-2a47-4908-9ec3-81d6736b27d5",
      "name": "Note adhésive16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        -1360
      ],
      "parameters": {
        "color": 4,
        "width": 680,
        "height": 200,
        "content": "## ✅ TODO / Future Enhancements\n*   [ ] Add more detailed error handling for specific tool failures.\n*   [ ] Explore caching results for common queries.\n*   [ ] Refine system prompt for ambiguous local vs. web search cases.\n*   [ ] Consider adding freshness parameters to `brave_web_search` if needed."
      },
      "typeVersion": 1
    },
    {
      "id": "56163ca6-2bad-495c-b486-54f36a3b4e75",
      "name": "Note adhésive11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3000,
        -800
      ],
      "parameters": {
        "width": 990,
        "height": 1120,
        "content": "## Example prompt and response in Roo Code\n\n![Source example](https://www.jezweb.com.au/wp-content/uploads/2025/06/brave-search-mcp-server-agent-roo-code.png#full-width)\n\n### Much less context wasted on extra information fromt he Brave Search MCP server output!"
      },
      "typeVersion": 1
    },
    {
      "id": "b268e31a-72f8-4ed5-b9da-55bfcae49b2d",
      "name": "Note adhésive17",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4040,
        -780
      ],
      "parameters": {
        "width": 1460,
        "height": 1320,
        "content": "## Example raw output that Roo Code would receive direct from the Brave Search MCP\n\n![Example raw output that Roo Code would receive direct from the Brave Search MCP](https://www.jezweb.com.au/wp-content/uploads/2025/06/brave-search-example-raw-result.png#full-width)"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "6fb7ce8c-5a65-4e4e-9af7-cadc36bf31ae",
  "connections": {
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "Brave Search AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "b58d3462-db63-4007-8faa-83fafac2e2fe": {
      "ai_tool": [
        [
          {
            "node": "Brave Search AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "4578b0da-6a61-4b60-b178-7614139559eb": {
      "ai_tool": [
        [
          {
            "node": "Brave Search AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "64cd0750-4f06-49ce-93f3-4fd97e37a94f": {
      "ai_tool": [
        [
          {
            "node": "4dbcdda3-c1c6-4e7b-a58c-dd7216934f13",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Brave Search AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Brave Search Workflow Start": {
      "main": [
        [
          {
            "node": "Brave Search AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Ingénierie, Intelligence Artificielle

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds26
Catégorie2
Types de nœuds8
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Jez

Jez

@jez

I'm passionate about combining traditional web development with AI and automation to create impactful online solutions. As Founder & CEO of Jezweb, an award-winning Newcastle, Australia agency, I lead a 30+ person team delivering high-quality web design, development, and hosting services to over 3000 clients.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34