1. 从零开始:理解MCP与n8n的强强联合

最近在捣鼓AI应用开发,发现一个挺有意思的场景:想让我的AI助手(比如Claude或者GPT)能直接读取我本地的项目文档,或者操作我数据库里的数据。这听起来像是需要写一堆复杂的API接口和集成代码,对吧?我之前也是这么想的,直到我遇到了MCP和n8n这对“黄金搭档”。今天,我就以一个过来人的身份,手把手带你用n8n搭建一个你自己的MCP服务,并把它无缝集成到我们最熟悉的VSCode开发环境里。整个过程,就像搭乐高一样简单,不需要你是个全栈开发大神,只要跟着步骤走,一个小时就能看到成果。

那么,MCP到底是什么呢?你可以把它想象成AI世界的“通用充电接口”。在2024年之前,每个AI模型想连接外部工具或数据,都得自己定制一套连接方案,就像老式手机各有各的充电口,非常麻烦。而MCP(Model Context Protocol,模型上下文协议)的出现,就是为了解决这个问题。它由Anthropic公司推出,目标就是标准化AI模型与外部一切(文件、数据库、API)的通信方式。有了它,你的AI应用就能像用USB-C线给不同设备充电一样,轻松“即插即用”各种资源。它的核心架构很清晰:服务器(Server) 负责连接具体的数据源(比如你的本地文件夹、一个MySQL数据库,或者一个天气API),并对外提供标准化的工具列表;客户端(Client) 则集成在AI应用里(比如VSCode里的AI助手插件),它知道如何向服务器请求工具并执行;还有一个主机(Host),通常是我们使用的IDE或AI应用本体,负责管理这些连接的安全和权限。我们今天要做的,就是用n8n来扮演这个“服务器”的角色,因为它可视化编程的特性,让创建服务变得异常简单。

为什么选择n8n来构建MCP服务呢?这得说说我的切身体会。n8n本身是一个强大的工作流自动化平台,你可以通过拖拽节点的方式,把不同的应用和服务连接起来。它内置了HTTP请求、数据处理、逻辑判断等海量节点。最关键的是,n8n社区非常活跃,已经有人开发了专门的“MCP Trigger”和“MCP Action”节点,这相当于把创建MCP服务的底层协议封装成了我们看得懂、拖得动的积木块。这意味着,你不需要从零开始写一个遵守MCP协议的WebSocket服务器,只需要在n8n的画布上拖拖拽拽,配置几个参数,一个功能完整的MCP服务就诞生了。这对于快速原型验证、为内部工具添加AI能力,或者仅仅是学习MCP协议来说,简直是“作弊器”般的存在。接下来,我们就从环境准备开始,一步步构建这个服务。

2. 实战第一步:搭建你的n8n游乐场

工欲善其事,必先利其器。在开始构建MCP服务之前,我们得先有一个能运行的n8n环境。别担心,这里我给你准备了三条“零门槛”的路径,无论你是想快速尝鲜,还是打算长期使用,总有一款适合你。

### 2.1 最快体验:使用n8n云服务(推荐新手)

如果你只是想快速体验一下整个流程,不想在本地安装任何东西,那么n8n官方提供的14天免费云环境是最佳选择。你只需要一个邮箱(Gmail、Outlook等都行)去注册一个n8n.cloud的账号。注册成功后,系统会直接为你创建一个云端的工作区,里面已经运行着一个完整的n8n实例。你通过浏览器访问它,界面和功能与本地部署的完全一致。最大的好处是,它帮你省去了服务器配置、域名解析、SSL证书等所有运维烦恼,让你能百分百专注于工作流逻辑本身。这14天足够你完成本教程的所有实验,并探索更多可能性。当然,免费期过后如果需要继续使用,就需要订阅了,但对于学习和原型验证来说,这14天绰绰有余。

### 2.2 本地部署:Docker一键安装(最灵活)

如果你希望环境完全受自己控制,或者打算长期使用,我强烈推荐使用Docker在本地部署。这是我最常用的方式,因为它隔离性好,升级和迁移都特别方便。假设你的电脑上已经安装了Docker Desktop,那么只需要打开终端(Windows用PowerShell或CMD,Mac/Linux用Terminal),执行下面这一条命令:

docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n

我来解释一下这条命令在干什么:-p 5678:5678 是把容器内部的5678端口映射到你电脑的5678端口,之后你就能通过 http://localhost:5678 访问n8n的Web界面了。-v ~/.n8n:/home/node/.n8n 这部分非常重要,它把你电脑上的一个目录(~/.n8n)挂载到容器内部,用于持久化保存你的所有工作流、凭证和配置。这样即使你删除了容器,你的劳动成果也不会丢失。执行命令后,稍等片刻,在浏览器打开 http://localhost:5678,你就能看到n8n的初始化设置页面,按照提示创建一个管理员账号,你的专属自动化平台就搭建好了。

