Skip to main content
Glama
staruml

StarUML MCP Server

Official
by staruml

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_diagram

  • get_current_diagram_info

  • get_all_diagrams_info

  • get_diagram_image_by_id

Dev

  1. Clone this repository.

  2. Build with npm run build.

  3. Update claude_desktop_config.json in Claude Desktop as below.

  4. Restart Claude Desktop.

{
  "mcpServers": {
    "staruml-mcp-server": {
      "command": "node",
      "args": ["<full-path-to>/staruml-mcp-server/build/index.js"]
    }
  }
}

Available Tools

4 tools
generate_diagramC

Generate a diagram in StarUML.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesMermaid code to generate the diagram. Supported diagrams are classDiagram, sequenceDiagram, flowchart, erDiagram, mindmap, requirementDiagram and stateDiagram. Other diagrams are not supported.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
diagramIdYesID of the diagram to get the image for. You can get the ID from the 'get_all_diagrams_info' tool.

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 4 tool updatesv0.1.0
    • First observedgenerate_diagram
    • First observedget_all_diagrams_info
    • First observedget_current_diagram_info
    • First observedget_diagram_image_by_id

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

With 4 tools, the server is well-scoped for the StarUML domain, covering generation and information retrieval without unnecessary bloat.

Completeness4/5

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

ActivityInactive
ResponsivenessUnresponsive

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

Related MCP Servers