美人鱼 MCP 服务器
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。该服务器允许 AI 助手和其他应用程序使用 Mermaid Markdown 语法从文本描述生成可视化图表。
特征
- 将美人鱼图代码转换为 PNG 图像
- 支持多种图表主题(默认、森林、深色、中性)
- 可自定义的背景颜色
- 使用 Puppeteer 实现高质量无头浏览器渲染
- 实施 MCP 协议,实现与 AI 助手的无缝集成
- 灵活的输出选项:直接返回图像或保存到磁盘
- 带有详细错误消息的错误处理
工作原理
服务器使用 Puppeteer 启动无头浏览器,将美人鱼图渲染为 SVG,并截取渲染图的屏幕截图。该过程包括:
- 启动无头浏览器实例
- 使用 Mermaid 代码创建 HTML 模板
- 加载 Mermaid.js 库
- 将图表渲染为 SVG
- 将渲染后的 SVG 截图为 PNG
- 直接返回图像或将其保存到磁盘
建造
用法
与 Claude 桌面一起使用
与 Cursor 和 Cline 一起使用
您可以在./diagrams
下找到美人鱼图列表,它们是使用 Cursor 代理创建的,提示为:“生成美人鱼图并将其保存在单独的图表文件夹中,解释 renderMermaidPng 如何工作”
与检查器一起运行
使用检查器运行服务器进行测试和调试:
服务器将启动并在 stdio 上监听 MCP 协议消息。
在此处了解有关检查员的更多信息。
通过 Smithery 安装
要通过Smithery自动安装 Claude Desktop 的美人鱼图表生成器:
Docker 和 Smithery 环境
在 Docker 容器中运行时(包括通过 Smithery),您可能需要处理 Chrome 依赖项:
- 服务器现在默认尝试使用 Puppeteer 捆绑的浏览器
- 如果遇到与浏览器相关的错误,您有两种选择:选项 1:在 Docker 镜像构建期间:
- 安装 Puppeteer 时设置
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
- 在 Docker 容器中安装 Chrome/Chromium
- 在运行时设置
PUPPETEER_EXECUTABLE_PATH
以指向 Chrome 安装
选项 2:使用 Puppeteer 捆绑的 Chrome:
- 确保您的 Docker 容器具有 Chrome 所需的依赖项
- 无需设置
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD
- 代码将自动使用捆绑的浏览器
- 安装 Puppeteer 时设置
对于 Smithery 用户来说,最新版本无需额外配置即可使用。
API
服务器公开一个工具:
generate
:将美人鱼图代码转换为 PNG 图像- 参数:
code
:要渲染的美人鱼图代码theme
:(可选)图表主题。选项:“默认”、“森林”、“深色”、“中性”backgroundColor
:(可选)图表的背景颜色,例如“白色”、“透明”、“#F0F0F0”name
:生成的文件的名称(CONTENT_IMAGE_SUPPORTED=false 时必需)folder
:保存图像的绝对路径(CONTENT_IMAGE_SUPPORTED=false 时必需)
- 参数:
generate
工具的行为取决于CONTENT_IMAGE_SUPPORTED
环境变量:
- 当
CONTENT_IMAGE_SUPPORTED=true
(默认)时:工具直接在响应中返回图像 - 当
CONTENT_IMAGE_SUPPORTED=false
时:工具将图片保存到指定文件夹,并返回文件路径
环境变量
CONTENT_IMAGE_SUPPORTED
:控制图像是否直接在响应中返回或保存到磁盘true
(默认值):图像直接在响应中返回false
:图像保存到磁盘,需要name
和folder
参数
示例
基本用法
带有主题和背景颜色
保存到磁盘(当 CONTENT_IMAGE_SUPPORTED=false 时)
常问问题
Claude 桌面不是已经通过画布支持美人鱼了吗?
是的,但它不支持theme
和backgroundColor
选项。另外,拥有专用服务器可以更轻松地使用不同的 MCP 客户端创建美人鱼图表。
为什么在使用 Cursor 时需要指定 CONTENT_IMAGE_SUPPORTED=false?
Cursor 尚不支持响应中的内联图像。
出版
该项目使用 GitHub Actions 来自动化 npm 发布过程。
方法一:使用发布脚本(推荐)
- 确保所有更改都已提交并推送
- 使用特定版本号或语义版本增量运行发布脚本:
- 该脚本将:
- 验证版本格式或语义增量
- 检查你是否在主分支上
- 检测并警告文件之间的版本不匹配
- 一致更新所有版本引用(package.json、package-lock.json 和 index.ts)
- 创建包含所有版本更改的单个提交
- 创建并推送 git 标签
- GitHub 工作流程将自动构建并发布到 npm
方法二:手动处理
- 更新代码并提交更改
- 创建并推送带有版本号的新标签:
- GitHub 工作流程将自动:
- 构建项目
- 使用标签中的版本发布到 npm
注意:您需要在 GitHub 仓库设置中设置NPM_TOKEN
密钥。操作步骤如下:
- 生成具有发布权限的 npm 访问令牌
- 转到你的 GitHub 存储库 → 设置 → 机密和变量 → 操作
- 创建一个名为
NPM_TOKEN
的新存储库机密,并使用您的 npm 令牌作为值
徽章
执照
麻省理工学院
Related MCP Servers
- AsecurityAlicenseAqualityModel Context Protocol server for fetching web content and processing images. This allows Claude Desktop (or any MCP client) to fetch web content and handle images appropriately.Last updated -127815JavaScriptMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that converts PDF documents into PNG images through a simple MCP tool call.Last updated -12Python
- AsecurityAlicenseAqualityA Model Context Protocol server that validates and renders Mermaid diagrams.Last updated -14011JavaScriptMIT License
- -securityAlicense-qualityA Model Context Protocol (MCP) server that enables Claude or other LLMs to fetch content from URLs, supporting HTML, JSON, text, and images with configurable request parameters.Last updated -PythonMIT License