StarUML控制器MCP服务器——序列图
MCP(模型上下文协议)服务器,专门用于 序列图。使像Claude这样的AI助手能够以编程方式创建和管理序列图 例图 --交互、生命线、消息、组合片段、操作数、状态不变量和交互用途。
AI analyzing source code and generating a sequence diagram through MCP tools
建筑
先决条件
- Node.js 18+
- 例图 随着 staruml控制器 扩展已安装并正在运行
设置
1.克隆并构建核心包
git clone https://github.com/pontasan/staruml-controller-mcp-core.git
cd staruml-controller-mcp-core
npm install && npm run build
cd ..2.克隆并构建此软件包
git clone https://github.com/pontasan/staruml-controller-seq-mcp.git
cd staruml-controller-seq-mcp
npm install && npm run build3.启动StarUML控制器服务器
- 发射 例图 打开一个项目(或创建一个新项目)
- 从菜单栏中,选择 工具>StarUML控制器>启动服务器。..
Start Server" width="700">
- 输入端口(默认值:
12345)然后单击 好的
- HTTP服务器启动——所有序列图工具都可以通过MCP使用
4.配置您的AI助手
克劳德代码 --添加到您的项目 .mcp.json:
{
"mcpServers": {
"staruml-seq": {
"command": "node",
"args": ["/absolute/path/to/staruml-controller-seq-mcp/dist/index.js"]
}
}
}或者通过CLI:
claude mcp add staruml-seq node /absolute/path/to/staruml-controller-seq-mcp/dist/index.js克劳德桌面 --添加到您的配置文件中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"staruml-seq": {
"command": "node",
"args": ["/absolute/path/to/staruml-controller-seq-mcp/dist/index.js"]
}
}
}- 重启你的AI助手。
可用工具
所有工具均接受可选 host (默认值: localhost)以及 port (默认值: 12345)参数。
序列图工具
该服务器的核心是对每个序列图资源进行完整的CRUD操作。
| 资源 | 工具 |
|---|---|
| 交互 | seq_list_interactions, seq_create_interaction, seq_get_interaction, seq_update_interaction, seq_delete_interaction |
| 图表 | seq_list_diagrams, seq_create_diagram, seq_get_diagram, seq_update_diagram, seq_delete_diagram |
| 生命线 | seq_list_lifelines, seq_create_lifeline, seq_get_lifeline, seq_update_lifeline, seq_delete_lifeline |
| 消息 | seq_list_messages, seq_create_message, seq_get_message, seq_update_message, seq_delete_message |
| 组合碎片 | seq_list_combined_fragments, seq_create_combined_fragment, seq_get_combined_fragment, seq_update_combined_fragment, seq_delete_combined_fragment |
| 操作数 | seq_list_operands, seq_create_operand, seq_get_operand, seq_update_operand, seq_delete_operand |
| 状态不变量 | seq_list_state_invariants, seq_create_state_invariant, seq_get_state_invariant, seq_update_state_invariant, seq_delete_state_invariant |
| 交互用途 | seq_list_interaction_uses, seq_create_interaction_use, seq_get_interaction_use, seq_update_interaction_use, seq_delete_interaction_use |
通用工具
所有StarUML控制器MCP服务器上都有共享的基础设施工具。
General — status, elements, tags, project I/O
| 工具 | 说明 |
|---|---|
get_status | 获取服务器状态、版本和端点列表 |
get_element | 按ID获取任何元素 |
list_element_tags | 列出元素上的标签 |
create_element_tag | 在元素上创建标记 |
get_tag | 获取标签详细信息 |
update_tag | 更新标签 |
delete_tag | 删除标签 |
save_project | 将项目保存到.mdj文件 |
open_project | 打开.mdj项目文件 |
Project — new, close, import, export
| 工具 | 说明 |
|---|---|
project_new | 创建新的空项目 |
project_close | 关闭当前项目 |
project_import | 将.mdj片段导入项目 |
project_export | 将模型片段导出到.mdj文件 |
project_export_all | 将所有图表导出为图像(PNG/SVG/JPEG/PDF) |
project_export_doc | 导出项目文档(HTML/Markdown) |
Utility — undo, redo, search, validate, mermaid, generate
| 工具 | 说明 |
|---|---|
undo | 撤消上一个操作 |
redo | 重做上次未执行的操作 |
search | 使用可选类型筛选器按关键字搜索元素 |
validate | 运行模型验证 |
mermaid_import | 导入Mermaid图定义 |
generate_diagram | 从自然语言生成图表(需要AI扩展) |
Diagrams — CRUD, export, layout, zoom
| 工具 | 说明 |
|---|---|
diagram_list | 列出所有图表(可选按类型筛选) |
diagram_create | 创建任何类型的新图表 |
diagram_get | 按ID获取图表详细信息 |
diagram_update | 更新图表名称 |
diagram_delete | 删除图表 |
diagram_list_elements | 列出图表上的所有元素 |
diagram_list_views | 列出图表上的所有视图 |
diagram_create_element | 在图表上创建节点元素 |
diagram_create_relation | 在元素之间创建关系 |
diagram_export | 将图表导出为图像(PNG/SVG/JPEG/PDF) |
diagram_layout | 具有可配置方向的自动布局图 |
diagram_open | 在编辑器中打开/激活图表 |
diagram_zoom | 设置图表缩放级别 |
diagram_create_view_of | 在图表上创建现有模型的视图 |
diagram_link_object | 在对象关系图上创建UMLLinkObject |
Notes & Shapes — notes, note links, free lines, shapes
| 工具 | 说明 |
|---|---|
note_list | 列出图表上的所有注释 |
note_create | 创建带有文本和位置的注释 |
note_get | 获取笔记详细信息 |
note_update | 更新注释文本 |
note_delete | 删除注释 |
note_link_list | 在图表上列出所有注释链接 |
note_link_create | 在注释和元素之间创建链接 |
note_link_delete | 删除笔记链接 |
free_line_list | 列出图表上的所有自由线 |
free_line_create | 在图表上创建一条自由线 |
free_line_delete | 删除空白行 |
shape_list | 在图表上列出所有形状 |
shape_create | 创建形状(文本、文本框、矩形、圆角矩形、椭圆、超链接、图像) |
shape_get | 获取形状详细信息 |
shape_update | 更新形状文本 |
shape_delete | 删除形状 |
Views & Elements — positioning, styling, element management
| 工具 | 说明 |
|---|---|
view_update | 移动/调整视图大小(左、上、宽、高) |
view_update_style | 更新视觉样式(fillColor、lineColor、fontColor、fontSize等) |
view_reconnect | 将边缘重新连接到不同的源/目标 |
view_align | 对齐/分布多个视图 |
element_update | 更新任何元素的名称和文档 |
element_delete | 按ID删除任何元素 |
element_list_relationships | 列出元素的所有关系 |
element_list_views | 在图表中列出元素的所有视图 |
element_relocate | 将元素移动到其他父级 |
element_create_child | 创建子元素(属性、操作等) |
element_reorder | 在父级内重新排序元素(向上/向下) |
典型工作流程
1. seq_create_interaction → Create an interaction container
2. seq_create_diagram → Create a sequence diagram
3. seq_create_lifeline (x N) → Add participants (lifelines)
4. seq_create_message (x N) → Draw messages between lifelines
5. seq_create_combined_fragment → Add alt/loop/opt fragments
6. seq_create_operand → Add condition branches
7. diagram_export → Export as PNG/SVG消息类型
这 seq_create_message 该工具支持多种消息排序:
| messageSort | 箭头样式 | 用例 |
|---|---|---|
synchCall | 实心箭头 | 同步方法调用(默认) |
reply | 虚线箭头 | 返回值 |
asynchCall | 打开箭头 | 异步调用 |
asynchSignal | 开放箭头 | 异步信号 |
createMessage | 用空心箭头划线 | 对象创建 |
deleteMessage | 带X的实体 | 对象销毁 |
组合片段类型
这 seq_create_combined_fragment 工具支持:
| interaction操作符 | 描述 |
|---|---|
alt | If/else分支 |
opt | 可选执行 |
loop | 重复执行 |
par | 并行执行 |
break | 打破封闭的互动 |
critical | 关键区域 |
neg | 无效跟踪 |
assert | 断言 |
strict | 严格订购 |
seq | 弱排序 |
ignore | 忽略消息 |
consider | 考虑消息 |
相关项目
此服务器是 StarUML控制器MCP 家庭:
| 服务器 | 图表类型 |
|---|---|
| staruml控制器erd-mcp | 实体关系图 |
| staruml控制器seq-mcp | 序列图 |
| staruml控制器类mcp | 类/包图 |
| staruml控制器用例mcp | 用例图 |
| staruml控制器活动mcp | 活动图 |
| staruml控制器bpmn-mcp | bpmn图 |
| staruml控制器sysml-mcp | sysml图 |
| 还有18个。.. |
所有服务器共享通用工具,并在顶部添加特定于图表的工具。只安装你需要的东西。
许可证
麻省理工学院
