详细教程:用n8n做工作流编排+MCP协议暴露日历工具+AI Agent理解自然语言实现日程自动化。含Webhook接入、MCP Server代理实现代码,对想搭私有AI工作流的程序员有直接参考价值。
你是否曾希望拥有一个 AI,它能帮你查看日程、发现空档、自动预订会议,而无需你一个一个点击界面菜单?通过将 n8n(用于工作流编排)和 Model Context Protocol(MCP)结合,你可以创建一个私有的、自托管的日历助理,真正替你完成这些工作。
n8n:负责 API 连接(Google Calendar、Outlook、Slack)的重活。
MCP Server:一座桥梁,将你的日历数据以"工具"的形式暴露给任何 AI Agent。
AI Agent(如 Goose 或 Claude):理解自然语言请求、调用 n8n 所提供工具的大脑。
创建一个执行特定操作(如 listEvents 或 createEvent)的 n8n 工作流。
由于 n8n 提供了 webhook,你可以创建一个简单的 MCP server 作为代理,将请求发送到你 n8n 的 webhook URL。
// A snippet of an MCP tool definition for your server
{
name: "n8n_calendar_query",
description: "Query the calendar via n8n",
inputSchema: {
type: "object",
properties: {
action: { type: "string", enum: ["list", "book"] },
details: { type: "string" }
}
}
}
配置你的 AI 桌面客户端(如 Goose 或 Claude Desktop)指向你的新 MCP server。
{
"mcpServers": {
"calendar-agent": {
"command": "node",
"args": ["/path/to/mcp-n8n-proxy.js"]
}
}
}
连接后,你的交互流程如下:
安全性:你的日历凭证存在于自托管的 n8n 实例中,而非 AI 供应商的云端。
可扩展性:想加 Slack 通知?只需在工作流中加一个 Slack 节点即可。AI Agent 甚至不需要知道实现变了。
可调试性:使用 n8n 的可视化执行历史,可以精确看到某个 Agent 为何没能成功预订会议。
速率限制:确保你的 n8n webhook 有基本认证(Header Auth),防止未授权触发。
确认机制:对于关键操作(如删除事件),配置你的 Agent 在触发 n8n webhook 之前总是请求人工批准。
Schema 精确性:inputSchema 描述得越详细,LLM 就越能准确地填充 start_time 或 attendees 等参数。