Skip to main content
Glama
harezadmm
by harezadmm

bizagi-mcp

プロセスの説明を、Bizagi Modelerでそのまま開けるBPMN 2.0ダイアグラムに変換します。

BPMN 2.0ダイアグラムを生成・読み取り・監査・プレビューし、Windows上のBizagi Modelerデスクトップアプリを操作するMCPサーバーです。

自動レイアウトされた購買要求プロセス

60行のJSONスペックから生成されました。上のすべての座標は計算によって得られたもので、手作業で配置されたものではありません。


なぜこれが存在するのか

Bizagi ModelerにはスクリプトAPIがありません。サポートしている唯一の統合経路は、Export / Importタブを介したオープンなBPMN 2.0 XML形式です。

しかし、単純な生成を役に立たなくする落とし穴があります: Bizagiはファイルに書かれた座標をそのままインポートします。 ダイアグラムをレイアウトしてくれるわけではありません。ジオメトリなしで構造的に完璧なBPMNファイルを出力すると、原点に積み重なったボックスの山として開かれます。

したがって、このサーバーの難しい部分はXMLではありません。レイアウトです。

Related MCP server: camunda-mcp

機能

ツール

説明

get_spec_reference

スペック形式: すべてのノードタイプ、フィールド、ルール

create_process

説明 → インポート可能な .bpmn ファイル、座標を計算済み

update_process

既存の .bpmn を編集(ノードとフローの追加/変更/削除)、再レイアウト

read_process

.bpmn を解析 → 構造化JSON、読みやすいウォークスルー、または編集可能なスペック

list_processes

フォルダーをスキャンして各BPMNファイルを要約

validate_process

BPMN 2.0ルールとモデリング規約に照らして監査、各指摘に対する修正方法付き

render_preview

SVGにレンダリング — Bizagiを開かずに結果を確認

export_documentation

プロセスドキュメントをMarkdownとして出力(アウトライン+監査)

bizagi_status

ここからBizagi Modelerを操作できるかどうか

bizagi_open

Bizagi Modelerを起動(ファイルを指定することも可能)

bizagi_import_bpmn

Export / Import ▸ BPMN を操作し、実際にインポートされたか検証

bizagi_export_bpmn

開いている図に対して Export ▸ BPMN を操作

最初の8つは純粋なPythonで、Bizagiがインストールされているかどうかに関係なく、任意のOSで動作します。Windowsが必要なのは4つの bizagi_* ツールだけです。

レイアウトエンジン

レーンを考慮したレイヤードレイアウト。実行順に:

  1. サイクルの解消 — グラフをレイヤリング可能にする

  2. 最長パスレイヤリング → 各ノードの水平方向の列

  3. (列, レーン)ごとの重心順序付け → 交差線を削減

  4. 適応型レーンの高さ — 各バンドが保持する最も高いセルに合わせてサイズ調整

  5. 予約ストリップ — 列をスキップする分岐を持つレーンの上部に沿ったバイパス帯と、ループバック用の下部チャネル帯

  6. 障害物を迂回して通り、突き抜けない直交ルーティング

  7. 最終パスとしてのラベル分離

保証されること

これらは願望ではありません。それぞれが、ルールを削除すると失敗するテストです:

  • 2つの図形が重ならない

  • 端点ではない図形をエッジが通過しない

  • すべての要素が自身のプール内に配置される

  • メッセージフローはプールの空の回廊を流れ、プール内を水平に横切ることはない

  • 各メッセージフローはその回廊内に専用のラインを持ち、回廊のサイズはそれを横切るフローの数から決まる — そのためラベルが重ならない

  • ループバックはそれぞれ、レーンのサイズ調整時に予約されたストリップ内に専用チャネルを持つ

  • 列をスキップする分岐は、自身のレーン内で、スキップするアクティビティの上を迂回する

  • ゲートウェイの分岐は視覚的に異なるポイントから出るため、2方向の分岐が1本の矢印に見えない

  • 境界イベントのフローは下向きに出て、ホストアクティビティを通って上に戻ることはない

  • 注釈とデータストアは、それが説明するものの横に配置される — 関連付けがない場合は、キャンバスの外ではなく、宣言されたプールの内側に配置される

  • ラベルが他のラベルや図形の上に書かれることはない

設計メモ

間違えやすい判断がいくつかあります:

  • ラベルの幅はテキストと同じです。 すべてのラベルに平らなボックスを予約すると、長いラベル同士の衝突が、予約ボックスを測定するものには見えなくなります。

  • 予約スペースはセンタリングの対象から除外する必要があります。 チャネルのためのスペースを確保するためにレーンを広げ、その中で図形を中央寄せすると、新しいスペースの半分が上部のパディングとして戻されてしまいます — チャネルが薄くなりすぎて使えなくなります。

  • 迂回は図形と図形の間の隙間に入れるべきで、すべての図形の周りを回るべきではありません。 すべての上や下を通すルーティングでは、ラインがプールの外に出てしまい、そこに到達する垂直線が途中ですべてのレーンを横切ることになります。

  • データストアは多くのアクティビティと関連付けることができますが、配置されるのは1つの横です。 関連付けごとに配置すると、以前の配置があった場所のレーンに穴が残ります。

インストール

pip install -e .

Windowsデスクトップツールの場合:

pip install -e ".[desktop]"

Python ≥ 3.10。

Claudeへの登録

claude_desktop_config.json (Windows: %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "bizagi-modeler": {
      "command": "bizagi-mcp",
      "env": {
        "BIZAGI_MCP_ROOT": "C:\\Users\\you\\Documents\\Bizagi"
      }
    }
  }
}

