心情澎湃的想搭建一个批量生成小红书笔记的工作流,结果理想很丰满现实很骨感。

想用n8n+md2card搭建一个根据选题自动生成小红书内容的工作流,但踩了很多坑,这算是一篇踩坑贴吧。

MD2CARD

md2card是一款Markdown文档转精美知识卡片的工具,可以提供多种风格。

左侧输入markdown格式的内容,右侧选择一个你喜欢的风格,就会自动转化为精美的知识卡片,这种对小红书图文笔记非常的友好。

图片

图片

我前期的思路比较简单,如果能加入n8n工作流里面,那岂不是可以批量制作了,于是开始搜索相关的mcp,还真找到了。

MCP

通常情况下MCP配置会有下面几种方式

🔄 SSE (Server-Sent Events)

**定义:**SSE是一种通信协议,用于服务器向客户端实时推送数据。

**特点:**单向通信:只能服务器向客户端发送 实时性:数据流式传输,低延迟 持久连接:保持长连接状态 自动重连:连接断开会自动重连

配置:

<span data-cacheurl="" data-remoteid="" data-lazy-bgimg="https://mmbiz.qpic.cn/mmbiz_svg/kiaXicXJs2M4dKWOu9ZDkkT8DzOzNEL14t7PrJ6loEic0IdSDID0iaticlsz8aLxxy9bNqQJ0IgzzVNZRD0zeuf6CDeqSGtHiamHibn/640?wx_fmt=svg&amp;from=appmsg" data-fail="0"></span><code><span leaf="">{</span><br><span leaf="">&nbsp;&nbsp;</span><span><span leaf="">"mcpServers"</span></span><span leaf="">: {</span><br><span leaf="">&nbsp; &nbsp;&nbsp;</span><span><span leaf="">"my_md2card"</span></span><span leaf="">: {</span><br><span leaf="">&nbsp; &nbsp; &nbsp;&nbsp;</span><span><span leaf="">"type"</span></span><span leaf="">:&nbsp;</span><span><span leaf="">"sse"</span></span><span leaf="">,</span><br><span leaf="">&nbsp; &nbsp; &nbsp;&nbsp;</span><span><span leaf="">"url"</span></span><span leaf="">:&nbsp;</span><span><span leaf="">"https://mcp.api-inference.modelscope.net/f7223df87e5643/sse"</span></span><br><span leaf="">&nbsp; &nbsp; }</span><br><span leaf="">&nbsp; }</span><br><span leaf="">}</span><br></code>

📦 npx/npm

**定义:**npm和npx是Node.js包管理工具,用于安装和运行JavaScript包。

**区别:**npm:包管理器,用于安装、管理依赖 npx:包执行器,用于运行包而不安装

图片

于是开始搭建工作流

搭建工作流

大致思路如下: 选题 → 大模型生成Markdown → md2card转换 → 知识卡片

图片

触发器:聊天触发器

AI节点:AI Agent节点

大模型:DeepSeek

Tool:MCP工具

前期不需要配置特别复杂的提示词,我们首先是跑通这个流程,然后后期再优化

SSE方式: 添加mcp节点之后,将上面sse的信息配置到下面的节点内,就完成了。

图片

然后就开始调试,随便开始一个选题,比如“如何避免紧张”,让大模型输出markdown格式的内容。

图片

但是总有问题,提示未配置环境变量MD2CARD_API_KEY

图片

这是个小众的需求,网上找不到直接的答案。我的虚拟机上面DOkcer部署的n8n,环境变量涉及到宿主机和容器,我就找如何在这个上面安装环境变量。

期间问了大模型,直接告诉我这个工具不支持SSE方式。

图片

又一顿操作之后,直到中间有次出现了这个页面,出来调用参数的页面了,说明通了

图片

当时高兴坏了,因为环境变量这个问题我研究了很久,但当我添加了这些必要的参数重新尝试的时候又出现了环境变量的问题,我感觉到应该是这个方式的MCP不太稳定。

API调用方式

于是换方法,这个工具开放了API接口,那我直接通过调用接口的形式试下。添加一个http节点

图片

配置根据API文档进行配置即可

图片

然后开始调试,紧接着出现了新问题。 markdown格式的内容中可能会出现各种符号,比如’‘‘三引号,会导致出现JSON参数无效的问题,因为JSON识别不了’‘‘这种符合。

所以就需要添加一个code节点,对大模型输出的markdown格式的内容进行处理,去除json无法识别的字符。左侧输入的三引号,经过code节点处理之后,右侧输出三引号没了。

图片

由于每次大模型跑出来的结果不一致,导致会出现各种字符。code节点的代码就调整了好几次,直到最后不再报无效json参数的问题,生成了PNG的图片,说明成功了。

图片

但是再次运行的时候出现了新问题:积分不足

图片

因为新用户只赠送10个积分,我调试的时候消耗完了。

图片

我又气又笑,我心气儿已经被耗没了,算了不搞了,md2card到此为止。

写在最后

虽然这次没达到预期结果,并且被环境变量折磨的够呛,但是收获了很多

  • MCP不是万能的,MCP不一定就是好用且稳定的,因为有很多是第三方开发的,随着技术迭代更新维护跟不上很正常。

  • JSON是灵魂,n8n中的数据流转方式都是通过JSON,一定要熟练应用。

  • 工作流重点在于流程的编排,使用下来的感受流程复杂流程可能会用到很多code节点

  • 方式有很多,不要在一种方式上面吊很久

如果你们有成功了的,一定来告诉我/(ㄒoㄒ)/~~!

如果觉得文章有帮助,感谢一键三连!

我打算建一个n8n交流群,一起交流经验,感兴趣的评论区留言“666”