流程图生成服务

Chhart MCP Server是一个支持AI助手通过代码生成流程图和桑基图的服务器,适用于开发者和数据分析师。

  • by alwank
  • TypeScript
  • 混合部署
  • 3 星标
  • 更新于
在 GitHub 查看 alwank/chhart_MCP

使用说明

Chhart MCP服务器

MCP(模型上下文协议)服务器,使ChatGPT、Claude等人工智能助手能够在 chhart应用程序.

目录

特性

  • 🎨 创建流程图 -使用Chhart直观的基于文本的DSL生成流程图
  • 📊 创建Sankey图 -根据流量数据构建Sankey图
  • 📚 语法帮助 -获取全面的文档和示例
  • 🔗 可共享URL -所有图表都附带了可共享的chhart.app链接
  • 🚀 易于集成 -可与任何兼容MCP的AI助手配合使用
  • 🌐 双模式 -本地运行(stdio)或远程运行(StreamableHTTP)
  • ☁️ 云就绪 -部署到Railway、Vercel或任何Node.js宿主
  • 🔒 可靠的 -用于稳定连接的现代流式HTTP传输

先决条件

  • Node.js 20或以上
  • npm 或 纱线
  • MCP兼容客户端(Claude Desktop、Cursor等)

安装

来自npm

npm install -g chhart-mcp

或者直接运行而不安装:

npx chhart-mcp

来源

# Clone the repository
git clone https://github.com/alwank/chhart_MCP.git
cd chhart_MCP

# Install dependencies
npm install

# Build the project
npm run build

用法

快速入门(公共服务器)

您可以使用我们的托管MCP服务器,而无需在本地安装任何东西。

配置您的MCP客户端 要连接到公共终结点,请执行以下操作:

{
  "mcpServers": {
    "chhart": {
      "url": "https://mcp.chhart.app/mcp"
    }
  }
}

本地模式(stdio)

用于Claude Desktop、Cursor或其他本地MCP客户端:

  1. 构建项目:

    npm run build
    
  2. 添加到MCP客户端配置中:

    对于 克劳德桌面版,编辑 claude_desktop_config.json:

    {
      "mcpServers": {
        "chhart": {
          "command": "npx",
          "args": ["-y", "chhart-mcp"]
        }
      }
    }
    

    对于 光标 或其他客户,请参阅 CONFIG_EXAMPLES.md 更多示例。

  3. 重新启动MCP客户端

远程模式(流式HTTP)

对于部署到Railway、Vercel或其他云平台,我们使用现代 流式HTTP传输 用于可靠、无状态的通信。

  1. 构建并启动StreamableHTTP服务器:

    npm run build
    npm run start:streamable
    

    服务器将从端口3000(或中指定的端口)启动 PORT 环境变量)。

  2. 配置您的MCP客户端 要连接到远程端点,请执行以下操作:

    {
      "mcpServers": {
        "chhart": {
          "url": "https://your-deployment-url.com/mcp"
        }
      }
    }
    
  3. 部署到铁路:

    请参阅 铁路部署指南 详细说明。

为什么选择StreamableHTTP?

为了提高可靠性,我们从SSE迁移到StreamableHTTP传输:

功能 SSE传输 流式HTTP传输
连接类型 长期SSE流 无状态HTTP请求
稳定性 容易超时 ✅ 坚固可靠
云兼容性 有限 ✅ 太好了
会话管理 必需 可选(无状态)

传统SSE模式

SSE传输仍然可用,但已弃用:

npm run start:sse  # Not recommended for production

可用工具

create_flowchart

使用Chhart基于文本的DSL创建流程图。

参数:

  • content (字符串,必填)-Chhart DSL格式的流程图内容
  • title (字符串,可选)-流程图的标题

例子:

{
  "content": "Start\n  Process Step\n    Decision? [shape=diamond]\n      Yes\n        Action\n        End\n      No\n        Skip\n        End",
  "title": "Simple Workflow"
}