bizagi-mcp がPATHにない場合:

{
  "mcpServers": {
    "bizagi-modeler": {
      "command": "python",
      "args": ["-m", "bizagi_mcp.server"],
      "env": { "BIZAGI_MCP_ROOT": "C:\\Users\\you\\Documents\\Bizagi" }
    }
  }
}

Claude Codeの場合: claude mcp add bizagi-modeler -- bizagi-mcp

環境変数

変数

説明

BIZAGI_MCP_ROOT

すべてのファイル読み書きをこのフォルダーに制限します。強く推奨します。

BIZAGI_MODELER_PATH

自動的に見つからない場合の BizagiModeler.exe または BizAgiMC.exe への完全パス

使い方

ダイアグラムを生成する

"休暇申請をモデル化してください: 従業員が申請し、マネージャーが承認または却下し、HRが結果を記録します。D:\Processes\leave.bpmn に保存してください。"

次にBizagi Modelerで: Export / Import ▸ Import ▸ BPMN

既存のモデルを分析する

最初にBizagiからエクスポートし(Export / Import ▸ Export ▸ BPMN)、次に:

"D:\Processes\purchasing.bpmn を読み、それを説明し、何が問題か教えてください。"

examples/purchase_request.json(スペック)、.bpmn(生成結果)、.svg(プレビュー)を参照してください。

検証ルール

構造 (BPMN001BPMN020、重大度 error / warning)

開始イベントまたは終了イベントの欠落・到達不能な要素・行き止まり・プールを横切るシーケンスフロー・単一プール内のメッセージフロー・条件なしで分岐するゲートウェイ・イベントベースゲートウェイのターゲット・暗黙の分岐と合流・非アクティビティ上の境界イベント・重複ID・条件も持つデフォルトフロー・1入力1出力のゲートウェイ。

規約 (BP001BP017、重大度 warning / info)

アクティビティの命名(動詞+目的語)・質問形式になっていないゲートウェイ・ラベルのない分岐・ドキュメンテーションの網羅性・レーンのないプール・空のレーン・図のサイズ・重複名・メッセージを交換しないプール。

すべての指摘は、問題のある要素と、それを修正する具体的な手順を明示します。

デスクトップアプリの操作

bizagi_open は信頼できる方法です。Modelerはファイルをコマンドライン引数として受け取るため、メニューを操作する必要がありません。

bizagi_import_bpmn はリボンを操作しますが、その点を正直に明かしています:

  • フォアグラウンドを取得し、実際に取得できたことを検証します。Windowsは、フォアグラウンドを所有していないプロセスへの SetForegroundWindow を拒否します。また、set_focus() は成功したかのように返ります — そのままクリックすると、ユーザーが作業中の何かに実際のマウスクリックが送られます。

  • 図のタブ数を前後で数え、その証拠に基づいて imported: true / false を報告します。希望的観測ではありません。

  • 両方のカウントはウィンドウを前面に上げた状態で取得します。背面にあるウィンドウは不完全なアクセシビリティツリーを返す可能性があるためです。

バックグラウンドモードはありません

インポートは、マシンが他の作業に使われている間は実行できません。Modeler 4.3.0.008 に対して3つの経路をテストしましたが、すべて閉じられています:

経路

結果

UI Automation Invoke pattern

リボンタブはパターンを一切公開しない

PostMessage mouse messages

候補となるすべてのウィンドウハンドルで無視される

BizAgiMC.exe file.bpmn

何もインポートせずに終了コード0で終了する

リボンは、フォーカスされたウィンドウに対する実際のマウス入力にのみ反応します。無人実行の場合は、Bizagi専用のWindowsセッションまたはVMを用意してください。それを記録に残して誰も再試行しないようにしたい場合: この表がその記録です。

セキュリティ

  • パスはチェックされる前に完全に解決され(~..、シンボリックリンク)、設定されている場合は BIZAGI_MCP_ROOT 内に制限されます

  • XML解析は、利用可能な場合は defusedxml を経由します(XXE、billion laughs)

  • overwrite=true なしでファイルが上書きされることはありません

  • Bizagiは引数リストで起動され、シェルを使用しないため、ファイル名がコマンドになることは決してありません

  • すべてのエラーはデータとして返されます({"ok": false, ...})。トレースバックは返されません

テスト

pip install -e ".[dev]"
pytest -q

72のテスト: スペックの正規化、XSD要素の順序、BPMNDIの完全性、上記のすべてのレイアウト保証、ラベル衝突、ラウンドトリップ、各検証ルール、パストラバーサル、リボンボタン選択、フォアグラウンド検証、そしてすべてのツールのエラー契約。

既知の制限

  • .bpm は読み取られません。 これはBizagi独自の形式です。最初にBPMNにエクスポートしてください。list_processes.bpm ファイルを一覧表示し、フラグを立てます。

  • デスクトップ操作はWindowsのみで、pywinauto が必要です。

  • 図は1レベル深さまで生成されます。 サブプロセスは折りたたまれた図形として表示され、その内容は生成されません。

  • レイアウトの整然さは、ファイルに書き込まれるジオメトリに対して保証されます。 Bizagiはノード名を独自のルールで配置しますが、これはダイアグラム交換セクションでは制御できません。

ライセンス

MIT — LICENSE を参照してください。

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Create, validate, convert & extract compliant e-invoices (UBL, Factur-X, ZUGFeRD, XRechnung)

  • Generate cloud architecture diagrams, flowcharts, and sequence diagrams.

  • Convert Revit files to XKT, IFC, or DWG and query BIM data via natural language.

View all MCP Connectors

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/harezadmm/bizagi-mcp'

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