n8n中调用playwright-mcp 项目
📚前言
在n8n平台,通过调用MCP社区节点,调用playwright-mcp,操控浏览器。
playwright-mcp的相关内容,可以参考上一篇文档:
playwright-mcp 项目全解析:从理论到实践-CSDN博客
📚相关理论知识(可跳过)
✨MCP是啥
MCP(Model Context Protocol,模型上下文协议)是由Anthropic于2024年推出的开放协议,旨在标准化AI模型与外部数据源、工具之间的通信方式。它被形象地称为AI领域的"USB-C接口",通过统一协议连接大语言模型(如Claude、GPT等)与本地文件、数据库、API等资源,打破数据孤岛,实现"即插即用"的智能交互。
MCP的核心架构包含三个主要组件:
- 客户端(Client):集成于AI应用(如Claude、Cursor等),负责发起请求并解析响应
- 服务器(Server):连接具体数据源(如数据库、GitHub等),执行操作并返回结果
- 主机(Host):管理多个客户端与服务器的连接(如IDE工具Cline),确保权限与安全控制
✨MCP与n8n的协同关系
- MCP提供标准化接口:解决AI模型与外部工具连接的问题,但缺乏工作流编排能力
- n8n提供工作流引擎:具备强大的流程控制能力,但需要标准化方式接入AI模型
- 结合效果:MCP作为"胶水"连接AI与工具,n8n作为"大脑"协调整个流程
✨架构集成方式
在实际集成中,n8n通过社区节点"n8n-nodes-mcp"实现与MCP的对接。这个节点允许n8n工作流中直接调用MCP服务器提供的各种工具。典型集成架构包括:
- n8n作为MCP主机(Host):管理多个MCP客户端与服务器的连接
- MCP服务器作为n8n节点:每个MCP工具(如Brave搜索、GitHub等)作为n8n工作流中的一个步骤
- AI代理节点作为协调中心:决定何时以及如何使用MCP工具
✨n8n-nodes-mcp-client(n8n社区节点)
这是一个 n8n 社区节点,可让您在 n8n 工作流中与模型上下文协议 (MCP) 服务器进行交互。
⚠️注意:n8n社区节点不是MCP Client Tool node
MCP Client Tool node,MCP 客户端工具节点是模型上下文协议 (MCP) 客户端,允许您使用外部 MCP 服务器公开的工具。您可以将 MCP 客户端工具节点连接到您的模型,以使用 n8n 代理调用外部工具。
在n8n的工具列表,带有方盒图标的事n8n社区节点,不带的事MCP Client Tool node。
更详细区别描述,见附录部分。
📚开始实战
1、启动独立 MCP 服务器
启动独立 MCP 服务器命令:
npx @playwright/mcp@latest --port 8931
执行效果:
如果访问这个地址http://localhost:8931/mcp,显示
⚠️特别说明,在n8n的凭证中,需要用 “host.docker.internal”替换localhost,不然docker里的应用访问不到,原因见之前的文档说明:
【问题】Docker 容器内的应用(如n8n),访问不到外部主机的应用(如mysql)_docker容器内部访问不到宿主机上的服务-CSDN博客
所以,最终我们要用的url地址为,保存备用:
http://host.docker.internal:8931/mcp
2、n8n添加社区节点类型
🐯社区节点这种类型的n8n节点,需要安装一次,以后就可以在工作流中使用这种类型的节点了。
进入n8n工作空间,点击“设置”:
进入设置界面:
添加社区节点:n8n-nodes-mcp(大小写敏感)
点击“安装”,安装后显示如下:
3、创建凭证
填入前边mcp服务器的url,保存即可
万事俱备,开始整工作流。。。
4、创建测试工作流
创建一个类似的工作流:
通过chat触发节点,提出要求,比如:
在百度查询“n8n常用的社区节点工具”,然后根据查询结果,总结:
1、有哪些工具
2、工具的说明和简要的使用信息
3、能标注信息出处,就更好了。
(1)Agent设置
Prompt (User Message)提示词:
根据用户要求,如果需要自动识别调用mcp工具,完成相关任务:
{{ $json.chatInput }}
根据你的经验,自动完善用户需求缺失的信息,给出总结信息的来源,提高总结的可用度。
System Message提示词:
1.分析用户需求
2.结合可用的MCP工具(MCPToolsList节点提供),制定完成用户需求的可执行方案,确定实现步骤,及每一个步骤所使用的具体mcp工具(如果需要的话)
3、如果需要,调用具体的mcp工具(MCPRun节点),完成用户要求的任务。
(2)绑定一个大模型
(3)社区节点(1)
选择上面创建的凭证帐号,如果前边没创建,在这里创建也是一样的:
帐号内容:
⚠️这里特别说明一下:目前只测通了HTTP Streamable的方式。
配置好,测试一下,会返回playwright-mcp中提供的所有方法:
(4)社区节点(2)
操作:执行工具,
tool Name:让大模型提供
{{ $fromAI('toolname')}}
tool parameters:
我当前版本Version 1.105.2,已经支持系统提供自动代码了,就是下面这个星星按钮:
5、工作流测试
我当前版本Version 1.105.2,已经支持执行过程跟踪啦
获得playwright-mcp的方法列表,并且列出了调用的具体方法:
调用了playwright-mcp的打开浏览器的方法,读取了浏览器信息:
但是,我观察的,大模型不断打开浏览器,访问百度,然后就关掉了,然后再打开,没有进一步在百度中搜索相关内容,最终,大模型直接自己给出了结果🥲:
📚结束语
总的来说,通过n8n调用playwright-mcp成功了,但还有很多细节需要打磨,比如为什么只打开了浏览器,没有进一步交互的问题。
要不然就再换个工具试试,哇哈哈🥲
📚附录
MCP Client Tool node和n8n-nodes-mcp-client(n8n社区节点)的区别
1. 开发与维护主体不同
-
MCP Client Tool node(假设为官方或特定团队开发的节点):
通常由 n8n 官方团队或与 MCP 服务(如某类设备管理、数据采集平台)直接相关的团队开发维护,属于 “官方或认证节点”。其开发目标更贴合 n8n 的核心生态,与 MCP 服务的集成逻辑经过官方验证。 -
n8n-nodes-mcp-client(社区节点):
是由 n8n 社区开发者(第三方)贡献的节点,属于 “社区维护节点”。开发动机可能是为了满足特定场景下的 MCP 服务集成需求,其代码托管在社区仓库(如 GitHub),维护依赖于开发者的个人或团队积极性。
2. 功能范围与适配性不同
-
官方 / 认证节点(如 MCP Client Tool node):
功能通常更基础、通用,聚焦于 MCP 服务的核心能力(如连接认证、基础数据交互、标准 API 调用等),适配性更广泛,能满足大多数通用场景。
例如:可能仅支持 MCP 服务的标准接口,确保稳定性和兼容性。 -
社区节点(n8n-nodes-mcp-client):
功能可能更具针对性,可能包含官方节点未覆盖的定制化功能(如特定业务逻辑的封装、非标准 API 的适配、特殊数据格式的处理等),更适合特定场景。
例如:可能针对某款 MCP 设备的私有协议进行了适配,或集成了更复杂的批量操作功能。