create_sankey

创建显示节点之间流的Sankey图。

参数:

  • content (字符串,必填)-Chhart DSL格式的Sankey图内容
  • title (字符串,可选)-图表的标题

例子:

{
  "content": "Revenue [value=100]\n  Costs [value=40]\n    Salaries [value=25]\n    Operations [value=15]\n  Profit [value=60]",
  "title": "Budget Flow"
}

get_syntax_help

返回Chhart语法的文档和示例。

参数:

  • type (枚举,可选)- 'flowchart', 'sankey',或 'all' (默认值: 'all')

对话示例

配置后,您可以询问您的AI助手:

“创建一个流程图,显示使用电子邮件验证的用户登录过程”

创建一个桑基图,显示100美元的收入如何分为成本、税收和利润

“显示在Chhart中创建流程图的语法”

发展

# Install dependencies
npm install

# Build
npm run build

# Watch mode (auto-rebuild on changes)
npm run watch

# Run locally (stdio mode)
npm start

# Run StreamableHTTP server (recommended for remote access)
npm run start:streamable

# Run SSE server (legacy, deprecated)
npm run start:sse

项目结构

chhart_MCP/
├── src/
│   ├── index.ts              # Main entry point (stdio mode)
│   ├── server-streamable.ts  # StreamableHTTP server (recommended)
│   ├── server-sse.ts         # SSE server (legacy)
│   ├── tools/                # MCP tool implementations
│   ├── utils/                # Utility functions
│   └── transports/           # Transport implementations
│       ├── streamable.ts     # StreamableHTTP transport
│       └── sse.ts            # SSE transport (legacy)
├── dist/                     # Compiled JavaScript (generated)
└── docs/                     # Documentation files

运作原理

MCP服务器利用chhart.app现有的基于URL的共享功能,通过将图表数据编码到URL哈希中来生成可共享的URL。这意味着:

  • ✅ 不需要后端API
  • ✅ 图表完全是客户端的
  • ✅ URL无需存储即可立即工作
  • ✅ 图表可以在chhart应用程序上编辑
  • ✅ 隐私友好(数据保留在URL中)

故障排除

“未找到命令”或“未找到模块”

  • 确保你已经跑过了 npm install 和 npm run build
  • 验证MCP客户端配置中的路径是否为绝对路径
  • 检查是否安装了Node.js 20+: node --version

连接问题

“连接已关闭:EOF”或类似错误:

  • 如果使用远程模式,请确保使用StreamableHTTP传输(npm run start:streamable)
  • 传统的SSE传输已弃用,可能存在稳定性问题
  • 验证服务器是否正在运行:检查以下位置的运行状况终结点 http://localhost:3000/health
  • 如果远程部署,请检查防火墙设置
  • 确保为您的域正确配置CORS

客户端配置:

  • 流式HTTP客户端使用 application/json 请求 /mcp
  • 传统SSE客户需要 text/event-stream 为了 /mcp 流和JSON /messages
  • 确保URL指向 /mcp 端点

图表未加载

  • 验证生成的URL是否完整且未被截断
  • 检查浏览器控制台是否有错误
  • 尝试直接在浏览器中打开URL
  • 非常大的图表可能超过URL长度限制(通常为2000个字符)

TypeScript构建错误

  • 确保你使用的是Node.js 20+
  • 删除 node_modules 和 dist,然后运行 npm install 和 npm run build
  • 检查TypeScript版本兼容性

有关更多帮助,请参阅 贡献.md 或者打开一个问题。

贡献

我们欢迎捐款!请看 贡献.md 关于以下方面的指导方针:

  • 报告错误
  • 推荐功能
  • 提交拉取请求
  • 开发设置
  • 编码标准

安全

有关安全问题,请参阅我们的 安全策略。不要公开安全漏洞问题。

许可证

MIT许可证-请参阅 许可证 了解详情。

版权所有(c)2026 Chhart.app

链接