Connects Claude or any MCP client to StarUML's API server over stdio or HTTP, exposing 19 tools split across built-in and extension endpoints. The base four tools handle Mermaid-to-UML generation and diagram exports. Install the companion staruml-mcp-extension and you unlock project save/open, element CRUD, diagram switching, and execution of StarUML's 138 built-in commands. Useful when you want AI agents to scaffold class diagrams, ERDs, or sequence diagrams directly in StarUML instead of producing static text. Requires StarUML 7.0+ with the API server enabled on port 58321. The HTTP transport runs on 58323 by default, making it simple to wire up with Claude Code or Cursor.
Model Context Protocol (MCP) server for StarUML. Lets AI agents (Claude Code, Cursor, VS Code Copilot, Codex) drive StarUML programmatically — generate UML diagrams from Mermaid, execute any built-in command, CRUD elements, save projects, and more.
AI Agent ──MCP──► staruml-mcp (this package) ──HTTP──► StarUML
:58321 (built-in, 4 tools)
:58322 (extension, 15 tools)
| Package | What it is | Where it runs |
|---|---|---|
staruml-mcp (this repo) | MCP server for AI agents | your machine via npx -y staruml-mcp |
staruml-mcp-extension | StarUML plugin adding 15 HTTP endpoints | inside StarUML (install once via Extension Manager) |
staruml-mcp only. The 4 built-in tools work.staruml-mcp-extension installed in StarUML — required for 15 of the 19 toolsEdit settings.json at:
%APPDATA%\StarUML\settings.json~/Library/Application Support/StarUML/settings.json~/.config/StarUML/settings.jsonAdd or update:
{
"apiServer": true,
"apiServerPort": 58321
}
Restart StarUML.
Verify:
curl http://localhost:58321/
# → "Hello from StarUML API Server!"
Start the server in a terminal:
npx -y staruml-mcp --transport http
# listens on http://localhost:58323/mcp by default
Register with Claude Code:
claude mcp add --transport http staruml http://localhost:58323/mcp
Port
58323is the canonical HTTP port, chosen to sit alongside StarUML's built-in API (58321) andstaruml-mcp-extension(58322). Override with--port <n>if needed.
Restart Claude Code. Ask:
"What StarUML tools do you have?"
Edit %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"staruml": {
"command": "npx",
"args": ["-y", "staruml-mcp"]
}
}
}
Restart Claude Desktop.
Point your MCP client at npx -y staruml-mcp (stdio) or http://localhost:58323/mcp (HTTP).
staruml-mcp [options]
-t, --transport <type> stdio | http (default: stdio)
-p, --port <number> HTTP listen port (default: 58323)
--api-port <number> StarUML built-in API port (default: 58321)
--ext-port <number> staruml-mcp-extension port(default: 58322)
--api-host <url> StarUML API host prefix (default: http://localhost)
-V, --version Print version
-h, --help Show help
| Tool | Description |
|---|---|
generate_diagram | Generate a UML diagram from Mermaid code. |
get_all_diagrams_info | List all diagrams in the current project (id, name, type). |
get_current_diagram_info | Get metadata of the currently focused diagram. |
get_diagram_image_by_id | Export a diagram as PNG by its ID. |
staruml-mcp-extension, port 58322)| Tool | Description |
|---|---|
get_all_commands | List all 138+ built-in StarUML command IDs. |
execute_command | Execute any built-in command (e.g. project:save, view:fit-to-window). |
get_project_info | Current project's filename + top-level elements. |
save_project / save_project_as / new_project / open_project | Project file lifecycle. |
get_element_by_id / find_elements | Query model elements. |
create_element / update_element / delete_element | Element CRUD. |
create_diagram (typed native) / switch_diagram / close_diagram | Diagram management. |
To enable extension tools: install staruml-mcp-extension in StarUML (Tools → Extension Manager → Install From URL → https://github.com/ezrabrilliant/staruml-mcp-extension).
xyz123 as an image."git clone https://github.com/ezrabrilliant/staruml-mcp.git
cd staruml-mcp
npm install
npm run dev # tsx watch on src/
npm run build # bundle to dist/
npm test # vitest
npm run typecheck # tsc --noEmit
AI Agent (Claude Code / Cursor / VS Code / …)
│
│ MCP (stdio or Streamable HTTP)
▼
staruml-mcp (this package)
│
│ HTTP JSON-RPC
▼
StarUML API Server (port 58321)
│
▼
StarUML Application (v7+)
Inspired by staruml/staruml-mcp-server (official stdio-only server by Minkyu Lee, StarUML creator). This project reimplements it with multi-transport support and strict TypeScript.
MIT © Ezra Brilliant Konterliem