Lucid图表集成服务器

Lucid MCP Server是一个用于Lucid图表集成的服务器,支持将Lucid图表导出为图像供视觉客户端解释,并根据Lucid标准导入JSON创建新图表。

  • by smartzan63
  • TypeScript
  • 本地部署
  • 19 星标
  • 更新于
在 GitHub 查看 smartzan63/lucid-mcp-server

使用说明

Lucid MCP服务器

Lucid App集成的模型上下文协议(MCP)服务器。将Lucid图表导出为图像,以便具有视觉能力的客户端可以解释它们,并从Lucid Standard Import JSON创建新的图表。

目录

特征

  • 🔍 文档发现 以及从LucidChart、LucidSpark和LucidScale检索元数据
  • 📑 轻量级选项卡元数据 用于快速查看文档结构
  • 🖼️ PNG图像导出 来自Lucid图表,作为图像内容块返回,供具有视觉能力的客户端解释
  • ✏️ 图表创建 来自Lucid标准导入JSON(流程图、组织结构图、UML、BPMN、云架构),带有辅助布局
  • 🗑️ 文档删除 (移至垃圾箱)
  • 📝 TypeScript实现 具有完整的测试覆盖范围
  • 🔧 MCP检查器集成 便于测试

运作原理

服务器是Lucid REST API的一座瘦桥。确实如此 不 运行自己的LLM:

  • search-documents 和 get-document-tabs 从Lucid API返回JSON元数据。
  • get-document 随着 analyzeImage: true 将请求的页面导出为PNG,并将其作为MCP返回 image 内容块。
  • create-diagram 将您提供的Lucid标准导入JSON打包成 .lucid 归档并通过Lucid API创建新文档。
  • delete-diagram 将文档移至回收站。

图表解释完全委托给已经驱动MCP客户端的模型。这使服务器不受任何人工智能提供者的依赖,并重用运行会话的模型(通常功能更强大),而不是单独配置的第二个模型。同样,标准导入JSON create-diagram 由您的会话模型编写,因此服务器不需要自己的图生成逻辑。

创建和删除文档需要具有文档编辑(写入)范围的Lucid API密钥。只读密钥仍然可以搜索、读取和导出。Lucid REST API中没有就地内容编辑:要更改关系图,请创建一个新关系图(可以选择删除旧关系图)。导出的JSON格式和标准导入格式不可互换,因此没有下载-编辑-重新上传的往返。

早期版本(≤0.1.x)提供了一个内置的图像分析后端(Azure OpenAI/OpenAI),该后端返回文本描述。现代MCP客户端将图像内容直接转发给具有视觉能力的模型,使第二个模型变得多余,因此将其删除。这 analyzeImage 保留参数名称以保持兼容性;它现在只需切换PNG导出。

客户端和模型兼容性

因为服务器返回原始图像 主动会话模型必须具有视觉能力.客户行为:

客户端 MCP镜像支持 备注
克劳德代码 是 克劳德是多式联运;开箱即用。
Codex CLI 是(当前版本) 由于Rust MCP客户端成为默认客户端,MCP工具的图像结果到达模型。显示的旧版本 <image content> 模型看不见。
OpenCode 是的,使用视觉模型 将MCP图像块转发到模型。选择一个具有视觉功能的模型(例如GPT-5.x、GPT-4o)。非视觉模型或选择一个模型的模型路由器将报告它看不到图像。

通过导出真实的架构图并确认模型仅从图像中描述了其方框和连接来验证:

  • 克劳德码(多模态克劳德模型)
  • 运行GPT-5.5的OpenCode

如果 get-document 返回一个图像,但模型回复说它看不到它,将您的会话切换到具有视觉功能的模型。

先决条件

在开始之前,请确保您拥有以下内容:

  • Node.js:版本22或更高版本。
  • Lucid API密钥:钥匙来自 Lucid开发者门户 是 必需的 对于所有功能。使用只读密钥读取和导出工作;创建和删除文档需要一个具有文档编辑(写入)范围的键。
  • 有远见的客户:要解释导出的图表图像,请使用由视觉模型支持的MCP客户端。服务器本身不分析图像;它返回原始PNG。

安装

lucid-mcp-server 是一个stdio MCP服务器,可与任何支持MCP的客户端(Claude Code、Claude Desktop、Cursor、Codex、OpenCode等)配合使用。每个客户端都有自己的配置文件和格式,因此没有一组单独的步骤。最快的方法是让你的编码代理“按照其README添加清晰的mcp服务器mcp服务器”,并让它为你的特定客户端编写配置。

