staruml-controller-dfd-mcp

staruml-controller-dfd-mcp

An MCP server specialized for Data Flow Diagrams, enabling AI assistants to programmatically create and manage DFD elements like external entities, processes, data stores, and data flows in StarUML.

Category
访问服务器

README

StarUML Controller MCP Server — Data Flow Diagram (DFD)

An MCP (Model Context Protocol) server specialized for Data Flow Diagrams. Enables AI assistants like Claude to programmatically create and manage data flow diagrams — external entities, processes, data stores, and data flows in StarUML.

<p align="center"> <img src="images/main.jpg" alt="AI-generated Food Delivery System DFD in StarUML via MCP" width="800"> <br> <em>AI creating a complete Food Delivery System DFD through MCP tools</em> </p>

Architecture

<p align="center"> <img src="images/architecture.svg" alt="Architecture: Claude ↔ MCP (stdio) ↔ staruml-controller-dfd-mcp ↔ HTTP REST API ↔ StarUML" width="800"> </p>

Prerequisites

Setup

1. Clone and build the core package

git clone https://github.com/pontasan/staruml-controller-mcp-core.git
cd staruml-controller-mcp-core
npm install && npm run build
cd ..

2. Clone and build this package

git clone https://github.com/pontasan/staruml-controller-dfd-mcp.git
cd staruml-controller-dfd-mcp
npm install && npm run build

3. Start the StarUML Controller Server

  1. Launch StarUML and open a project (or create a new one)
  2. From the menu bar, select Tools > StarUML Controller > Start Server...
  3. Enter a port (default: 12345) and click OK
  4. The HTTP server starts — all Data Flow Diagram (DFD) tools become available via MCP

4. Configure your AI assistant

Claude Code — add to your project's .mcp.json:

{
  "mcpServers": {
    "staruml-dfd": {
      "command": "node",
      "args": ["/absolute/path/to/staruml-controller-dfd-mcp/dist/index.js"]
    }
  }
}

Or via CLI:

claude mcp add staruml-dfd node /absolute/path/to/staruml-controller-dfd-mcp/dist/index.js

Claude Desktop — add to your config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "staruml-dfd": {
      "command": "node",
      "args": ["/absolute/path/to/staruml-controller-dfd-mcp/dist/index.js"]
    }
  }
}
  1. Restart your AI assistant.

Available Tools

All tools accept optional host (default: localhost) and port (default: 12345) parameters.

Data Flow Diagram (DFD) Tools

The core of this server — full CRUD for every Data Flow Diagram (DFD) resource.

Resource Tools
Diagrams dfd_list_diagrams, dfd_create_diagram, dfd_get_diagram, dfd_update_diagram, dfd_delete_diagram
External Entities dfd_list_external_entities, dfd_create_external_entity, dfd_get_external_entity, dfd_update_external_entity, dfd_delete_external_entity
Processes dfd_list_processes, dfd_create_process, dfd_get_process, dfd_update_process, dfd_delete_process
Data Stores dfd_list_data_stores, dfd_create_data_store, dfd_get_data_store, dfd_update_data_store, dfd_delete_data_store
Data Flows dfd_list_data_flows, dfd_create_data_flow, dfd_get_data_flow, dfd_update_data_flow, dfd_delete_data_flow

Common Tools

Shared infrastructure tools available across all StarUML Controller MCP servers.

<details> <summary><strong>General</strong> — status, elements, tags, project I/O</summary>

Tool Description
get_status Get server status, version, and endpoint list
get_element Get any element by ID
list_element_tags List tags on an element
create_element_tag Create a tag on an element
get_tag Get tag details
update_tag Update a tag
delete_tag Delete a tag
save_project Save project to a .mdj file
open_project Open a .mdj project file

</details>

<details> <summary><strong>Project</strong> — new, close, import, export</summary>

Tool Description
project_new Create a new empty project
project_close Close the current project
project_import Import a .mdj fragment into the project
project_export Export a model fragment to a .mdj file
project_export_all Export all diagrams as images (PNG/SVG/JPEG/PDF)
project_export_doc Export project documentation (HTML/Markdown)

</details>

<details> <summary><strong>Utility</strong> — undo, redo, search, validate, mermaid, generate</summary>

Tool Description
undo Undo the last action
redo Redo the last undone action
search Search elements by keyword with optional type filter
validate Run model validation
mermaid_import Import a Mermaid diagram definition
generate_diagram Generate a diagram from natural language (requires AI extension)

</details>

<details> <summary><strong>Diagrams</strong> — CRUD, export, layout, zoom</summary>

Tool Description
diagram_list List all diagrams (optionally filter by type)
diagram_create Create a new diagram of any type
diagram_get Get diagram details by ID
diagram_update Update diagram name
diagram_delete Delete a diagram
diagram_list_elements List all elements on a diagram
diagram_list_views List all views on a diagram
diagram_create_element Create a node element on a diagram
diagram_create_relation Create a relation between elements
diagram_export Export diagram as image (PNG/SVG/JPEG/PDF)
diagram_layout Auto-layout diagram with configurable direction
diagram_open Open/activate a diagram in the editor
diagram_zoom Set diagram zoom level
diagram_create_view_of Create a view of an existing model on a diagram
diagram_link_object Create a UMLLinkObject on an object diagram

</details>

<details> <summary><strong>Notes & Shapes</strong> — notes, note links, free lines, shapes</summary>

Tool Description
note_list List all notes on a diagram
note_create Create a note with text and position
note_get Get note details
note_update Update note text
note_delete Delete a note
note_link_list List all note links on a diagram
note_link_create Create a link between a note and an element
note_link_delete Delete a note link
free_line_list List all free lines on a diagram
free_line_create Create a free line on a diagram
free_line_delete Delete a free line
shape_list List all shapes on a diagram
shape_create Create a shape (Text, TextBox, Rect, RoundRect, Ellipse, Hyperlink, Image)
shape_get Get shape details
shape_update Update shape text
shape_delete Delete a shape

</details>

<details> <summary><strong>Views & Elements</strong> — positioning, styling, element management</summary>

Tool Description
view_update Move/resize a view (left, top, width, height)
view_update_style Update visual style (fillColor, lineColor, fontColor, fontSize, etc.)
view_reconnect Reconnect an edge to different source/target
view_align Align/distribute multiple views
element_update Update any element's name and documentation
element_delete Delete any element by ID
element_list_relationships List all relationships of an element
element_list_views List all views of an element across diagrams
element_relocate Move element to a different parent
element_create_child Create a child element (attribute, operation, etc.)
element_reorder Reorder element within parent (up/down)

</details>

Related Projects

This server is part of the StarUML Controller MCP family:

Server Diagram Type
staruml-controller-erd-mcp Entity-Relationship Diagram
staruml-controller-seq-mcp Sequence Diagram
staruml-controller-class-mcp Class / Package Diagram
staruml-controller-usecase-mcp Use Case Diagram
staruml-controller-activity-mcp Activity Diagram
staruml-controller-bpmn-mcp BPMN Diagram
staruml-controller-sysml-mcp SysML Diagram
and 18 more...

All servers share common tools and add diagram-specific tools on top. Install only what you need.

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选