MCP server

An experimental Structurizr MCP server is available on GitHub. It runs standalone and supports stateless HTTP transport.

Tools

-dsl

Validate Structurizr DSL

  • Parameters:
    • DSL (required)
  • Returns “OK” if the DSL is parseable, or an error message otherwise

Parse Structurizr DSL

  • Parameters:
    • DSL (required)
  • Returns a JSON workspace, or an error message if the DSL can’t be parsed

Inspect Structurizr DSL

  • Parameters:
    • DSL (required)
  • Returns a list of inspection violations

-mermaid

Export view to Mermaid

  • Parameters:
    • DSL (required)
    • View key (required)
  • Returns a Structurizr view exported as Mermaid

-plantuml

Export view to PlantUML

  • Parameters:
    • DSL (required)
    • View key (required)
  • Returns a Structurizr view exported as PlantUML

Export view to C4-PlantUML

  • Parameters:
    • DSL (required)
    • View key (required)
  • Returns a Structurizr view exported as C4-PlantUML

-server

Get workspace from a Structurizr server

  • Parameters:
    • Structurizr server URL (required)
    • Workspace ID (required)
    • API key (not required if running the server with authentication disabled)
  • Returns a Structurizr workspace

Get all workspaces from a Structurizr server

  • Parameters:
    • Structurizr server URL (required)
    • Admin API key (not required if running the server with authentication disabled)
  • Returns a collection of Structurizr workspaces

mcp.structurizr.com

An instance of the MCP server is running at mcp.structurizr.com, with the DSL, PlantUML, and Mermaid tools enabled. If you’d like to use this, just create a connector to https://mcp.structurizr.com/mcp in your AI agent.

Running

A prebuilt Docker image is available on Docker Hub:

docker pull structurizr/mcp
docker run -it --rm -p 3000:3000 -e PORT=3000 structurizr/mcp <parameters>

The following parameters are supported:

  • -dsl: Enable DSL tools.
  • -server: Enable Structurizr server tools.
  • -plantuml: Enable PlantUML exporter.
  • -mermaid: Enable Mermaid exporter.

Building and running from source

Prerequisites:

  • Java 21

To build:

git clone https://github.com/structurizr/structurizr.git
cd structurizr
./mvnw -Dmaven.test.skip=true package -am -pl structurizr-mcp

If successful, there will be a structurizr-mcp-1.0.0.war file in structurizr-mcp/target.

java -jar structurizr-mcp/target/structurizr-mcp-1.0.0.war <parameters>

To create a Docker image:

docker build . -f structurizr-mcp/Dockerfile -t structurizr-mcp

Claude Desktop configuration

{
  ...
  "mcpServers": {
    "structurizr-mcp": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:3000/mcp"]
    }
  }
  ...
}

(Claude Desktop doesn’t permit http transport, so you’ll need to use mcp-remote or similar that bridges stdio to a remote MCP server)

Example

load the Structurizr workspace 123 from the server running at http://localhost:8080

summarise the architecture of the internet banking system

MCP server example

MCP server example


This site uses Just the Docs, a documentation theme for Jekyll.