### 2.3 进阶选择:传统Node.js安装

如果你的开发环境已经配置了Node.js(版本18或以上),也可以选择直接用npm安装。这种方式更适合那些喜欢“一切尽在掌握”的开发者。打开终端,全局安装n8n:

npm install n8n -g

安装完成后,直接运行 n8n start 命令即可启动服务。同样,默认访问地址是 http://localhost:5678。这种方式的好处是与你的Node生态完全融合,方便调试和自定义。但需要注意的是,它可能会与你现有的Node项目产生依赖冲突,所以如果你对Node环境管理不太熟悉,还是优先推荐Docker方案。

无论选择哪种方式,当你成功登录n8n后台,看到那个干净、直观的流程图界面时,我们的“游乐场”就准备就绪了。接下来,我们就可以在这个画布上,开始创造我们的第一个MCP服务了。记得,如果n8n界面是英文的,而你阅读起来有点吃力,可以给浏览器安装一个翻译插件(比如“沉浸式翻译”),一键实现页面汉化,完全不影响操作。

3. 核心构建:在n8n中创建你的第一个MCP服务

环境准备好了,现在我们进入最核心、也最有意思的部分——在n8n里“画”出一个MCP服务器。整个过程就像搭积木,我们一步步来。

### 3.1 创建工作流与MCP触发器

首先,在n8n主界面点击“Workflow”然后“New Workflow”,创建一个空白工作流。我建议你给它起个直观的名字,比如“My First MCP Server”。接着,我们要找到搭建MCP服务的核心积木块。在画布左侧的节点搜索框里,输入“MCP”,你应该能看到两个关键节点:“MCP Trigger”和“MCP Action”。我们把“MCP Trigger”节点拖到画布上,这个节点将作为我们MCP服务的“大门”,所有外部的调用请求都会先敲响这扇门。

点击这个“MCP Trigger”节点进行配置。你会发现它的设置非常简洁,这得益于n8n社区对MCP协议的封装。关键信息在节点配置面板的上方:一个 “Test URL” 和一个 “Listen” 按钮。这个“Test URL”就是你刚刚创建的MCP服务的唯一访问地址,格式类似于 http://localhost:5678/webhook-test/xxxxxx。请务必点击旁边的“Copy”按钮,把这个URL保存下来,我们稍后在VSCode里测试时会用到它。然后,点击 “Listen” 按钮。这个操作至关重要,它相当于你启动了服务器的监听程序,告诉n8n:“我开始营业了,可以接受MCP客户端的连接了”。此时,这个节点会显示一个“等待中”的状态。

### 3.2 为服务添加第一个工具:简易计算器

只有一个空壳的服务器没什么用,MCP的核心是向客户端提供可用的“工具”(Tools)。现在,我们来给这个服务器添加一个最简单的工具——一个能做加减乘除的计算器。从节点面板搜索并拖拽一个“MCP Action”节点到画布上,然后用连接线从“MCP Trigger”节点的输出端拉到“MCP Action”节点的输入端。

现在配置这个“MCP Action”节点。你需要填写几个关键字段:

  1. Operation:选择“Execute Function”。这表示这个节点将执行一个具体的功能。
  2. Tool Name:给你的工具起个名字,比如 simple_calculator。客户端会看到这个名字。
  3. Description:写一段清晰的描述,例如“一个可以进行加、减、乘、除运算的简单计算器”。好的描述能让AI助手更好地理解何时该调用这个工具。
  4. Parameters:这里定义工具需要的输入参数。我们需要两个数字和一个运算符。点击“Add Parameter”来添加:
    • 第一个参数:a,类型选 number,描述“第一个运算数”。
    • 第二个参数:b,类型选 number,描述“第二个运算数”。
    • 第三个参数:operation,类型选 string,描述“运算符(支持 add, subtract, multiply, divide)”。

接下来是最重要的逻辑部分。我们需要在“Code”或“Function”区域(根据节点版本不同,名称可能略有差异)编写一段JavaScript代码,来处理传入的参数并返回结果。代码逻辑很简单:

const a = $input.first().json.a;
const b = $input.first().json.b;
const op = $input.first().json.operation;

let result;
switch(op) {
  case 'add':
    result = a + b;
    break;
  case 'subtract':
    result = a - b;
    break;
  case 'multiply':
    result = a * b;
    break;
  case 'divide':
    if (b === 0) {
      throw new Error('除数不能为零');
    }
    result = a / b;
    break;
  default:
    throw new Error(`不支持的运算符: ${op}`);
}

