UNPKG

@pickstar-2002/mermaid-chart-mcp

Version:

🎨 A Model Context Protocol (MCP) server for rendering Mermaid charts to high-quality images

271 lines (205 loc) 8.74 kB
# 🎨 Mermaid Chart MCP [![npm version](https://badge.fury.io/js/@pickstar-2002%2Fmermaid-chart-mcp.svg)](https://badge.fury.io/js/@pickstar-2002%2Fmermaid-chart-mcp) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Node.js Version](https://img.shields.io/node/v/@pickstar-2002/mermaid-chart-mcp)](https://nodejs.org/) [![Downloads](https://img.shields.io/npm/dm/@pickstar-2002/mermaid-chart-mcp)](https://www.npmjs.com/package/@pickstar-2002/mermaid-chart-mcp) [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white)](https://www.typescriptlang.org/) > 🚀 一个强大的模型上下文协议 (MCP) 服务器,可将 Mermaid 图表渲染为高质量图像,与 AI 无缝集成。 ## 📖 简介 Mermaid Chart MCP 是一个专为 AI 交互设计的模型上下文协议服务器,它能够将 Mermaid 代码实时渲染为高质量的图像文件。通过与 Claude Desktop 等 AI 客户端的深度集成,您可以轻松地在对话中生成各种类型的图表和流程图。 ## ✨ 功能特性 - 🎯 **AI 优先设计**:与 Claude Desktop 和其他 MCP 客户端无缝集成 - 🖼️ **多种格式**:支持导出为 PNG、SVG 和 PDF 高质量格式 - 🎨 **丰富主题**:支持默认、深色、森林和中性四种主题风格 - 📊 **全面图表**:流程图、序列图、甘特图、类图、状态图等多种图表类型 -**高性能**:使用 Puppeteer 和 Sharp 优化渲染引擎 - 🔧 **零配置**:开箱即用,包含所有必要依赖项 - 🛡️ **类型安全**:使用 TypeScript 构建,确保代码可靠性 - ☁️ **云存储**:可选 MinIO 云存储支持,生成可分享的在线链接 - 🎛️ **灵活配置**:自定义尺寸、颜色、主题等多种渲染选项 ## 📦 安装 ### 🏆 推荐安装(使用 @latest 标签) ```bash npm install -g @pickstar-2002/mermaid-chart-mcp@latest ``` ### 开发环境安装 ```bash npm install @pickstar-2002/mermaid-chart-mcp@latest ``` ## 🚀 快速开始 ### 💻 Claude Desktop 配置 将以下配置添加到 Claude Desktop 配置文件中: **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` **Linux**: `~/.config/claude/claude_desktop_config.json` ```json { "mcpServers": { "mermaid-chart": { "command": "npx", "args": ["@pickstar-2002/mermaid-chart-mcp@latest"] } } } ``` ### 🔧 其他 IDE 配置 #### Cursor IDE ```json { "mcpServers": { "mermaid-chart": { "command": "npx", "args": ["@pickstar-2002/mermaid-chart-mcp@latest"] } } } ``` #### WindSurf IDE ```json { "mcpServers": { "mermaid-chart": { "command": "npx", "args": ["@pickstar-2002/mermaid-chart-mcp@latest"] } } } ``` ## 📖 用法说明 配置完成后,您可以在 AI 对话中直接使用此工具生成图表。以下是一些使用示例: ### 🔰 基础示例 "请帮我生成一个简单的流程图,显示用户注册的过程" AI 将自动调用工具: ```json { "mermaidCode": "graph TD\n A[用户访问] --> B[填写信息]\n B --> C[提交表单]\n C --> D[验证信息]\n D --> E[注册成功]", "outputPath": "./user-registration.png" } ``` ### 🎨 高级配置示例 "创建一个深色主题的序列图,展示 API 调用过程,输出为 SVG 格式" ```json { "mermaidCode": "sequenceDiagram\n participant 客户端\n participant API\n participant 数据库\n 客户端->>API: 发送请求\n API->>数据库: 查询数据\n 数据库-->>API: 返回结果\n API-->>客户端: 响应数据", "outputPath": "./api-sequence.svg", "format": "svg", "theme": "dark", "width": 1400, "height": 1000 } ``` ## 🛠️ API 参考 ### `render_mermaid_chart` 将 Mermaid 代码渲染为高质量图像。 #### 📋 参数 | 参数 | 类型 | 必需 | 默认值 | 描述 | |------|------|------|--------|------| | `mermaidCode` | string | ✅ | - | Mermaid 图表代码 | | `outputPath` | string | ✅ | - | 输出文件路径(含扩展名) | | `format` | string | ❌ | `"png"` | 输出格式:`png``svg``pdf` | | `width` | number | ❌ | `1200` | 图像宽度(像素) | | `height` | number | ❌ | `800` | 图像高度(像素) | | `theme` | string | ❌ | `"default"` | 主题:`default``dark``forest``neutral` | | `backgroundColor` | string | ❌ | `"white"` | 背景颜色 | | `uploadToMinio` | boolean | ❌ | `false` | 是否上传到 MinIO 并返回链接 | | `minioExpiryDays` | number | ❌ | `7` | MinIO 文件有效期(1-30天) | ## 📊 支持的图表类型 | 类型 | 描述 | 使用场景 | |------|------|----------| | 📈 **流程图** | 流程和决策树 | 业务流程、算法描述 | | 🔄 **序列图** | 系统交互时序 | API 调用、用户工作流 | | 📅 **甘特图** | 项目时间线和进度 | 项目规划、里程碑管理 | | 🏗️ **类图** | 面向对象设计 | 软件架构、数据模型 | | 📊 **饼图** | 数据比例展示 | 统计分析、占比展示 | | 🔀 **状态图** | 状态转换 | UI 状态、工作流状态 | | 🗺️ **用户旅程图** | 用户体验映射 | UX 设计、客户流程 | | 🧠 **思维导图** | 思维结构化 | 头脑风暴、知识整理 | | ⏰ **时间线** | 事件时序 | 历史记录、项目进展 | | 🌐 **Git 图** | 代码分支管理 | 版本控制、分支策略 | ## 🔧 开发 ### 本地开发设置 ```bash # 克隆仓库 git clone https://github.com/pickstar-2002/mermaid-chart-mcp.git cd mermaid-chart-mcp # 安装依赖 npm install # 构建项目 npm run build # 启动开发模式 npm run dev ``` ### 📁 项目结构 ``` mermaid-chart-mcp/ ├── src/ │ ├── index.ts # MCP 服务器主入口 │ ├── renderer.ts # Mermaid 渲染引擎 │ └── minio-uploader.ts # MinIO 云存储上传器 ├── dist/ # 编译后的 JavaScript 文件 ├── bin/ # 可执行脚本 ├── package.json # 项目配置 ├── tsconfig.json # TypeScript 配置 └── README.md # 项目文档 ``` ### 🔨 可用脚本 ```bash # 开发模式(监听文件变化) npm run dev # 构建生产版本 npm run build # 启动 MCP 服务器 npm start # 代码质量检查 npm run lint # 修复代码格式问题 npm run lint:fix ``` ## 🐛 故障排除 ### 常见问题解决 #### Puppeteer 下载问题 ```bash # 使用国内镜像 npm config set puppeteer_download_host=https://npm.taobao.org/mirrors npm install ``` #### 权限错误 - 确保输出目录具有写入权限 - Windows 用户:以管理员身份运行命令提示符 - Linux/macOS:使用 `chmod` 调整目录权限 #### 内存不足 ```bash # 增加 Node.js 内存限制 node --max-old-space-size=4096 node_modules/@pickstar-2002/mermaid-chart-mcp/dist/index.js ``` #### 中文字体显示问题 - **Windows**: 通常无需额外配置 - **macOS**: 确保安装了中文字体 - **Linux**: 安装中文字体包 ```bash sudo apt-get install fonts-wqy-zenhei fonts-wqy-microhei ``` ## 🤝 贡献 我们欢迎所有形式的贡献!🎉 ### 如何贡献 1. 🍴 Fork 本仓库 2. 🌟 创建功能分支 (`git checkout -b feature/amazing-feature`) 3. 💻 提交您的更改 (`git commit -m 'Add amazing feature'`) 4. 📤 推送到分支 (`git push origin feature/amazing-feature`) 5. 🔃 创建 Pull Request ### 贡献指南 - 📝 遵循现有的代码风格和约定 - ✅ 添加适当的测试用例 - 📚 更新相关文档 - 🧪 确保所有测试通过 - 🔍 使用有意义的提交信息 ## 📄 许可证 本项目基于 [MIT 许可证](LICENSE) 开源 - 查看 LICENSE 文件了解详情。 ## 🙋‍♂️ 支持与联系 - 🐛 **问题反馈**: [GitHub Issues](https://github.com/pickstar-2002/mermaid-chart-mcp/issues) - 💬 **讨论交流**: [GitHub Discussions](https://github.com/pickstar-2002/mermaid-chart-mcp/discussions) - 🌐 **项目仓库**: [GitHub](https://github.com/pickstar-2002/mermaid-chart-mcp) - 📦 **NPM 包**: [@pickstar-2002/mermaid-chart-mcp](https://www.npmjs.com/package/@pickstar-2002/mermaid-chart-mcp) - 💬 **微信**: pickstar_loveXX --- ⭐ 如果这个项目对您有帮助,请给个 Star 支持一下!