Skip to main content
Glama

PlantUML MCP 服务器

灵活的模型上下文协议 (MCP) 服务器,可将 PlantUML 代码片段转换为可共享的图表。 所有功能均通过 HTTP服务器发送事件 (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

  • 🔐 可选的 ob-file OIDC 客户端凭据流 (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-servernode dist/plantuml-mcp-server.js


传输模式

模式

使用场景

启动方式

HTTP (默认)

直接 REST 风格集成、反向代理、健康检查

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

SSE

通过网络连接 Claude Desktop / Flowise 并支持推送更新

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 /mcpDELETE /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) 以获取事件,并向 /messages POST JSON 消息。

  • 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
  • 适用于本地实验、mcp CLI 或生成二进制文件的 Flowise 节点。

  • 设置示例位于 client_config_stdio.json


客户端配置示例

将这些文件放入您的 MCP 兼容客户端,或根据需要复制片段。请根据您的部署更新主机名、端口和 API 密钥。


环境变量

变量

默认值

用途

LOG_LEVEL

info

支持 emergencydebug

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

为 true 时返回 JSON 正文 (用于调试)

MCP_SSE_PATH

/sse

SSE 流端点

MCP_SSE_MESSAGES_PATH

/messages

消息摄取端点

MCP_API_KEY

未设置

提供后启用 Bearer 身份验证

OB_FILE_API_BASE_URL

未设置

ob-file 管理 API 基础 URL (例如 http://ob-file:8000)

OB_FILE_API_TOKEN

未设置

用于调用 ob-file 管理 API 的 Bearer 令牌

OB_FILE_OIDC_DISCOVERY_URL

未设置

用于获取服务访问令牌的 Authelia OIDC 发现 URL

OB_FILE_OIDC_TOKEN_ENDPOINT

未设置

可选的直接令牌端点覆盖 (适用于内部服务间调用)

OB_FILE_OIDC_CLIENT_ID

未设置

mcp-plantuml 使用的 OIDC 客户端标识符

OB_FILE_OIDC_CLIENT_SECRET

未设置

mcp-plantuml 使用的 OIDC 客户端密钥

OB_FILE_OIDC_SCOPE

groups

客户端凭据令牌请求期间请求的范围

OB_FILE_OIDC_AUDIENCE

ob-file

客户端凭据令牌请求期间请求的受众

OB_FILE_OIDC_FORWARDED_PROTO

未设置

内部 Authelia 调用的可选 X-Forwarded-Proto 标头

OB_FILE_OIDC_FORWARDED_HOST

未设置

内部 Authelia 调用的可选 X-Forwarded-Host 标头

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 响应将返回由 ob-file 生成的签名 download_url。如果配置了 OB_FILE_OIDC_DISCOVERY_URLOB_FILE_OIDC_CLIENT_IDOB_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 – 快照测试,将 test_files/generate_sequence_diagram/payload.json 转换为 PlantUML 并与 expected.puml 进行比较

  • make test-mcp – 通过 mcp CLI 进行冒烟测试


需要帮助?

  • 使用 curl http://<host>:<port>/healthz 验证连接性

  • 如果启用了身份验证,请确认授权标头与 MCP_API_KEY (Bearer 令牌) 匹配

  • 使用 MCP Inspector 或 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