endiagram-mcp について
endiagram-mcp は EN で記述した並行システムを、グラフ理論で決定論的に分析する MCP サーバーです。システムのモデリングと検証に向けたもので、計算に AI は使わず、結果は名称付きの数学定理に基づきます。
主な機能
- 01構造とクリティカルパスの分析
- 02不変条件と活性の検査
- 03エンティティ間の到達可能性の確認
- 04システムモデルの比較・進化
- 05サブシステムの統合・抽出
- 06SVG・PNG 図の生成
活用シーン
- 01並行システムのデッドロックリスク特定
- 02エンティティ間の経路とガードの検証
- 03モデル変更前後の構造比較
- 04システム図の生成
MCP 対応
構造分析、検証、比較、合成、図の描画を行うツールを MCP クライアントに提供します。stdio で起動でき、HTTP トランスポートのエンドポイントもあります。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://api.endiagram.com/mcpclaude mcp add --transport http dushyant30suthar-endiagram https://api.endiagram.com/mcp{"mcpServers":{"dushyant30suthar-endiagram":{"type":"http","url":"https://api.endiagram.com/mcp"}}}Cursor で開く{"servers":{"dushyant30suthar-endiagram":{"type":"http","url":"https://api.endiagram.com/mcp"}}}VS Code で開く{"mcpServers":{"dushyant30suthar-endiagram":{"type":"http","url":"https://api.endiagram.com/mcp"}}}{"mcpServers":{"dushyant30suthar-endiagram":{"serverUrl":"https://api.endiagram.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
7| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| node | string | いいえ | ノード名。指定すると、概要ではなく、この特定のノードの中心性指標(媒介中心性、近接中心性、固有ベクトル中心性)を返します。 |
| source | string | はい | EN ソースコード、または .en/.txt ファイルへのパス |
| detect_findings | string | いいえ | 'true' に設定すると、名前付きの構造上の検出項目をマークします。指定可能な値:unguarded-sink、single-cut-path、multi-cut-path。 |
詳細
@endiagram/mcp
EN Diagram 用の MCP サーバーです。グラフ理論に基づく決定論的な構造分析を行います。すべての結果は、名称のある数学的定理に裏付けられています。計算に AI は使用しません。
インストール
直接実行します:
npx @endiagram/mcp
または、グローバルにインストールします:
npm install -g @endiagram/mcp
接続
Claude Code
claude mcp add endiagram npx @endiagram/mcp
Claude Desktop
claude_desktop_config.json に追加します:
{
"mcpServers": {
"endiagram": {
"command": "npx",
"args": ["@endiagram/mcp"]
}
}
}
Cursor
プロジェクトのルートにある .cursor/mcp.json に追加します:
{
"mcpServers": {
"endiagram": {
"command": "npx",
"args": ["@endiagram/mcp"]
}
}
}
HTTP(インストール不要)
HTTP トランスポートに対応する MCP クライアントで使用できます:
https://api.endiagram.com/mcp
Smithery
smithery mcp add dushyant30suthar/endiagram
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
EN_API_URL | https://api.endiagram.com | EN Diagram サービスの API エンドポイント |
ツール
あらゆるシステムに関する 6 つの問いに答えるツールと、レンダリング用ツールがあります。各ツールは source(EN コード、または .en/.txt ファイルのパス)を受け取ります。ツール名は仕様ではなく、簡略表記です。呼び出す前に各説明を読んでください。compose と equivalent はモードベースであり、汎用アナライザーではありません。
| ツール | 回答する問い | 調整項目 |
|---|---|---|
structure | このシステムはどのようなものですか?形状、段階、ブリッジ、サイクル、クリティカルパス、支配木、最小カット、サブシステム、アクター、場所。 | detect_findings=true はリスク(unguarded-sink、single-cut-path、multi-cut-path)を検出します。node=X はノードごとの中心性(媒介中心性、近接中心性、固有ベクトル中心性)を返します。 |
invariant | 常に成り立つことは何ですか?保存則、T 不変量(持続可能なサイクル)、枯渇可能な集合、欠損度、可逆性。 | rules(1 行に 1 つ)で独自の主張を検証します。対応する形式は 4 つです:no bridge that is also hub · every path from X to Y passes through at least one of [A,B,C](先行関係) · no node with centrality above N · removing any single node disconnects at most N others。 |
live | デッドロックが発生する可能性はありますか?エンティティがあふれる可能性はありますか?サイフォン、トラップ、非有界サイクル、構造的活性、制限有界性。 | — |
reachable | X から Y に到達できますか?経路、距離、境界の通過を確認します。from/to にはエンティティ名またはアクション名を指定できます。 | defense_nodes=a,b,c は、すべての経路がガードで保護されているかを確認します。 |
equivalent | 2 つのシステムは同じですか?または、こちらを変更すると何が変わりますか? | 比較モード(source_a+source_b):編集距離とスペクトル共スペクトル性を確認します。発展モード(source+patch):通常の EN を追加します。- name は削除し、同名の項目は置き換えます。 |
compose | 部分をどのように組み合わせる(マージする)か、または部分を単独でどのように取り出す(抽出する)かを確認します。 | マージ:source_a+source_b+links(1 行ごとに a.entity=b.entity)。抽出:source+subsystem(名前は structure.subsystems から取得します)。 |
render | SVG または PNG の図を生成します。ユーザーが可視化を求めた場合にのみ呼び出してください。 | テーマ:Editorial、Primer、Carbon(それぞれに isDark を指定可能)、または color=#RRGGBB からシードを導出します。structure_layers はビットマスクです(1=サブシステム、2=パイプライン、4=サイクル、8=分岐、16=結合、32=ハブ、64=デッドロック、128=オーバーフロー)。 |
EN 構文
1 行に 1 つのステートメントを記述します:
actor do: action needs: input1, input2 yields: output1, output2
yield と needs で同じ名前を使うと、自動的に接続が作成されます:
customer do: place order needs: menu yields: order
kitchen do: prepare food needs: order yields: meal
waiter do: deliver needs: meal yields: served customer
モデリング
同じ名前は同じものを表します。必須の入力はすべて 1 つの needs: リストに記述します(AND)。2 つのアクションに同じ yield 名を指定すると、選択肢(OR)になります。あるアクションの yield を別のアクションが消費することで、順序を表します。状態を持つリソースは再度 yield して永続化し、一度限りのデータは消費済みのままにします。実際の原子的な粒度でモデル化し、各部分に独立してアクセスできる場合にのみ分割してください。
詳しくは endiagram.com をご覧ください。
テレメトリー
@endiagram/mcp は初回起動時にランダムなインストール ID を生成し、
~/.endiagram/install-id に保存します(モード 0600)。各リクエストで
X-Endiagram-Install-Id HTTP ヘッダーとして送信することで、IP アドレスだけでは追跡
できない問題(モバイルネットワーク、VPN、CGNAT では IP アドレスが共有されたり、頻繁に
変わったりします)のデバッグに向けて、同じインストールからのリクエストを関連付けられます。
ソースコード、ファイルパス、環境変数、個人を特定できる情報(PII)は 送信されません。 インストール ID は、ローカルで生成されるランダムな不透明な UUIDv4 です。
初回起動時には、開示内容とオプトアウトの手順が標準エラー出力に表示されます(標準出力には 表示されません。標準出力は MCP の JSON-RPC チャネルです)。 この通知はインストールごとに一度だけ表示され、その後は表示されません。
オプトアウト
次のいずれかの方法で、インストール ID を無効にできます。
- 環境変数として
ENDIAGRAM_TELEMETRY=offを設定します(0、false、noも 指定できます)。 ~/.endiagram/telemetryにoffという語を含むファイルを作成します。~/.endiagram/install-idを削除します(オプション 1 または 2 も設定されていない場合、次回 起動時に新しい ID が生成されます)。
いずれかの方法が有効な場合、X-Endiagram-Install-Id ヘッダーは
一切送信されません。サーバーは代わりに、関連付けに IP アドレスごとの HMAC cid を使用します。
これは短期間のセッション単位のトレースには問題なく機能します。
プライバシーポリシー全文:endiagram.com/privacy
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。