return [{json: {result}}];

这段代码读取了前端传来的 a, b, operation 参数,根据运算符执行相应的计算,最后将结果包装在 json 对象里返回。这样,一个具备实际功能的MCP工具就定义好了。

### 3.3 激活并测试工作流

工具配置好后,我们还需要做最后一步:让这个工作流“生效”。在n8n中,只有被激活(Active)的工作流才能持续对外提供服务。点击画布右上角的“Execute Workflow”下拉菜单,选择“Activate”。激活后,你会看到“MCP Trigger”节点旁边出现一个永久的 “Webhook URL”,这个URL才是你MCP服务长期有效的生产环境地址,格式类似 https://your-n8n-domain.com/webhook/xxxxxx。现在,你的MCP服务器已经正式上线,它提供了一个名为 simple_calculator 的工具,正等待被调用。

4. 无缝集成:在VSCode中连接并测试你的MCP服务

服务器建好了,我们得找个“客户”来用用看。还有什么比我们每天写代码的VSCode更适合做这个测试客户端的呢?下面我介绍两种在VSCode里连接MCP服务的方法,一种轻量级专门用于测试,另一种则功能强大,集成了完整的AI编程助手。

### 4.1 使用专业测试工具:MCP Inspector

对于只想纯粹测试MCP服务连通性和工具列表的开发者,我强烈推荐“MCP Inspector”这个插件。它在VSCode扩展商店里就能直接搜到,安装非常方便。安装完成后,你会在VSCode侧边栏看到一个像雷达一样的新图标,点击它就能打开MCP Inspector的主界面。

它的使用极其直观。在界面里,你会看到一个地址输入框。把我们在n8n里复制的那个“Test URL”或者激活后的“Webhook URL”粘贴进去。然后点击“Connect”按钮。如果一切正常,几秒钟后,下方就会显示出你的MCP服务器提供的所有工具列表,其中就应该包含我们刚刚创建的 simple_calculator,并且旁边会清晰地列出它需要的参数(a, b, operation)。

这还没完,我们还要测试工具是否能正确执行。在工具列表里点击 simple_calculator,右侧会展开一个测试面板。你可以在面板里直接填写测试数据,比如 a: 5, b: 3, operation: "add",然后点击“Run”。瞬间,你就能在下方看到返回结果 {"result": 8}。同时,你切换回n8n的界面,会发现刚刚那个“MCP Trigger”节点下出现了一次执行记录,点开可以看到详细的输入和输出日志。这种即时的反馈,对于调试MCP服务来说非常高效。MCP Inspector就像一个万用表,能帮你快速诊断MCP服务的“通断”和“信号质量”。

### 4.2 融入开发工作流:使用Cline AI助手

如果你想体验更贴近真实开发的场景,即让AI助手直接使用你的MCP工具,那么可以试试“Cline”这款插件。Cline本身是一个功能强大的开源AI编程助手,它内置了MCP客户端支持。安装Cline后,你需要先配置一个AI模型API(它支持OpenAI、Anthropic、DeepSeek等多种兼容接口)。配置完成后,你会发现VSCode底部状态栏多了一个Cline的输入框。

重点来了,如何让Cline连接我们的MCP服务?点击VSCode左下角的设置齿轮图标,进入设置,搜索“Cline MCP”。在设置项里,你可以找到添加MCP服务器的配置。这里你需要填入服务器的配置信息,通常是一个JSON结构,需要指定服务器类型(对于n8n的HTTP服务,可能是 stdiosse,具体需参考n8n MCP节点的文档)和连接地址。配置成功后,你就可以在Cline的聊天框里直接说:“请用我的计算器工具计算一下123乘以456。” Cline会识别出它可用的工具,自动调用你的 simple_calculator,并将计算结果返回在对话中。这意味着,你将一个自定义的能力赋予了AI助手,让它真正成为了你工作流的延伸。

5. 深化与拓展:打造更实用的MCP服务

通过了基础的连接测试,我们的MCP服务就算跑通了。但一个只会做加减乘除的计算器显然不是我们的终极目标。n8n的强大之处在于,它能轻松连接成千上万种应用和服务。下面,我来分享几个更有实用价值的MCP服务构建思路,你可以把它们当作课后作业来尝试。

### 5.1 构建项目文件查询工具