无论客户是谁,你只需要两件事:

  • 运行服务器的方法: npx -y lucid-mcp-server (无需安装),或使用 npm install -g lucid-mcp-server 然后跑 lucid-mcp-server.
  • 这 LUCID_API_KEY 环境变量:唯一必需的设置。从 Lucid开发者门户.

示例:克劳德代码

将此添加到您的 .mcp.json:

{
  "mcpServers": {
    "lucid": {
      "command": "npx",
      "args": ["-y", "lucid-mcp-server"],
      "env": {
        "LUCID_API_KEY": "your-lucid-api-key"
      }
    }
  }
}

Windows:npm的 .cmd 垫片可能不会直接生成。把它包起来 "command": "cmd", "args": ["/c", "npx", "-y", "lucid-mcp-server"].

其他客户端使用相同的三个部分,即启动命令、其参数和 LUCID_API_KEY env-var,以自己的配置格式表示。将您的代理指向上面的示例,它将进行调整。

验证(可选)

在MCP检查器下运行服务器,确认其已启动并列出其工具(设置 LUCID_API_KEY 首先在您的环境中):

npx @modelcontextprotocol/inspector npx -y lucid-mcp-server

用法

服务器运行后,您可以使用自然语言或直接调用其工具与之交互。

示例提示

  • 文档命令:

    • “显示我所有的Lucid文件”
    • “获取ID为[文档ID]的文档信息”
  • 图表解读 (客户的视觉模型读取导出的图像):

    • “分析此图:[文档id]”
    • “此Lucid图显示了什么:[文档id]”

可用工具

🔍 search-documents

列出Lucid帐户中的文档。

  • 参数:
    • keywords (字符串,可选):搜索关键字以筛选文档。
  • 例子:
    {
      "keywords": "architecture diagram"
    }
    

📋 get-document

获取文档元数据,并可以选择将图表导出为PNG图像,以便具有视觉能力的客户端进行解释。

  • 参数:
    • documentId (string):Lucid URL中的文档ID。
    • analyzeImage (布尔值,可选):设置为 true 将图表导出为PNG图像(默认值: false,仅返回元数据)。
    • pageId (字符串,可选):要导出的特定页面(默认值:“0_0”)。
  • 例子:
    {
      "documentId": "demo-document-id-here-12345678/edit",
      "analyzeImage": true
    }
    

📑 get-document-tabs

获取Lucid文档中所有选项卡(页面)的轻量级元数据,而不检索完整内容。

  • 参数:
    • documentId (string):Lucid URL中的文档ID。
  • 退货: 带有页面元数据(id、标题、索引)的文档信息,用于快速导航和概述。
  • 例子:
    {
      "documentId": "demo-document-id-here-12345678/edit"
    }
    

✏️ create-diagram

从Lucid标准导入JSON创建新的Lucid文档。需要具有编辑(写入)作用域的API密钥。会话模型编写了描述页面、形状和线条的JSON;该工具将其打包成 .lucid 归档并创建文档,返回编辑URL。

  • 参数:
    • title (string):新文档的标题。
    • standardImportJson (string):标准导入 document.json 内容。参数描述嵌入了一个紧凑的创作指南(形状类型、线条端点、辅助布局)。
    • product (字符串,可选): lucidchart (默认)或 lucidspark.
    • parent (数字,可选):用于创建文档的Lucid文件夹ID。
  • 例子:
    {
      "title": "Login flow",
      "standardImportJson": "{\"version\":1,\"pages\":[{\"id\":\"p1\",\"shapes\":[{\"id\":\"s1\",\"type\":\"terminator\",\"boundingBox\":{\"x\":0,\"y\":0,\"w\":160,\"h\":60},\"text\":\"Start\"}]}]}"
    }
    

🗑️ delete-diagram

通过将Lucid文档移到回收站来删除它。需要具有编辑(写入)作用域的API密钥。这将删除整个文档;没有形状级别删除。

  • 参数:
    • documentId (string):要回收的文档的ID,来自Lucid URL。
  • 例子:
    {
      "documentId": "demo-document-id-here-12345678"
    }
    

🤝 贡献

  1. 分叉存储库。
  2. 创建功能分支(git checkout -b feature/amazing-feature).
  3. 提交您的更改(git commit -m 'Add amazing feature').
  4. 推到分支(git push origin feature/amazing-feature).
  5. 打开拉取请求。

📚 参考文献

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。