Kroki-MCP について
Kroki-MCP は、Go で書かれたコマンドラインツールおよび MCP 連携で、Kroki バックエンドを通じて PlantUML や Mermaid などのテキスト図の定義を画像に変換します。ローカルとリモートの Kroki サーバーに対応し、設定を柔軟に変更できます。
主な機能
- 01SVG と PNG の出力形式
- 02SSE と STDIO の動作モード
- 03設定可能な Kroki サーバーのホスト
- 04MCP ツールとして公開される図変換機能
活用シーン
- 01チャット内で PlantUML や Mermaid のコードを図として表示
- 02Docker Compose 環境でローカルの Kroki サーバーに接続
MCP 対応
本プロジェクトは MCP サーバーであり、図の変換機能を MCP ツールとして提供します。SVG は マークアップテキスト、PNG は画像として返されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Kroki-MCP
Kroki-MCP は、Kroki バックエンドを使用してテキスト形式の図(PlantUML、Mermaid など)を画像に変換するコマンドラインツールおよび MCP 統合機能です。ローカルとリモートの Kroki サーバーに対応しており、柔軟な設定と複数の出力形式を利用できます。
機能
- モード:
- SSE: Server-Sent Events を使用して結果をストリーミングします。
- STDIO(デフォルト): 標準入力から図のコードを読み取り、標準出力に出力します。
- 出力形式:
svg(デフォルト)とpngに対応しています。SVG はマークアップテキストとして返され、チャット内(例:Claude Desktop)にインラインで表示した際に、サイズが適切になり、透過状態が保たれるよう正規化されます。PNG は画像として返されます。 - Kroki サーバー: バックエンドのホストを設定できます(デフォルト:
https://kroki.io)。 - 拡張性: ほかの図の種類や出力形式への対応を簡単に追加できます。
- MCP 統合: github.com/mark3labs/mcp-go を使用して、図の変換機能を MCP ツールとして公開します。
使用方法
# Default (SSE mode, PNG, default Kroki host)
kroki-mcp
# Specify output format
kroki-mcp --format svg
# Use STDIO mode
kroki-mcp --mode stdio --format svg
# Specify a custom Kroki server
kroki-mcp --kroki-host http://localhost:8000
設定
| オプション | 説明 | 型 | デフォルト |
|---|---|---|---|
--host, -h | サーバーのホストアドレス | string | localhost |
--port, -p | サーバーのポート | int | 5090 |
--mode, -m | 動作モード(sse または stdio) | string | stdio |
--format, -f | 出力形式(png、svg) | string | png |
--kroki-host | Kroki サーバーの URL | string | https://kroki.io |
--log-level | ログレベル(debug、info、warn、error) | string | info |
--log-format | ログ形式(text または json) | string | text |
プロジェクト構成
kroki-mcp/
├── cmd/
│ └── kroki-mcp/ # Main CLI and MCP server entry point
├── internal/
│ ├── kroki/ # Kroki client logic (HTTP, formats)
│ ├── config/ # Configuration management (flags, env, files)
│ └── mcp/ # MCP tool/server integration
├── test/ # Unit and integration tests
├── Dockerfile # Docker build file
├── docker-compose.yml # Docker Compose for dev environment
├── go.mod # Go module definition
├── README.md # Project documentation
└── .gitignore # Git ignore file
実装手順
- Go プロジェクトのひな形を作成します。
- デフォルトの SSE モードとフォーマットフラグを備えた CLI を実装します。
- すべての形式に対応する Kroki クライアントを実装します。
- SSE モードと STDIO モードを実装します。
- mcp-go と統合し、MCP ツールに対応します。
- エラー処理とテストを追加します。
- 使用方法を文書化します。
例:MCP サーバーとして実行する
ソースから Kroki-MCP を MCP サーバーとして実行するには、次のようにします。
go run github.com/utain/kroki-mcp/cmd/kroki-mcp@latest --mode sse --format png --kroki-host https://kroki.io
次のように、MCP 設定ファイルで MCP サーバーを設定できます。
{
"mcpServers": {
"kroki-mcp": {
"command": "go",
"args": [
"run",
"github.com/utain/kroki-mcp/cmd/kroki-mcp@latest",
"-m", "stdio",
"-f", "png",
"--kroki-host", "https://kroki.io"
]
}
}
}
Docker を使用した開発
ローカルでの開発とテストには、Docker と docker-compose を使用できます。
Docker でビルドして実行する
docker build -t kroki-mcp .
docker run --rm -it kroki-mcp --help
docker-compose を使用する(ローカル Kroki サーバーを使用)
docker-compose up --build
- これにより、Kroki サーバーと kroki-mcp サービスの両方が起動します。
- kroki-mcp は
http://kroki:8000の Kroki サーバーに接続します。
貢献
このプロジェクトへの貢献方法については、CONTRIBUTING.md を参照してください。
変更履歴
リリース履歴については、CHANGELOG.md を参照してください。
関連プロジェクト
ライセンス
このプロジェクトはMIT Licenseのもとでライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。