Skip to main content
Glama

PlantUML MCP Server

Гибкий сервер протокола контекста модели (MCP), который превращает фрагменты PlantUML в диаграммы, которыми можно делиться.
Все возможности доступны через HTTP, Server-Sent Events (SSE) и STDIO, поэтому вы можете подключить сервер к Claude Desktop, Flowise или любой другой среде выполнения, совместимой с MCP.


Основные возможности

  • 🧰 Инструменты: generate_plantuml_diagram, generate_capability_landscape, generate_business_scenario, encode_plantuml, decode_plantuml

  • 🧾 Промпты: plantuml_error_handling, capability_landscape_input_format, archimate_diagram_input_format, business_scenario_input_format

  • 📚 Статические ресурсы: resource://plantuml/server-guide, resource://plantuml/archimate-mapping

  • 🔒 Опциональная аутентификация Bearer через MCP_API_KEY

  • ☁️ Опциональный экспорт ob-file через подписанные URL-адреса для скачивания (OB_FILE_API_BASE_URL)

  • 🔐 Опциональный поток OIDC client-credentials для ob-file (OB_FILE_OIDC_*)

  • 📁 Резервный экспорт в общую папку (GENERATED_FILES_DIR + PUBLIC_FILE_BASE_URL)


Related MCP server: PlantUML MCP Server

Требования

  • Node.js 18+

  • npm 9+

npm install
npm run build     # emits dist/plantuml-mcp-server.js

Используйте npx plantuml-mcp-server или node dist/plantuml-mcp-server.js после сборки.


Режимы транспорта

Режим

Когда использовать

Как запустить

HTTP (по умолчанию)

Прямая интеграция в стиле REST, обратные прокси, проверки работоспособности

MCP_TRANSPORT=http node dist/plantuml-mcp-server.js

SSE

Claude Desktop / Flowise по сети с push-обновлениями

MCP_TRANSPORT=sse node dist/plantuml-mcp-server.js

STDIO

Локальные CLI-инструменты (npx, Claude Code CLI, управляемый процесс Flowise)

MCP_TRANSPORT=stdio npx plantuml-mcp-server

Транспорт HTTP

MCP_TRANSPORT=http \
MCP_HOST=0.0.0.0 \
MCP_PORT=8765 \
MCP_HTTP_PATH=/mcp \
node dist/plantuml-mcp-server.js
  • POST /mcp для инициализации и отправки полезных нагрузок JSON-RPC.

  • GET /mcp и DELETE /mcp поддерживают активность потоковой сессии.

  • GET /healthz доступен для проверок готовности.

  • Пример настроек клиента: client_config_http.json.

Транспорт SSE

MCP_TRANSPORT=sse \
MCP_HOST=0.0.0.0 \
MCP_PORT=8765 \
MCP_SSE_PATH=/sse \
MCP_SSE_MESSAGES_PATH=/messages \
node dist/plantuml-mcp-server.js
  • Клиенты подключаются к /sse (GET) для получения событий и отправляют JSON-сообщения методом POST на /messages.

  • Пример конфигурации для Claude Desktop / Flowise: client_config_sse.json.

Транспорт STDIO

MCP_TRANSPORT=stdio npx plantuml-mcp-server
# or run the compiled file directly
MCP_TRANSPORT=stdio node dist/plantuml-mcp-server.js
  • Идеально подходит для локальных экспериментов, CLI mcp или узлов Flowise, которые запускают бинарный файл.

  • Примеры настроек находятся в client_config_stdio.json.


Примеры конфигураций клиента

Поместите эти файлы в свой MCP-совместимый клиент или скопируйте фрагменты по мере необходимости. Обновите имена хостов, порты и ключи API в соответствии с вашим развертыванием.


Переменные окружения

Переменная

По умолчанию

Назначение

LOG_LEVEL

info

Поддерживаются уровни от emergency до debug

PLANTUML_SERVER_URL

https://www.plantuml.com/plantuml

Внешний рендерер PlantUML

MCP_TRANSPORT

http

http, sse или stdio

MCP_HOST / MCP_PORT

0.0.0.0 / 3000

Адрес привязки + порт (HTTP/SSE)

MCP_HTTP_PATH

/mcp

Конечная точка HTTP JSON-RPC

MCP_HTTP_ENABLE_JSON_RESPONSES

false

Возвращать тело JSON, если true (для отладки)

MCP_SSE_PATH

/sse

Конечная точка потока SSE

MCP_SSE_MESSAGES_PATH

