Zovo Sequence Diagram MCP
Converts plain text descriptions into UML sequence diagrams, supporting participants, sync/async messages, notes, and control flow blocks like alt/else/loop. Outputs include PDF, SVG, and CSV files, with validation checks for grammar and drawing integrity.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://sequence-diagram.zovo.one/mcpWhat its tools do
2 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (2)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Generate UML sequence diagrams from text
- Validate sequence diagram syntax
- Export diagrams to PDF, SVG, or CSV
Source and maintenance
Protocol and capabilities
- Server
- sequence-diagram 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 2 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
2 advertised
make_sequence_diagram — Make sequence diagram
Use this when the user wants a UML sequence diagram drawn, for example "draw a sequence diagram of the login flow" or "make a PDF of these API calls". Takes the diagram text in a line grammar: participant Name / actor Name / participant "Long Name" as Alias; A -> B: text (sync), A ->> B: text (async), A --> B: text (reply), A -> A: text (self); note over A: text / note over A,B: text; alt cond / else cond / end, loop cond / end, opt cond / end; activate A / deactivate A; # comment lines. When the user describes the flow in words, write it in this grammar first. Returns counts, the messages in order, the blocks with their messages, a check on the drawing (messages in order, frames holding their messages, overlapping labels), the PDF page count and smallest text size, an interactive diagram, and PDF, SVG and CSV downloads. Refuses a line outside the grammar with its line number and token. Up to 30 participants and 400 messages. Does not read features of other diagram languages outside this grammar. A diagram too wide for the paper with text of at least 7 pt gets no PDF (SVG and CSV only), and the result says so. Download links of large diagrams expire after about 1 hour.
{
"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. \"Login flow\"."
},
"diagram": {
"type": "string",
"maxLength": 200000,
"description": "The diagram in this line grammar, one statement per line, up to 60,000 characters: participant Name | actor Name | participant \"Long Name\" as Alias; A -> B: text (sync call), A ->> B: text (async), A --> B: text (reply), A -> A: text (self); note over A: text | note over A,B: text; alt condition / else condition / end, loop condition / end, opt condition / end; activate A | deactivate A; lines starting with # or %% are comments. Example: \"actor User\\nUser -> Web: Log in\\nWeb -> DB: Find user\\nDB --> Web: User row\\nalt password ok\\nWeb --> User: Welcome\\nelse wrong password\\nWeb --> User: Try again\\nend\"."
},
"page_size": {
"enum": [
"letter",
"a4",
"tabloid"
],
"type": "string",
"description": "PDF paper: letter (default), a4 or tabloid (11 x 17 in). Landscape unless portrait needs fewer pages. Example: a4."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title",
"counts",
"participants",
"messages",
"blocks",
"pdf",
"layout_check",
"warnings",
"downloads"
],
"properties": {
"pdf": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"shown": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"title": {
"type": "string"
},
"blocks": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"counts": {
"type": "object",
"required": [
"participants",
"messages",
"sync",
"async",
"reply",
"self",
"notes",
"blocks",
"max_nesting",
"open_activations"
],
"properties": {
"self": {
"type": "number"
},
"sync": {
"type": "number"
},
"async": {
"type": "number"
},
"notes": {
"type": "number"
},
"reply": {
"type": "number"
},
"blocks": {
"type": "number"
},
"messages": {
"type": "number"
},
"max_nesting": {
"type": "number"
},
"participants": {
"type": "number"
},
"open_activations": {
"type": "number"
}
},
"additionalProperties": false
},
"messages": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"downloads": {
"type": "object",
"properties": {
"csv": {
"type": "string"
},
"pdf": {
"type": "string"
},
"svg": {
"type": "string"
}
},
"additionalProperties": false
},
"layout_check": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"participants": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"additionalProperties": false
}{
"title": "Make sequence diagram",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}check_sequence — Check sequence diagram text
Use this when the user wants sequence diagram text checked without a drawing, for example "check my sequence diagram for unclosed blocks" or "which participants have no messages". Takes the same diagram text as make_sequence_diagram. Returns ready true or false; when a line breaks the grammar, the line number, the token and the reason; otherwise the participants with outgoing and incoming message counts, message counts by kind, the blocks with their lines, nesting depth and messages, activate lines with no deactivate, and participants that differ only in upper and lower case. Does not draw the diagram or make files, and does not read features of other diagram languages outside this grammar.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"diagram"
],
"properties": {
"diagram": {
"type": "string",
"maxLength": 200000,
"description": "The diagram in this line grammar, one statement per line, up to 60,000 characters: participant Name | actor Name | participant \"Long Name\" as Alias; A -> B: text (sync call), A ->> B: text (async), A --> B: text (reply), A -> A: text (self); note over A: text | note over A,B: text; alt condition / else condition / end, loop condition / end, opt condition / end; activate A | deactivate A; lines starting with # or %% are comments. Example: \"actor User\\nUser -> Web: Log in\\nWeb -> DB: Find user\\nDB --> Web: User row\\nalt password ok\\nWeb --> User: Welcome\\nelse wrong password\\nWeb --> User: Try again\\nend\"."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ready",
"participants",
"blocks",
"activations",
"error",
"notes",
"grammar",
"limits"
],
"properties": {
"error": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"ready": {
"type": "boolean"
},
"shown": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"blocks": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"counts": {
"type": "object",
"required": [
"participants",
"messages",
"sync",
"async",
"reply",
"self",
"notes",
"blocks",
"max_nesting",
"open_activations"
],
"properties": {
"self": {
"type": "number"
},
"sync": {
"type": "number"
},
"async": {
"type": "number"
},
"notes": {
"type": "number"
},
"reply": {
"type": "number"
},
"blocks": {
"type": "number"
},
"messages": {
"type": "number"
},
"max_nesting": {
"type": "number"
},
"participants": {
"type": "number"
},
"open_activations": {
"type": "number"
}
},
"additionalProperties": false
},
"limits": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"grammar": {
"type": "array",
"items": {
"type": "string"
}
},
"activations": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"participants": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"additionalProperties": false
}{
"title": "Check sequence diagram text",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
sequence-diagram-widget — Zovo Sequence Diagram view
Interactive view for Zovo Sequence Diagram.
ui://widget/sequence-diagram-v1-1.0.0-82b7f07db001c59095f95937f7a55abfd441c269af4f1ee71ad7743cfd18d2f3.htmlsequence-diagram-widget-legacy — Zovo Sequence Diagram view (previous versions)
ui://widget/sequence-diagram-{version}.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 676 ms
- 95th percentile latency
- 676 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 676 ms · metadata changed · 2 tool(s), 1 resource(s), 1 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http zovo-sequence-diagram-mcp https://sequence-diagram.zovo.one/mcpCodex
codex mcp add zovo-sequence-diagram-mcp --url https://sequence-diagram.zovo.one/mcpCursor
{
"mcpServers": {
"zovo-sequence-diagram-mcp": {
"url": "https://sequence-diagram.zovo.one/mcp"
}
}
}Cline
{
"mcpServers": {
"zovo-sequence-diagram-mcp": {
"type": "streamableHttp",
"url": "https://sequence-diagram.zovo.one/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"zovo-sequence-diagram-mcp": {
"type": "http",
"url": "https://sequence-diagram.zovo.one/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http zovo-sequence-diagram-mcp https://sequence-diagram.zovo.one/mcpClaude Desktop
https://sequence-diagram.zovo.one/mcpWindsurf
{
"mcpServers": {
"zovo-sequence-diagram-mcp": {
"serverUrl": "https://sequence-diagram.zovo.one/mcp"
}
}
}Let your agent find its tools
Find servers like Zovo Sequence Diagram MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.