使用说明
麦克克罗基
可流式传输的HTTP MCP服务器,用于本地或远程Kroki实例。
概述
此MCP(模型上下文协议)服务器提供了使用Kroki生成、验证和管理图表的工具。它支持Kroki中可用的所有图表类型,并提供可流式传输的HTTP接口。
特性
- 支持27+种图表类型:包括PlantUML、Mermaid、GraphViz、D2、BPMN等等
- 每种图表类型4个工具类别:
generate_diagram_xxx:生成各种格式的图表(SVG、PNG、PDF、JPEG)validate_diagram_xxx:验证图表语法(适用于具有架构支持的图表类型)obtain_svg_from_diagram:从Kroki URL获取图表内容save_diagram:将图表从URL保存到本地文件
- OAuth 2.1身份验证:可选OAuth 2.1身份验证支持(可以禁用)
- 令牌自检或JWKS验证
- 兼容任何OAuth 2.1提供程序(Keycloak、Auth0、Azure AD、Okta等)
- 看 OAUTH.md 有关配置详细信息
支持的图表类型
- 方框图族:blockdiag、seqdiag、actdiag、nwdiag、packetdiag、rackdiag
- 通用:bpmn、字节字段、c4plantuml、d2、dbml、ditaa、erd、excalidraw
- 代码和架构:graphviz、美人鱼、nomnoml、pikchr、plantuml、structurizer
- 专业:svgbob、符号器、umlet、vega、vegalite、wavedrom、wireviz
Docker快速入门
备注:Docker Hub镜像将在创建第一个版本(v1.0.0)后可用。 现在,使用Docker Compose在本地构建和运行(见下文)。 要发布图像,请在main上创建一个版本标记:
git tag -a v1.0.0 -m "Release v1.0.0" && git push origin v1.0.0
v1.0.0发布后,运行mcp-kroki的最简单方法是使用Docker Hub中的预构建Docker镜像:
# Pull the latest image
docker pull aescanero/mcp-kroki:latest
# Run the container
docker run -d -p 8084:8084 \
-e KROKI_URL=http://your-kroki-server:8000 \
aescanero/mcp-kroki:latest
Docker Hub
存储库: https://hub.docker.com/r/aescanero/mcp-kroki
可用标签:
latest-最新稳定版本1.0.0-具体版本(示例)1.0-1.0版本中的最新补丁1-主要版本1的最新版本
使用Docker Compose
创建一个 docker-compose.yml:
version: "3.8"
services:
kroki:
image: yuzutech/kroki
ports:
- "8000:8000"
mcp-kroki:
image: aescanero/mcp-kroki:latest
ports:
- "8084:8084"
environment:
- KROKI_URL=http://kroki:8000
- HOST=0.0.0.0
- PORT=8084
depends_on:
- kroki
然后运行:
docker-compose up -d
Kubernetes/Helm快速入门
使用Helm将MCP Kroki部署到Kubernetes集群:
# Add the Helm repository
helm repo add mcp-kroki https://aescanero.github.io/mcp-kroki
helm repo update
# Install the chart (includes Kroki server)
helm install my-mcp-kroki mcp-kroki/mcp-kroki
# Or with custom values
helm install my-mcp-kroki mcp-kroki/mcp-kroki \
--set service.type=LoadBalancer \
--set ingress.enabled=true
Helm存储库
存储库URL: https://aescanero.github.io/mcp-kroki
特征:
- 在一个命令中部署MCP Kroki和Kroki服务器
- 可选入口配置
- 水平Pod自动缩放支持
- 基于ConfigMap的配置
- 生产就绪默认值
有关Helm chart的详细文档,请参阅 HELM.md.
从源安装
- 克隆存储库:
git clone https://github.com/aescanero/mcp-kroki.git
cd mcp-kroki
- 安装依赖项:
pip install -r requirements.txt
- 配置环境变量:
cp .env.example .env
# Edit .env to set your Kroki server URL
配置
创建一个 .env 包含以下变量的文件:
# Kroki server URL (local or remote instance)
KROKI_URL=http://localhost:8000
# Server configuration
HOST=0.0.0.0
PORT=8084
运行服务器
直接使用Python:
python mcp_kroki_server.py
使用uvicorn:
uvicorn mcp_kroki_server:app --host 0.0.0.0 --port 8084
服务器将在以下时间可用 http://localhost:8084
用法示例
生成PlantUML图
{
"tool": "generate_diagram_plantuml",
"arguments": {
"diagram_source": "@startuml\nAlice -> Bob: Hello\n@enduml",
"output_format": "svg"
}
}
验证美人鱼图
{
"tool": "validate_diagram_mermaid",
"arguments": {
"diagram_source": "graph TD\n A-->B"
}
}
从URL获取SVG
{
"tool": "obtain_svg_from_diagram",
"arguments": {
"diagram_url": "http://localhost:8000/plantuml/svg/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000"
}
}
将图表保存到文件
{
"tool": "save_diagram",
"arguments": {
"diagram_url": "http://localhost:8000/mermaid/svg/...",
"output_path": "/path/to/diagram.svg"
}
}
可用工具
生成工具(27种)
每种图表类型都有一个 generate_diagram_{type} 工具接受:
diagram_source(string):图表源代码output_format(字符串,可选):输出格式(svg、png、pdf、jpeg、base64)。默认值:svg
验证工具(7种)
验证可用于支持模式或解析器验证的图表类型:
validate_diagram_vegavalidate_diagram_vegalitevalidate_diagram_dbmlvalidate_diagram_mermaidvalidate_diagram_plantumlvalidate_diagram_bpmnvalidate_diagram_graphviz
每个验证工具都接受:
diagram_source(string):要验证的图表源代码
实用工具
-
obtain_svg_from_diagram:从Kroki URL获取图表内容diagram_url(string):完整的Kroki图URL
-
save_diagram:将图表从URL保存到本地文件diagram_url(string):完整的Kroki图URLoutput_path(string):保存的本地文件路径
健康检查
检查服务器状态:
curl http://localhost:8084/health
答复:
{
"status": "ok",
"kroki_url": "http://localhost:8000",
"supported_diagrams": 27,
"validatable_diagrams": 7
}
需求
- Python 3.8+
- Kroki服务器(本地或远程)
- 看
requirements.txt对于Python依赖项
设置本地Kroki服务器
使用Docker:
docker run -d -p 8000:8000 yuzutech/kroki
使用Docker Compose:
version: "3"
services:
kroki:
image: yuzutech/kroki
ports:
- "8000:8000"
部署
自动发布
该项目使用GitHub Actions在推送新版本标签时自动构建和发布Docker镜像和Helm图表。
要创建新版本,请执行以下操作:
# Create a version tag (following semantic versioning)
git tag -a v1.0.0 -m "Release version 1.0.0"
# Push the tag to GitHub
git push origin v1.0.0
GitHub操作将自动:
Docker:
- 为多个平台(linux/amd64、linux/arm64)构建Docker镜像
- 用多个版本(最新版本、1.0.0、1.0、1)标记图像
- 推送到Docker Hubhttps://hub.docker.com/r/aescanero/mcp-kroki
赫尔姆:
- 更新Helm图表版本
- 打包Helm图表
- 发布到GitHub页面https://aescanero.github.io/mcp-kroki
有关发布过程的详细信息,请参阅 发布.md.
发展
在当地发展
# Install dependencies
pip install -r requirements.txt
# Run with auto-reload
uvicorn mcp_kroki_server:app --reload --host 0.0.0.0 --port 8084
在本地构建Docker镜像
# Build the image
docker build -t mcp-kroki:dev .
# Run the image
docker run -p 8084:8084 -e KROKI_URL=http://localhost:8000 mcp-kroki:dev
许可证
有关详细信息,请参阅LICENSE文件。
贡献
欢迎投稿!请随时提交拉取请求。
如何贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