/messages

Конечная точка приема сообщений

MCP_API_KEY

не задано

Включает Bearer-аутентификацию, если предоставлен

OB_FILE_API_BASE_URL

не задано

Базовый URL API управления ob-file (например, http://ob-file:8000)

OB_FILE_API_TOKEN

не задано

Bearer-токен, используемый для вызова API управления ob-file

OB_FILE_OIDC_DISCOVERY_URL

не задано

URL обнаружения Authelia OIDC, используемый для получения токена доступа службы

OB_FILE_OIDC_TOKEN_ENDPOINT

не задано

Опциональная переопределяющая конечная точка токена (полезно для внутренних вызовов между службами)

OB_FILE_OIDC_CLIENT_ID

не задано

Идентификатор клиента OIDC, используемый mcp-plantuml

OB_FILE_OIDC_CLIENT_SECRET

не задано

Секрет клиента OIDC, используемый mcp-plantuml

OB_FILE_OIDC_SCOPE

groups

Область действия, запрашиваемая во время запроса токена учетных данных клиента

OB_FILE_OIDC_AUDIENCE

ob-file

Аудитория, запрашиваемая во время запроса токена учетных данных клиента

OB_FILE_OIDC_FORWARDED_PROTO

не задано

Опциональный заголовок X-Forwarded-Proto для внутренних вызовов Authelia

OB_FILE_OIDC_FORWARDED_HOST

не задано

Опциональный заголовок X-Forwarded-Host для внутренних вызовов Authelia

GENERATED_FILES_DIR

/generated-files

Резервная локальная директория или директория общего тома, если OB_FILE_API_BASE_URL не настроен

PUBLIC_FILE_BASE_URL

https://ob-file.fmpn.fr/files

Резервный базовый URL, возвращаемый при использовании экспорта в общий том

PLANTUML_MCP_SKIP_AUTO_START

не задано

Если true, пропускает автозапуск, чтобы скрипты могли импортировать класс сервера без запуска транспортов

Когда настроен OB_FILE_API_BASE_URL, отрендеренные диаграммы загружаются через ob-file, а ответ MCP возвращает подписанный download_url, сгенерированный ob-file. Если настроены OB_FILE_OIDC_DISCOVERY_URL, OB_FILE_OIDC_CLIENT_ID и OB_FILE_OIDC_CLIENT_SECRET, сервер автоматически получает и кэширует токен доступа через учетные данные клиента OAuth 2.0. Путь к общему тому остается в качестве резервного варианта совместимости для локальных/разработческих настроек.


Инструменты, промпты и ресурсы

  • Инструменты автоматически регистрируются через tools/list. Они выполняют проверку, опциональные автоисправления и возвращают структурированные метаданные (success, URL-адреса, фрагменты markdown, закодированные данные диаграммы и ошибки проверки).

  • Промпты направляют модель через обработку ошибок PlantUML и предоставляют готовый шаблон ландшафта возможностей.

  • Шаблоны ресурсов предоставляют контент для ознакомления (resource://plantuml/server-guide), чтобы клиенты могли самостоятельно найти инструкции по использованию.


Docker-образ

Предоставленный Dockerfile собирает исходный код TypeScript и создает минимальный образ среды выполнения:

docker build -t plantuml-mcp-server .
docker run --rm -e MCP_TRANSPORT=http -p 8765:8765 plantuml-mcp-server

При необходимости переопределите переменные окружения (PLANTUML_SERVER_URL, MCP_API_KEY и т. д.).


Тестирование и инструменты

  • npm run build – компиляция TypeScript

  • npm start – запуск с использованием транспорта HTTP по умолчанию

  • npm run start:sse / npm run start:stdio – удобные скрипты

  • npm run test:business-scenario – snapshot-тест, который преобразует test_files/generate_sequence_diagram/payload.json в PlantUML и сравнивает его с expected.puml

  • make test-mcp – дымовое тестирование команд через CLI mcp


Нужна помощь?

  • Проверьте подключение с помощью curl http://<host>:<port>/healthz

  • Убедитесь, что заголовки аутентификации соответствуют MCP_API_KEY (Bearer-токен), если они включены

  • Используйте инспектор MCP или логи узла Flowise для отслеживания полезных нагрузок JSON-RPC

Сервер поставляется со всем необходимым для работы через HTTP, SSE и STDIO. Подключите транспорт, который соответствует вашей среде, и начните создавать диаграммы!

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sysam68/plantuml-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server