Turn a few lines of text into a UML use case diagram document, and check it.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants use case diagram text checked without a drawing, for example "which use cases have no actor?" or "check my use case diagram". Takes the same diagram text as make_use_case_diagram. Returns ready true or false; when a line breaks the grammar (also unknown names, relations between the wrong kinds of element, or a generalization cycle), the line number, the token and the reason; otherwise the elements with their relation counts, actors with no use case (an actor counts when it or an actor it specializes has an association), use cases no actor reaches (directly, through include, or as an extension of a reached use case), and include/extend cycles. Does not draw the diagram or make files.
The use case diagram in this line grammar, one statement per line, up to 40,000 characters: actor Name | actor "Long name" as A | usecase Name | usecase "Text" as UC1 | system "Name" { ... } (use case lines inside belong to that system; not nested) | A -- UC1 (association) | UC1 ..> UC2 : include | UC3 ..> UC1 : extend | Admin --|> User (actor generalization) | note UC1: text | # comment. Declare each actor and use case before or after use. Example: "actor Customer\nsystem \"Shop\" {\nusecase \"Place order\" as Order\nusecase Pay\n}\nCustomer -- Order\nOrder ..> Pay : include".
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http use-case-diagram https://use-case-diagram.zovo.one/mcp
Use this when the user wants use case diagram text checked without a drawing, for example "which use cases have no actor?" or "check my use case diagram". Takes the same diagram text as make_use_case_diagram. Returns ready true or false; when a line breaks the grammar (also unknown names, relations between the wrong kinds of element, or a generalization cycle), the line number, the token and the reason; otherwise the elements with their relation counts, actors with no use case (an actor counts when it or an actor it specializes has an association), use cases no actor reaches (directly, through include, or as an extension of a reached use case), and include/extend cycles. Does not draw the diagram or make files.
| Argument | Type | Description |
|---|---|---|
| diagram* | string | The use case diagram in this line grammar, one statement per line, up to 40,000 characters: actor Name | actor "Long name" as A | usecase Name | usecase "Text" as UC1 | system "Name" { ... } (use case lines inside belong to that system; not nested) | A -- UC1 (association) | UC1 ..> UC2 : include | UC3 ..> UC1 : extend | Admin --|> User (actor generalization) | note UC1: text | # comment. Declare each actor and use case before or after use. Example: "actor Customer\nsystem \"Shop\" {\nusecase \"Place order\" as Order\nusecase Pay\n}\nCustomer -- Order\nOrder ..> Pay : include". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"diagram"
],
"properties": {
"diagram": {
"type": "string",
"maxLength": 100000,
"description": "The use case diagram in this line grammar, one statement per line, up to 40,000 characters: actor Name | actor \"Long name\" as A | usecase Name | usecase \"Text\" as UC1 | system \"Name\" { ... } (use case lines inside belong to that system; not nested) | A -- UC1 (association) | UC1 ..> UC2 : include | UC3 ..> UC1 : extend | Admin --|> User (actor generalization) | note UC1: text | # comment. Declare each actor and use case before or after use. Example: \"actor Customer\\nsystem \\\"Shop\\\" {\\nusecase \\\"Place order\\\" as Order\\nusecase Pay\\n}\\nCustomer -- Order\\nOrder ..> Pay : include\"."
}
}
}Use this when the user wants a UML use case diagram drawn, for example "draw the use cases of an online shop" or "make a PDF use case diagram of this system". Takes the diagram text in a line grammar: actor Name / actor "Long name" as A; usecase Name / usecase "Text" as UC1; system "Name" { ... } (use cases inside belong to it; not nested); A -- UC1 (association); UC1 ..> UC2 : include; UC3 ..> UC1 : extend; Admin --|> User (actor generalization); note UC1: text; # comments. When the user describes the diagram in words, write it in this grammar first. Returns counts, elements, relations in input order, the diagram check (actors with no use case, use cases no actor reaches, include/extend cycles), a check on the drawing, the PDF page count, an interactive diagram, and PDF, SVG and CSV downloads. Refuses a line outside the grammar, unknown names, relations between the wrong kinds of element and generalization cycles, with the line number and token. Up to 30 actors, 80 use cases, 6 systems and 300 relations. Does not read use case generalization, packages or nested systems. Download links of large diagrams expire after about 1 hour.
| Argument | Type | Description |
|---|---|---|
| title | string | Title printed on the diagram and used in file names, up to 80 characters, e.g. "Online shop". |
| diagram* | string | The use case diagram in this line grammar, one statement per line, up to 40,000 characters: actor Name | actor "Long name" as A | usecase Name | usecase "Text" as UC1 | system "Name" { ... } (use case lines inside belong to that system; not nested) | A -- UC1 (association) | UC1 ..> UC2 : include | UC3 ..> UC1 : extend | Admin --|> User (actor generalization) | note UC1: text | # comment. Declare each actor and use case before or after use. Example: "actor Customer\nsystem \"Shop\" {\nusecase \"Place order\" as Order\nusecase Pay\n}\nCustomer -- Order\nOrder ..> Pay : include". |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.
| page_size | string | PDF paper: letter (default) or a4. The PDF is portrait, or landscape when the diagram is too wide for portrait. Example: a4. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"diagram"
],
"properties": {
"title": {
"type": "string",
"maxLength": 400,
"description": "Title printed on the diagram and used in file names, up to 80 characters, e.g. \"Online shop\"."
},
"diagram": {
"type": "string",
"maxLength": 100000,
"description": "The use case diagram in this line grammar, one statement per line, up to 40,000 characters: actor Name | actor \"Long name\" as A | usecase Name | usecase \"Text\" as UC1 | system \"Name\" { ... } (use case lines inside belong to that system; not nested) | A -- UC1 (association) | UC1 ..> UC2 : include | UC3 ..> UC1 : extend | Admin --|> User (actor generalization) | note UC1: text | # comment. Declare each actor and use case before or after use. Example: \"actor Customer\\nsystem \\\"Shop\\\" {\\nusecase \\\"Place order\\\" as Order\\nusecase Pay\\n}\\nCustomer -- Order\\nOrder ..> Pay : include\"."
},
"page_size": {
"enum": [
"letter",
"a4"
],
"type": "string",
"description": "PDF paper: letter (default) or a4. The PDF is portrait, or landscape when the diagram is too wide for portrait. Example: a4."
}
}
}