麦克普克罗基戈
一个模型上下文协议(MCP)服务器,用于使用Go实现的Kroki.io将图表(Mermaid、PlantUML、GraphViz等)转换为图像。
特性
- 为各种图表类型(Mermaid、PlantUML、GraphViz、C4等)生成图表URL
- 将图表下载为图像文件(SVG、PNG、PDF、JPEG)
- SVG缩放支持
- 可通过环境变量配置Kroki服务器URL
- 建于 mcp-go SDK
安装
先决条件
- 达到1.24或更高
从源代码构建
git clone https://github.com/afar2liu/mcp-kroki-go.git
cd mcp-kroki-go
go mod tidy
go build -o mcp-kroki-go配置
环境变量
KROKI_SERVER_URL:自定义Kroki服务器URL(默认值:https://kroki.io)
例子:
export KROKI_SERVER_URL=https://your-kroki-server.comMCP客户端配置
添加到您的MCP客户端配置中(例如,Claude Desktop、Windsurf):
{
"mcpServers": {
"kroki": {
"command": "/absolute/path/to/mcp-kroki-go/mcp-kroki-go",
"env": {
"KROKI_SERVER_URL": "https://kroki.io"
}
}
}
}重要提示:
- 使用 完全绝对路径 到可执行文件(而不是目录)
- 例子:
/home/user/mcp-kroki-go/mcp-kroki-go(不是/home/user/mcp-kroki-go) - 确保文件具有执行权限:
chmod +x /path/to/mcp-kroki-go
用法
服务器提供两个工具:
1.生成图
为可以嵌入文档或在浏览器中查看的图表生成URL。
参数:
type(必填):图表类型(例如,“美人鱼”、“plantuml”、“graphviz”)content(必填):图表源代码outputFormat(可选):输出格式-“svg”(默认)、“png”、“pdf”、“jpeg”或“base64”
例子:
Generate a Mermaid diagram URL:
type: mermaid
content: graph TD; A-->B; B-->C;
outputFormat: svg2.下载_图片
将图表作为图像文件下载到本地系统。
参数:
type(必填):图表类型content(必填):图表源代码outputPath(必填):文件应保存的完整路径outputFormat(可选):输出格式(如果未指定,则从文件扩展名派生)scale(可选):SVG输出的缩放因子(默认值:1.0)
例子:
Download a PlantUML diagram:
type: plantuml
content: @startuml\nAlice -> Bob: Hello\n@enduml
outputPath: /home/user/diagram.svg
scale: 2.0支持的图表类型
- 美人鱼
- 植物UML
- 石墨
- c4工厂
- 艾克斯卡利绘图
- 实体关系图
- svgbob
- 名称
- 波浪记录仪
- 方块图
- 秒
- 行为诊断
- nwdiag
- 包装诊断
- rackdiag
- 执行
- 迪塔
- 织女星
- 素食主义者
支持的输出格式
- svg(可缩放矢量图形)
- png(便携式网络图形)
- pdf(可移植文档格式)
- jpeg(jpeg图像)
- base64(用于HTML嵌入的base64编码SVG)
错误处理
服务器为以下对象提供详细的日语错误消息:
- 图表语法无效
- 解码错误
- Kroki API的HTTP错误
- 文件系统错误
发展
项目结构
mcp-kroki-go/
├── main.go # Main server implementation
├── go.mod # Go module definition
├── go.sum # Dependency checksums
└── README.md # This file测试
# Build the project
go build
# Run the server (for testing with MCP client)
./mcp-kroki-go与TypeScript版本的差异
此Go实现在功能上与原始TypeScript版本等效,并具有以下增强功能:
- 环境变量支持:已添加
KROKI_SERVER_URL用于配置自定义Kroki服务器的环境变量 - 本地性能:Go实现提供了更好的性能和更低的内存使用率
- 单一二进制:编译为没有运行时依赖关系的单个可执行文件
- 跨平台:易于为不同平台(Linux、macOS、Windows)构建
许可证
麻省理工学院
学分
- 原始TypeScript实现: 麦克克罗基
- Kroki.io:https://kroki.io/
- MCP Go SDK:https://github.com/modelcontextprotocol/go-sdk
