Brave検索スマートエージェント

上級

これはEngineering, AI分野の自動化ワークフローで、26個のノードを含みます。主にMcpClientTool, Agent, McpTrigger, ToolWorkflow, ExecuteWorkflowTriggerなどのノードを使用、AI技術を活用したスマート自動化を実現。 Brave検索APIとGoogle Gemini MCPサーバーに基づくスマートWebおよびローカル検索

前提条件
  • Google Gemini API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "QclY1XQ8GEstkvk7",
  "meta": {
    "instanceId": "3612a0c89f35a354ddd1216385240db51b4635fde7cae2a0d5004be915b832f3",
    "templateCredsSetupCompleted": true
  },
  "name": "Brave Search Smithery AI Agent MCP Server",
  "tags": [],
  "nodes": [
    {
      "id": "74edac39-0775-4a4d-a007-43e8853b6ff4",
      "name": "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": "シンプルメモリ",
      "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": "付箋",
      "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": "付箋1",
      "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": "付箋2",
      "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": "付箋3",
      "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": "付箋4",
      "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": "付箋5",
      "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": "付箋6",
      "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": "付箋7",
      "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": "付箋8",
      "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": "付箋9",
      "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 AI エージェント",
      "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 開始",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -20,
        80
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "query"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "0bff9d79-dc48-45e5-b5c4-a05832999e77",
      "name": "付箋10",
      "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": "付箋12",
      "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": "付箋13",
      "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": "付箋14",
      "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": "付箋15",
      "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": "付箋16",
      "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": "付箋11",
      "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": "付箋17",
      "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
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - エンジニアリング, 人工知能

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
上級
ノード数26
カテゴリー2
ノードタイプ8
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

作成者
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.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34