👉 n8n No Limits Access :

https://www.hostg.xyz/SHHAd

Hébergement VPS n8n | Automatisation sécurisée et évolutive

coupon -15% : DRFIRAS15

👉 Formation n8n en Français

Formation n8n en Français : Automatisation & Agents IA

coupon -20% : LANCEMENT : HERE


What you will build

<aside> 🧩

A personal AI assistant that is an MCP Client talking to three MCP Servers you also build in the same workflow: Calendar, Gmail and Utilities. Each server exposes its own tools. Change a tool on a server and the client stays in sync automatically. The Utilities server needs no API key (free public APIs).

</aside>

flowchart LR
  A["Chat message"] --> B["Configuration"]
  B --> C["AI Assistant (MCP Client)"]
  C -->|MCP Client| D["Calendar MCP Server"]
  C -->|MCP Client| E["Gmail MCP Server"]
  C -->|MCP Client| F["Utilities MCP Server"]
  D --> D1["Search / Create / Update / Delete events"]
  E --> E1["Search emails / Create draft"]
  F --> F1["Weather / Currency / Calculator"]

<aside> 🎬

Goal of this document: rebuild the workflow live, node by node, without opening the JSON. Every value, prompt, expression and URL below is copy-paste ready.

</aside>

Prerequisites & credentials

<aside> ⚠️

This template uses the MCP Server Trigger v2 node, so you need a recent n8n (self-hosted or n8n Cloud). The workflow must stay active for the MCP servers to expose their URLs.

</aside>

Credential n8n type Used by How to get it
OpenAi account openAiApi OpenAI Chat Model platform.openai.com → API keys → create key → paste into a new OpenAI credential in n8n.
Google Calendar account googleCalendarOAuth2Api Search / Create / Update / Delete events In n8n create a Google Calendar OAuth2 credential, sign in with Google, grant Calendar access.
Gmail account gmailOAuth2 Search emails / Create draft reply In n8n create a Gmail OAuth2 credential, sign in with Google, grant Gmail access.
(none) Weather / Currency No key. wttr.in and frankfurter.app are free public APIs.

<aside> 🔑

Never paste API keys inside HTTP nodes. Keys live only in n8n Credentials.

</aside>


Node 1 — When chat message received