StarUML MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@StarUML MCP ServerCreate a UML class diagram for an online bookstore"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
StarUML MCP Server
StarUML is a sophisticated modeler for agile and concise modeling. StarUML MCP Server enables you to create diagrams or generate codes from diagrams in StarUML via prompts.
Setup
Prerequisite:
Set up claude_desktop_config.json in Claude Desktop as follows:
{
"mcpServers": {
"staruml-mcp-server": {
"command": "npx",
"args": ["-y", "staruml-mcp-server"]
}
}
}You can use the --api-port=<port> option to change the API server port for StarUML.
Related MCP server: PlantUML MCP Server
Example Prompts
"Create a class diagram for book store in StarUML"
"Create a sequence diagram for OAuth authentication in StarUML"
"Generate SQL DDL from the current ERD diagram in StarUML"
Tools
generate_diagramget_current_diagram_infoget_all_diagrams_infoget_diagram_image_by_id
Dev
Clone this repository.
Build with
npm run build.Update
claude_desktop_config.jsonin Claude Desktop as below.Restart Claude Desktop.
{
"mcpServers": {
"staruml-mcp-server": {
"command": "node",
"args": ["<full-path-to>/staruml-mcp-server/build/index.js"]
}
}
}Available Tools
4 toolsgenerate_diagramC
Generate a diagram in StarUML.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Mermaid code to generate the diagram. Supported diagrams are classDiagram, sequenceDiagram, flowchart, erDiagram, mindmap, requirementDiagram and stateDiagram. Other diagrams are not supported. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It only says 'Generate a diagram', which implies a mutation but does not explain side effects, whether it overwrites an existing diagram, or what happens in StarUML. The schema adds supported diagram types, but the description itself offers minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff, but it is under-specified. It omits important context such as the need for Mermaid code and unsupported diagram types, which are only available in the schema. The brevity is efficient, but it sacrifices useful information that a well-rounded description should include.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema) and the rich schema description of the parameter, the description is minimally adequate. However, it lacks any mention of return values, side effects, or how it fits with the sibling tools. The gaps prevent it from being fully complete, but the combination of schema and short description covers the essential mechanics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'code' is fully documented in the schema with a clear description and a list of supported diagram types, so the description does not need to add much. The description itself mentions no parameter details, but the schema coverage is 100%, making a baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Generate') and resource ('a diagram in StarUML'), which is specific enough to understand the tool's core function. It implicitly differs from sibling tools that retrieve diagram information or images, but does not explicitly name them or highlight the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the sibling 'get_*' tools. There is no mention of alternatives, prerequisites, or situations where this tool should be preferred. The only usage hint ('Mermaid code') is buried in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_diagrams_infoA
Get information for all diagrams in StarUML.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. 'Get' indicates a read-only operation, but the description does not disclose the specific nature of the returned information, potential size, or any side effects. This is minimal but acceptable for a simple retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no filler. It is front-loaded and efficiently states the tool's purpose without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and annotations, the description leaves 'information' vague. It does not specify the fields or format of the returned diagram details, which is a gap for an agent deciding if this tool meets its needs. A short list of returned attributes would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is empty. The description does not need to explain parameters, and the zero-parameter case warrants the baseline score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves information for all diagrams in StarUML. The verb 'Get' and scope 'all diagrams' distinguishes it from the sibling get_current_diagram_info, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for all diagrams' provides clear context on when to use this tool, implying it should be chosen over get_current_diagram_info when a complete collection is needed. However, it does not explicitly reference alternatives or exclusion scenarios, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_diagram_infoA
Get information for the current diagram in StarUML.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'Get information', which implies a read-only operation, but it does not disclose return format, possible failure modes (e.g., no current diagram open), or any other behavioral details beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence, front-loaded with the action and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, annotations, or output schema, the description is minimally adequate. It clarifies the target ('current diagram in StarUML') but leaves the returned information undefined, which is a notable gap given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantic burden. Baseline for 0-parameter tools is 4; the description correctly avoids inventing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and identifies the resource ('information for the current diagram in StarUML'). The term 'current' distinguishes it from siblings like get_all_diagrams_info (all diagrams) and get_diagram_image_by_id (image by ID), while generate_diagram clearly has a different action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when information about the current diagram is needed) but does not explicitly state alternatives or exclusions. It does not mention that get_all_diagrams_info should be used for a list of all diagrams, though the sibling names make this inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diagram_image_by_idA
Get the image of a diagram by its ID in StarUML.
| Name | Required | Description | Default |
|---|---|---|---|
| diagramId | Yes | ID of the diagram to get the image for. You can get the ID from the 'get_all_diagrams_info' tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that an image is fetched, without revealing the output format (e.g., base64, URL, binary), error handling, or any side effects. This is a minimal disclosure that leaves significant ambiguity for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately conveys the tool's purpose and scope, with no redundant or vague wording. It is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter, but the absence of an output schema and annotations means the description must clarify the return format, which it does not. The agent is left uncertain about how to consume the 'image' result. However, given the simplicity of a read-only getter, the description is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters, with a detailed description for diagramId that adds practical value by referencing get_all_diagrams_info. The description itself adds no additional parameter semantics, but the schema's cross-tool guidance elevates it above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the specific resource ('image of a diagram by its ID') in StarUML. It distinguishes itself from sibling tools like get_all_diagrams_info and get_current_diagram_info, which return metadata rather than the image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, but the schema parameter description hints at the workflow by directing users to get_all_diagrams_info for the diagramId. No exclusions or alternative usage guidance are provided, leaving the usage context implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.1.0- First observed
generate_diagram - First observed
get_all_diagrams_info - First observed
get_current_diagram_info - First observed
get_diagram_image_by_id
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: generating a new diagram, retrieving info for all diagrams, retrieving info for the current diagram, and retrieving an image by ID. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern with snake_case: generate_diagram, get_all_diagrams_info, get_current_diagram_info, get_diagram_image_by_id. The convention is uniform.
With 4 tools, the server is well-scoped for the StarUML domain, covering generation and information retrieval without unnecessary bloat.
The server provides generate, list, and retrieve operations for diagrams. Missing update/delete capabilities are a minor gap, but the core workflow of creating and inspecting diagrams is well-covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate dynamic Mermaid diagrams and charts with AI assistance. Customize styles and export diagr…
Design domain models and generate deterministic multi-stack code, driven by your coding agent.
1Generate cloud architecture diagrams, flowcharts, and sequence diagrams.
Generate org charts, MCD/ERD data models, and C4 architecture diagrams — pilot OrgGen AI via MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables users to generate PlantUML code for UML Class and Sequence diagrams using Google Gemini AI. Supports both domain JSON input and free text descriptions to create structured UML diagrams.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to generate UML diagrams from text descriptions using PlantUML, supporting multiple output formats (PNG, SVG, PDF), syntax validation, and diagram source extraction.7MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI to remotely control StarUML for generating UML diagrams (use case, class, sequence, ER, etc.) via MCP protocol or REST API.-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to programmatically create and manage SysML diagrams in StarUML.-