Excalidraw MCP服务器使用说明

项目简介

Excalidraw MCP服务器是一个基于Model Context Protocol (MCP) 构建的后端服务,它将流行的在线绘图工具 Excalidraw 的功能通过标准化的API暴露给大型语言模型 (LLM)。借助此服务器,LLM可以创建、修改、查询和操作Excalidraw图表,从而实现更丰富的交互式LLM应用,例如:

  • LLM驱动的图表生成和编辑: 让LLM根据用户指令直接生成或编辑Excalidraw图表。
  • 可视化信息呈现: 将LLM处理的数据或知识以图形化的方式呈现出来,例如流程图、思维导图等。
  • 增强型LLM工具: 为LLM提供更强大的绘图和可视化能力,扩展其应用场景。

主要功能点

  • 全面的Excalidraw元素控制: 支持创建、更新、删除和查询各种Excalidraw元素(矩形、椭圆、箭头、文本等)。
  • 高级元素操作: 提供分组、对齐、分布、锁定和解锁元素等高级操作,方便LLM进行复杂的图表编辑。
  • 资源管理: 允许LLM访问和修改场景信息、库、主题和元素等资源。
  • 易于集成: 可以与Claude Desktop、Cursor等支持MCP协议的LLM客户端轻松集成。
  • Docker支持: 提供Docker镜像,方便部署和管理。

安装步骤

NPM 安装 (推荐用于开发环境):

  1. 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node包管理器)。
  2. 下载仓库代码: 'git clone https://github.com/yctimlin/mcp_excalidraw.git'
  3. 进入项目目录: 'cd mcp_excalidraw'
  4. 安装依赖: 'npm install'

Docker 安装 (推荐用于生产环境):

  1. 安装 Docker: 确保你的系统已安装 Docker。
  2. 下载仓库代码: 'git clone https://github.com/yctimlin/mcp_excalidraw.git'
  3. 进入项目目录: 'cd mcp_excalidraw'
  4. 构建 Docker 镜像: 'docker build -t mcp/excalidraw .'

服务器配置

MCP服务器需要配置在支持MCP协议的客户端中,例如 Claude Desktop 或 Cursor。以下是配置信息示例,你需要根据你的实际使用环境进行配置。

Claude Desktop 配置示例:

打开 Claude Desktop 的配置文件 'claude_desktop_config.json',在 '"mcpServers"' 部分添加以下配置:

{
  "mcpServers": {
    "excalidraw": {
      "command": "node", // 启动命令,这里使用 Node.js 运行 JavaScript 文件
      "args": ["src/index.js"], // 启动参数,指定服务器入口文件
      "env": {
        "LOG_LEVEL": "info", // 日志级别,可选值:debug, info, warn, error
        "DEBUG": "false"    // 是否开启debug模式,true 或 false
      }
    }
  }
}

Cursor 配置示例:

在你的 Cursor 工作区根目录下创建 '.cursor/mcp.json' 文件,并添加以下配置:

{
  "mcpServers": {
    "excalidraw": {
      "command": "node", // 启动命令,这里使用 Node.js 运行 JavaScript 文件
      "args": ["/path/to/your/directory/mcp_excalidraw/src/index.js"], // 启动参数,需要替换为你的 mcp_excalidraw 项目的绝对路径
      "env": {
        "LOG_LEVEL": "info", // 日志级别,可选值:debug, info, warn, error
        "DEBUG": "false"    // 是否开启debug模式,true 或 false
      }
    }
  }
}

Docker 配置示例:

{
  "mcpServers": {
    "excalidraw": {
      "command": "docker", // 启动命令,使用 Docker 运行容器
      "args": ["run", "-i", "--rm", "mcp/excalidraw"], // 启动参数,运行名为 mcp/excalidraw 的 Docker 镜像
      "env": {
        "LOG_LEVEL": "info", // 日志级别,可选值:debug, info, warn, error
        "DEBUG": "false"    // 是否开启debug模式,true 或 false
      }
    }
  }
}

注意:

  • 你需要将 '/path/to/your/directory/mcp_excalidraw/src/index.js' 替换为你实际的项目 'src/index.js' 文件的绝对路径 (仅在 Cursor 配置中需要)。
  • 如果你使用 Docker 部署,请确保已经成功构建了 Docker 镜像 'mcp/excalidraw'。
  • 'LOG_LEVEL' 和 'DEBUG' 是可选的环境变量,可以根据需要进行配置。

基本使用方法

  1. 启动服务器:

    • NPM 方式: 在项目目录下运行 'npm start'。
    • Docker 方式: 确保 Docker 容器已运行 (配置客户端时会自动启动)。
  2. 在 MCP 客户端中使用:

    • 在支持 MCP 协议的 LLM 客户端 (如 Claude Desktop, Cursor) 中配置并启用 'excalidraw' MCP 服务器。
    • LLM 客户端可以通过调用服务器提供的 工具 (Tools) 来与 Excalidraw 服务器进行交互。

服务器提供的工具 (Tools) 示例:

  • 'create_element': 创建新的 Excalidraw 元素 (例如矩形、圆形等)。
  • 'update_element': 更新已存在的 Excalidraw 元素。
  • 'delete_element': 删除 Excalidraw 元素。
  • 'query_elements': 查询 Excalidraw 元素,可以根据类型或属性进行过滤。
  • 'get_resource': 获取 Excalidraw 资源,例如场景信息、主题等。
  • 'group_elements': 将多个元素组合成一个组。
  • 'ungroup_elements': 解散元素组。
  • 'align_elements': 对齐多个元素。
  • 'distribute_elements': 均匀分布多个元素。
  • 'lock_elements': 锁定元素,防止被修改。
  • 'unlock_elements': 解锁元素,允许修改。

具体工具的调用方式和参数需要参考 MCP 客户端的文档和工具的 'inputSchema' 定义。 通常,LLM 客户端会提供界面或指令,允许用户或 LLM 模型自身调用这些工具,并传递相应的参数。

总结

Excalidraw MCP 服务器为 LLM 应用提供了强大的绘图和可视化能力。通过简单的配置和标准化的 MCP 协议,开发者可以轻松地将 Excalidraw 的功能集成到各种 LLM 应用中,创造更具交互性和实用性的智能应用。

信息

分类

开发者工具