作为一个开发者,我经常需要让AI助手帮我分析项目代码,但直接把整个代码库粘贴给它是低效且可能有长度限制的。我们可以构建一个MCP工具,让AI助手能按需读取我本地指定目录下的文件。在n8n中,这很容易实现:

  1. 使用“Read File”节点(或“Execute Command”节点调用 cat/type 命令)来读取文件。
  2. 将“MCP Trigger”节点传来的文件路径参数,作为读取节点的输入。
  3. 将文件内容通过“MCP Action”节点返回。 这样,你在VSCode里就可以对AI说:“请帮我查看 src/utils/helper.js 文件里 formatDate 函数的实现。” AI助手会通过MCP工具获取文件内容,然后基于此为你分析或解答问题。

### 5.2 连接数据库进行智能查询

让AI直接操作数据库听起来很危险,但通过MCP进行可控的查询却非常有用。例如,你可以创建一个“查询本周销售数据”的工具。

  1. 在n8n中,使用“MySQL”或“PostgreSQL”节点连接你的数据库。
  2. 配置一个接收查询参数(如日期范围)的“MCP Action”节点。
  3. 在节点中,将参数拼接成安全的SQL查询语句(务必使用参数化查询或严格校验,防止SQL注入)。
  4. 执行查询并将结果集返回。 之后,你就可以用自然语言询问:“上周销量最高的产品是什么?” AI会调用这个工具,获取数据后为你生成答案。

### 5.3 创建复合型工作流工具

n8n工作流可以非常复杂。你可以创建一个MCP工具,它本身触发一个完整的n8n子工作流。例如,一个“部署预览环境”的工具:

  1. MCP客户端调用该工具,传入Git分支名。
  2. n8n工作流被触发,依次执行:从Git拉取指定分支代码、在服务器上构建Docker镜像、启动新容器、将预览URL返回。 这样,你只需要在聊天框里对AI说:“请为 feature/new-auth 这个分支创建一个预览环境。” 剩下的繁琐流程就全部自动化完成了。

在构建这些复杂工具时,你可能会遇到一些“坑”。比如,n8n的MCP节点默认是短连接,执行一次就结束,这对于需要持续会话的AI对话不太友好。解决方案是在“MCP Trigger”节点的配置里,仔细研究其“Response Mode”等高级选项,有些模式支持保持连接。又比如,工具执行出错时,确保在“MCP Action”节点的代码里用 throw new Error() 抛出清晰的错误信息,这样客户端才能收到有意义的提示。安全性也是重中之重,尤其是涉及文件访问和数据库操作时,一定要在MCP服务器端(也就是n8n工作流里)做好参数校验、身份验证和权限控制,不要指望客户端来保证安全。

6. 反向操作:在n8n工作流中调用其他MCP服务

到这里,我们已经实现了用n8n提供MCP服务。但n8n的玩法是双向的,它同样可以作为一个强大的消费者,去调用别的MCP服务,从而将外部AI能力融入你的自动化流程。这个功能藏在n8n的“AI Agent”分类里。

想象一个场景:你有一个自动处理用户反馈邮件的工作流。之前,你可能需要调用OpenAI的API来总结邮件内容,配置起来比较麻烦。现在,如果你的VSCode里已经有一个能调用Claude的MCP服务器(比如通过Claude Desktop暴露的),你就可以在n8n里直接复用这个连接。具体操作是:在n8n节点面板找到“MCP Client”或类似的节点(有时可能以“AI Tool”的形式出现),将其拖入画布。在配置中,你需要填入目标MCP服务器的连接信息(可能是WS或SSE地址)。连接成功后,这个节点会动态获取到远程MCP服务器提供的所有工具列表。你可以选择一个工具(例如“分析文本情感”),并映射好输入参数(将上一节点传来的邮件内容填入),那么这个工作流在执行到这一步时,就会自动去调用远程的Claude来分析邮件情感,并将结果返回给后续节点。

这开启了一种全新的集成模式:n8n作为自动化中枢,不仅可以协调传统的API(如Slack、Google Sheets),还可以通过MCP协议协调各种AI能力。你可以创建一个工作流,先调用MCP服务A进行图像识别,再将结果传给MCP服务B进行文本翻译,最后将结果保存到数据库并发送通知。所有这一切,都在一个可视化的画布里完成,无需关心底层复杂的网络通信和协议细节。这种将AI能力“管道化”、“乐高化”的体验,正是MCP协议结合n8n这类自动化工具所带来的巨大潜力。

经过这一趟从搭建、测试到深化拓展的旅程,你应该能感受到,利用n8n构建和集成MCP服务,并没有想象中那么高深莫测。它更像是在用一套高级积木,把不同的能力模块连接起来。我最初也只是抱着试试看的心态,但当你亲手打造的工具被AI助手顺畅调用,并完成一个实际任务时,那种成就感是非常直接的。技术本身在快速迭代,但这种通过组合与集成来创造新价值的思路,才是更值得我们掌握的。

更多推荐