AutomationFlowsAI & RAG › Manage Odoo CRM with Natural Language Using Openai and Mcp Server

Manage Odoo CRM with Natural Language Using Openai and Mcp Server

ByRohit Dabra @rohitdabra on n8n.io

This workflow connects an AI Agent with Odoo CRM using the Model Context Protocol (MCP). It allows users to manage CRM data in Odoo through natural language chat commands. The assistant interprets the user’s request, selects the appropriate Odoo action, and executes it…

Event trigger★★★★☆ complexityAI-powered25 nodesMcp TriggerOdoo ToolChat TriggerAgentMemory Buffer WindowMcp Client ToolOpenAI Chat
AI & RAG Trigger: Event Nodes: 25 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9187 — we link there as the canonical source.

This workflow follows the Agent → Chat Trigger 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 →

Download .json
{
  "id": "V5LSgbewzeJtKVKo",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "OdooMCP",
  "tags": [],
  "nodes": [
    {
      "id": "9949855b-6c5e-44cf-990b-c4e1e8852c35",
      "name": "MCP Server Trigger",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        176,
        -272
      ],
      "parameters": {
        "path": "7e15c5dd-a420-46e5-846a-49cee37aa217"
      },
      "typeVersion": 2
    },
    {
      "id": "69f4ad5f-b7c4-46a2-88bd-96b2b1abfbc4",
      "name": "Create a contact in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        -144,
        -80
      ],
      "parameters": {
        "contactName": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Name', ``, 'string') }}",
        "additionalFields": {
          "email": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Email', ``, 'string') }}",
          "phone": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Phone', ``, 'string') }}",
          "mobile": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Mobile', ``, 'string') }}",
          "website": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Website', ``, 'string') }}",
          "function": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Job_Position', ``, 'string') }}"
        }
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "84afdf3a-f2ee-435d-b1c1-acdc8d9bf1d0",
      "name": "Delete a contact in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        32,
        -80
      ],
      "parameters": {
        "contactId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Contact_ID', ``, 'string') }}",
        "operation": "delete"
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fc420fe4-118f-4754-96c3-39206d68fca8",
      "name": "Update a contact in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        208,
        -80
      ],
      "parameters": {
        "contactId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Contact_ID', ``, 'string') }}",
        "operation": "update",
        "updateFields": {
          "name": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Name', ``, 'string') }}",
          "email": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Email', ``, 'string') }}",
          "phone": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Phone', ``, 'string') }}",
          "mobile": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Mobile', ``, 'string') }}",
          "comment": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Internal_Notes', ``, 'string') }}",
          "website": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Website', ``, 'string') }}",
          "function": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Job_Position', ``, 'string') }}"
        }
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1e55ceb5-62da-44bc-bc81-26ad8f13cf91",
      "name": "Get a contact in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        432,
        -80
      ],
      "parameters": {
        "options": {},
        "contactId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Contact_ID', ``, 'string') }}",
        "operation": "get"
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8c53f0b5-b233-40bc-9612-4593ec76042f",
      "name": "Get All contacts in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        592,
        -80
      ],
      "parameters": {
        "options": {},
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "69a754a4-00a3-46cb-a6f8-1f2752a8a5b0",
      "name": "Create an opportunity in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        -144,
        144
      ],
      "parameters": {
        "resource": "opportunity",
        "opportunityName": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Name', ``, 'string') }}",
        "additionalFields": {
          "phone": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Phone', ``, 'string') }}",
          "priority": "1",
          "email_from": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Email', ``, 'string') }}",
          "description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Internal_Notes', ``, 'string') }}",
          "expected_revenue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Expected_Revenue', ``, 'number') }}"
        }
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9d270bd6-cba4-418a-b4c0-bb7500ccc435",
      "name": "Delete an opportunity in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        32,
        144
      ],
      "parameters": {
        "resource": "opportunity",
        "operation": "delete",
        "opportunityId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Opportunity_ID', ``, 'string') }}"
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7726151c-bd6e-4b91-bd94-bcc96d3581ca",
      "name": "Update an opportunity in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        208,
        144
      ],
      "parameters": {
        "resource": "opportunity",
        "operation": "update",
        "updateFields": {
          "name": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Name', ``, 'string') }}",
          "phone": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Phone', ``, 'string') }}",
          "email_from": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Email', ``, 'string') }}",
          "description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Internal_Notes', ``, 'string') }}",
          "expected_revenue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Expected_Revenue', ``, 'number') }}"
        },
        "opportunityId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Opportunity_ID', ``, 'string') }}"
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8052768f-d070-40e7-8e9e-fb4fef343c46",
      "name": "Get many opportunities in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        592,
        144
      ],
      "parameters": {
        "options": {},
        "resource": "opportunity",
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0fba45f0-caee-4c73-8bbd-30b33d207e4c",
      "name": "Get an opportunity in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        432,
        144
      ],
      "parameters": {
        "options": {},
        "resource": "opportunity",
        "operation": "get",
        "opportunityId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Opportunity_ID', ``, 'string') }}"
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "48477060-bf19-457f-9e7a-55414c8a3e0a",
      "name": "Create a note in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        -144,
        352
      ],
      "parameters": {
        "memo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Memo', ``, 'string') }}",
        "resource": "note"
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e43f3b14-919a-47df-9ac2-939ffc5e9d23",
      "name": "Delete a note in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        32,
        352
      ],
      "parameters": {
        "noteId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Note_ID', ``, 'string') }}",
        "resource": "note",
        "operation": "delete"
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1446443c-a2c2-4e99-9313-751f62e68bd1",
      "name": "Update a note in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        208,
        352
      ],
      "parameters": {
        "memo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Memo', ``, 'string') }}",
        "noteId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Note_ID', ``, 'string') }}",
        "resource": "note",
        "operation": "update"
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "cf62f6e3-a70f-48b4-9d7a-6a1992d39d55",
      "name": "Get a note in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        432,
        352
      ],
      "parameters": {
        "noteId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Note_ID', ``, 'string') }}",
        "options": {},
        "resource": "note",
        "operation": "get"
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9892dd6c-4fe1-4a34-9dd1-927ec98336e7",
      "name": "Get many notes in Odoo",
      "type": "n8n-nodes-base.odooTool",
      "position": [
        592,
        352
      ],
      "parameters": {
        "options": {},
        "resource": "note",
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "odooApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c568c707-e4cd-4c05-81f1-301f8644ea10",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        944,
        -256
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "4e432f4e-a4f3-48fa-a9ae-223467651720",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        896,
        -48
      ],
      "parameters": {
        "options": {
          "systemMessage": "You are an intelligent Odoo CRM Assistant integrated with an MCP Server. \nYour job is to help users seamlessly manage their Odoo CRM data by interpreting natural language requests and calling the appropriate MCP tools.\n\nYou have access to the following tools:\n1. Contact Management\n   - Create a contact in Odoo\n   - Delete a contact in Odoo\n   - Update a contact in Odoo\n   - Get a contact in Odoo\n   - Get all contacts in Odoo\n\n2. Opportunity Management\n   - Create an opportunity in Odoo\n   - Delete an opportunity in Odoo\n   - Update an opportunity in Odoo\n   - Get an opportunity in Odoo\n   - Get many opportunities in Odoo\n\n3. Note Management\n   - Create a note in Odoo\n   - Delete a note in Odoo\n   - Update a note in Odoo\n   - Get a note in Odoo\n   - Get many notes in Odoo\n\nGuidelines:\n- Understand the user\u2019s intent from natural language queries (e.g., \"Add John as a new contact\", \"Show me all opportunities for client X\", \"Delete note #5\").\n- Always select the most relevant MCP tool to complete the task.\n- If multiple details are needed (e.g., creating a contact requires name, email, phone), ask the user to provide the missing information.\n- Confirm before performing destructive actions (like delete contact/opportunity/note).\n- For retrieval actions (get, get all), return results in a clear, user-friendly format.\n- Maintain conversational, professional, and helpful responses\u2014users should feel like they are talking to a human-like CRM assistant.\n- If the request cannot be mapped to any tool, politely explain what you can do and guide the user.\n\nYour primary goal is to make Odoo CRM management effortless for the user."
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2d448a7a-a696-4241-81d1-db2a33c7768c",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        960,
        128
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "107a5d76-1d58-48b1-a75f-f9f60fd15e3b",
      "name": "MCP Client",
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "position": [
        1088,
        128
      ],
      "parameters": {
        "endpointUrl": "http://localhost:5678/mcp/7e15c5dd-a420-46e5-846a-49cee37aa217"
      },
      "typeVersion": 1.1
    },
    {
      "id": "c791f5f5-0592-4108-a622-6423c015565f",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        800,
        128
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-mini",
          "cachedResultName": "gpt-5-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b646a553-202d-4146-abcd-8ace0cca3fbb",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        -128
      ],
      "parameters": {
        "color": 5,
        "width": 1056,
        "height": 208,
        "content": "## Contacts"
      },
      "typeVersion": 1
    },
    {
      "id": "e9d8ea67-a4de-4df7-be33-32d8f9f3f560",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        96
      ],
      "parameters": {
        "color": 4,
        "width": 1056,
        "height": 208,
        "content": "## Opportunities"
      },
      "typeVersion": 1
    },
    {
      "id": "6e6ed7a6-708e-4436-a40d-68c8f4d5eed9",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        320
      ],
      "parameters": {
        "color": 2,
        "width": 1056,
        "height": 208,
        "content": "## Notes"
      },
      "typeVersion": 1
    },
    {
      "id": "5a18c3b1-5098-4e29-ad02-cac46a9ba66f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1104,
        -368
      ],
      "parameters": {
        "width": 768,
        "height": 1136,
        "content": "## \u2699\ufe0f Setup Guide\n\nFollow these steps to set up and run the workflow:\n\n### 1. Prerequisites\n- An **Odoo instance** configured with CRM enabled.  \n- An **n8n** or **automation platform** account where MCP workflows are supported.  \n- An **OpenAI API key** with access to GPT models.  \n- MCP Server installed and running.  \n\n### 2. Import the Workflow\n1. Download the provided workflow JSON file.  \n2. In your automation platform (n8n, Langflow, or other MCP-enabled tool), choose **Import Workflow**.  \n3. Select the JSON file and confirm.  \n\n### 3. Configure MCP Server\n1. Go to your **MCP Server Trigger node** in the workflow.  \n2. Configure it to connect with your Odoo instance.  \n   - Set API endpoint.  \n   - Provide **authentication credentials** (API key).  \n3. Test the connection to ensure the MCP server can reach Odoo.  \n\n### 4. Configure the OpenAI Model\n1. Select the **OpenAI Chat Model node** in the workflow.  \n2. Enter your **OpenAI API Key**.  \n3. Choose the model (e.g., `gpt-5` or `gpt-5-mini`).  \n\n### 5. AI Agent Setup\n- The **AI Agent node** links the Chat Model, Memory, and MCP Client.  \n- Ensure the **MCP Client** is mapped to the correct Odoo tools (Contacts, Opportunities, Notes).  \n- The **System Prompt** defines assistant behavior\u2014use the tailored system prompt provided earlier.  \n\n### 6. Activate and Test\n1. Turn the workflow **ON** (toggle Active).  \n2. Open chat and type:  \n   - \"Create a contact named *John Doe* with email john@example.com.\"  \n   - \"Show me all opportunities.\"  \n   - \"Add a note to *John Doe* saying 'Follow-up scheduled for Friday'.\"  \n3. Verify the results in your Odoo CRM.  \n\n---\n\n## \u2705 Next Steps\n- Extend functionality with **Tasks, Stages, Companies, and Communication Logs** for a complete CRM experience.  \n- Add **confirmation prompts** for destructive actions (delete contact/opportunity/note).  \n- Customize the AI Agent\u2019s system prompt for your organization\u2019s workflows.  \n\n---"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "5838b943-dae2-4a1e-bb4e-fa54b37482ea",
  "connections": {
    "MCP Client": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get a note in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Create a note in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Delete a note in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get a contact in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Update a note in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get many notes in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Create a contact in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Delete a contact in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get All contacts in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Update a contact in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get an opportunity in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create an opportunity in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Delete an opportunity in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Update an opportunity in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get many opportunities in Odoo": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow connects an AI Agent with Odoo CRM using the Model Context Protocol (MCP). It allows users to manage CRM data in Odoo through natural language chat commands. The assistant interprets the user’s request, selects the appropriate Odoo action, and executes it…

Source: https://n8n.io/workflows/9187/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Splitout Redis. Uses executeWorkflowTrigger, n8n, redis, splitOut. Event-driven trigger; 46 nodes.

Execute Workflow Trigger, n8n, Redis +7
AI & RAG

3770. Uses executeWorkflowTrigger, n8n, redis, agent. Event-driven trigger; 46 nodes.

Execute Workflow Trigger, n8n, Redis +7
AI & RAG

Designing agent tools for outcome rather than utility has been a long recommended practice of mine and it applies well when it comes to building MCP servers; In gist, agents to be making the least amo

Execute Workflow Trigger, n8n, Redis +7
AI & RAG

This n8n workflow is designed for WooCommerce store owners and e-commerce managers who want to automate their store operations through an intelligent AI assistant. The workflow creates a conversationa

Discord, Telegram, N8N Nodes Rapiwa +10
AI & RAG

Learn how to build an MCP Server and Client in n8n with official nodes.

Agent, Google Calendar Tool, Mcp Trigger +8