mcpField
P
Power BI Authoring MCP Server (Local)

Power BI Authoring MCP Server (Local)

ローカル
github.com/microsoftデータ・分析1.3k4 週間前に更新

Power BI Authoring MCP Server (Local) について

Power BI Authoring MCP Server は、AI エージェントが自然言語で Power BI セマンティックモデルを作成・変更できるようにするローカルの MCP サーバーです。Power BI Desktop、Fabric ワークスペース、PBIP ファイルを扱うモデラーや開発者を対象としています。README では変更前のモデルのバックアップを推奨し、Fabric ではホスト型のリモートサーバーの利用も案内しています。

主な機能

  1. 01テーブル、列、メジャー、リレーションシップの作成と更新
  2. 02多数のモデルオブジェクトに対する一括操作
  3. 03DAX クエリの実行と検証
  4. 04TMDL と Power BI プロジェクトファイルの管理
  5. 05計算グループ、RLS ロール、階層への対応

活用シーン

  1. 01一括リネームによる命名規則の統一
  2. 02複数言語へのモデル翻訳の生成
  3. 03繰り返し定義されたメジャーの計算グループやパラメーターへのリファクタリング

MCP 対応

stdio 経由でローカル実行される MCP サーバーで、connection_operations、measure_operations、dax_query_operations などのモデリング用ツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"com-microsoft-powerbi-modeling": {
"command": "npx",
"args": [
"-y",
"@microsoft/powerbi-modeling-mcp"
]
}
}
}
起動コマンドnpx -y @microsoft/powerbi-modeling-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@microsoft/powerbi-modeling-mcp1.0.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

✨ Power BI Authoring MCP サーバー

重要

Fabric ワークスペースでセマンティックモデルを作成する場合は、リモート(ホスト型)の Power BI Authoring MCP サーバーを使用してください。ローカルへのインストールは不要で、更新は Microsoft が管理します。リモートとローカルのオプションを比較するには、Power BI Authoring MCP serverをご覧ください。

Power BI Authoring MCP Server は、MCP specificationを実装し、AI エージェントと Power BI セマンティックモデルをシームレスに接続します。

Power BI Authoring MCP Server は、ローカル MCP サーバーを通じて、AI エージェントに Power BI のセマンティックモデリング機能を提供します。これにより、開発者や AI アプリケーションは、自然言語でモデリングの変更を実行する方法から、自律型 AI エージェントによる開発ワークフローまで、まったく新しい方法で Power BI モデルを操作できます。

powerbi-modeling-mcp-diagram

💡 何ができますか?

  • 🔄 自然言語でセマンティックモデルを構築・変更 - AI アシスタントに必要なことを伝えると、この MCP サーバーを使用して、Power BI Desktop と Fabric のセマンティックモデル全体でテーブル、列、メジャー、リレーションシップなどを作成、更新、管理します。

  • ⚡ 大規模な一括操作 - AI アプリケーションは、何百ものオブジェクトに対するモデリング操作を同時に実行できます。一括名称変更、一括リファクタリング、モデルの翻訳、モデルのセキュリティルールなどを、トランザクションのサポートとエラー処理を備えて実行し、何時間もの反復作業を数秒に短縮します。

  • ✅ モデリングのベストプラクティスを適用 - モデルに対してモデリングのベストプラクティスを簡単に評価し、実装できます。

  • 🤖 エージェント型開発ワークフロー - TMDL と Power BI Project ファイルを使用できるため、AI エージェントがセマンティックモデルのコードベース全体で、複雑なモデリングタスクを自律的に計画、作成、実行できます。

  • 🔍 DAX のクエリと検証 - AI アシスタントはモデルに対して DAX クエリを実行、検証できるため、メジャーのテスト、計算のトラブルシューティング、データの探索に役立ちます。

📹 エンドツーエンドのデモの動画をご覧ください。

警告

  • AI エージェントをセマンティックモデルに接続する際は注意してください。基盤となる LLM が予想外または不正確な結果を生成し、意図しない変更につながる可能性があります。操作を実行する前に、必ずモデルのバックアップを作成してください。
  • LLM は、データやメタデータなど、セマンティックモデル内の機密情報をログや応答で意図せず公開する可能性があります。チャットセッションを共有する際は注意してください。データのプライバシーと LLM プロバイダーをご覧ください。
  • Power BI Authoring MCP server はモデリング操作のみを実行できます。レポートページや、ダイアグラムのレイアウトなどのセマンティックモデル要素といった、ほかの種類の Power BI メタデータは変更できません。
  • 選択する AI モデルは、受け取る応答の品質と関連性に直接影響します。最良の結果を得るには、GPT-5 や Claude Sonnet 4.5 など、深い推論が可能なモデルを選択してください。利用可能なモデルについて詳しくは、GitHub Copilot AI モデルの比較をご覧ください。

📦 インストール

この MCP サーバーをインストールする最も簡単な方法は、Visual Studio Code extension 拡張機能を GitHub Copilot と組み合わせて使用することです。ただし、ほかの MCP クライアントにも手動でインストールできます。

Visual Studio Code(推奨)
  1. Visual Studio Codeをインストールします。

  2. GitHub Copilot Chat拡張機能をインストールします。

  3. Power BI Authoring MCP Visual Studio Code 拡張機能をインストールします。

    VS Code のインストール

  4. GitHub Copilot チャットを開き、powerbi-modeling-mcpが利用可能で、選択されていることを確認します。

    VS Code MCP ツール

メモ

利用可能なツールの一覧にpowerbi-modeling-mcpが表示されない場合は、GitHub.com の Copilot 設定でCopilot の MCP サーバーオプションが有効になっていることを確認してください。エンタープライズアカウントでは、このオプションは既定で無効になっており、管理者が有効にする必要があります。

Copilot で MCP サーバーを有効化

手動

この MCP サーバーは、ほかの IDE、CLI、MCP クライアントでも設定できます。

Node パッケージ実行ツール(NPX)(Node.jsが必要です)

JSON 構成を MCP クライアントに追加します。Node は、@microsoft/powerbi-modeling-mcp npm パッケージから MCP サーバーを自動的にダウンロードします。

{
	"powerbi-authoring-local": {
			"type": "stdio",
			"command": "npx",
			"args": [
				"-y",
				"@microsoft/powerbi-modeling-mcp@latest",
				"--start"				
			]
		}	
}
EULA に同意する

npm パッケージを使用する前に、Power BI Authoring MCP Server EULAを確認して同意する必要があります。同意するまで、MCP サーバーはほかのすべてのツール呼び出しをブロックします。

対話型セッションでは、明示的に許可すると、エージェントがユーザーに代わってaccept_eulaツールを呼び出せます。サーバーは同意内容をマシン上のローカル構成に保存するため、再度確認を求められることはありません。

無人実行の場合は、コマンドライン引数または環境変数を使用して EULA に同意します。

  • サーバーのargs配列に--accepteulaを追加します。
  • サーバーの環境でPBI_MODELING_MCP_ACCEPT_EULAをtrueに設定します。

これらのオプションは、EULA を確認して同意した後にのみ使用してください。

手動ダウンロード

  1. 以下の URL を使用して、必要なバージョンの VSIX パッケージをダウンロードします。
    • テンプレート:https://marketplace.visualstudio.com/_apis/public/gallery/publishers/analysis-services/vsextensions/powerbi-modeling-mcp/[version]/vspackage?targetPlatform=[platform]
    • 例(バージョン0.1.9、プラットフォームwin32-x64):https://marketplace.visualstudio.com/_apis/public/gallery/publishers/analysis-services/vsextensions/powerbi-modeling-mcp/0.1.9/vspackage?targetPlatform=win32-x64
  2. ダウンロードした.visxファイルの名前を.zipに変更します。
  3. 内容を任意のフォルダーに展開します。例:C:\MCPServers\PowerBIAuthoringMCP
  4. \extension\server\powerbi-modeling-mcp.exeを実行します。
  5. コンソールから MCP JSON 登録情報をコピーし、使用する MCP クライアントツールに登録します。

ほとんどの MCP クライアントで動作する構成例:

{
	"powerbi-authoring-local": {
		"type": "stdio",
		"command": "C:\\MCPServers\\PowerBIAuthoringMCP\\extension\\server\\powerbi-modeling-mcp.exe",
		"args": [
			"--start"                
		],
		"env": {}			
	}	
}

🚀 はじめに

まず、Power BI セマンティックモデルに接続する必要があります。接続先は、Power BI Desktop、Fabric ワークスペース、または Power BI Project(PBIP)ファイルです。

  • Power BI Desktop の場合:

    Power BI Desktop の '[File Name]' に接続
    
  • Fabric ワークスペース内のセマンティックモデルの場合:

    Fabric ワークスペース '[Workspace Name]' のセマンティックモデル '[Semantic Model Name]' に接続
    
  • Power BI Project ファイルの場合:

    PBIP フォルダーの '[Path to the definition/ TMDL folder in the PBIP]' からセマンティックモデルを開く
    

接続が確立したら、自然言語で AI エージェントにモデリングの変更を依頼できます。まずは、以下のシナリオを試してみてください。

シナリオ例
シナリオプロンプトの例
命名規則を分析し、一括で名前を変更します。モデルの命名規則を分析し、一貫性を確保するための名前変更を提案してください。
「Sales」テーブルの命名規則を分析し、モデル全体に同じパターンを適用してください。
ドキュメント作成に向けて、モデル全体に説明を設定します。すべてのメジャー、列、テーブルに説明を追加して、その目的を明確にし、DAX コードのロジックをわかりやすい言葉で説明してください。
セマンティックモデルを翻訳します。テーブル、列、メジャーを含むモデルのフランス語訳を生成してください。
メジャーを計算グループまたは UDF にリファクタリングします。メジャー 'Sales Amount 12M Avg' と 'Sales Amount 6M Avg' を計算グループにリファクタリングし、新しいバリエーションとして 24M と 3M を含めてください。
クエリをリファクタリングして、セマンティックモデルのパラメーターを使用します。すべてのテーブルの Power Query コードを分析し、データソースの構成を特定して、データソースの場所を簡単に切り替えられるようにセマンティックモデルのパラメーターを作成してください。
複数のモデルに対して DAX クエリのベンチマークを実施します。セマンティックモデル 'V1' と 'V2 に接続してください。次の DAX クエリを両方のモデルに対してベンチマークしてください。[DAX Query]
セマンティックモデルをドキュメント化します。Power BI セマンティックモデルの完全かつプロフェッショナルなドキュメントを Markdown ドキュメント(.md)として生成してください。テーブルのリレーションシップを示すシンプルな mermaid 図を使用してください。各メジャーについて、DAX コードとビジネスロジックの説明をビジネスユーザーにわかりやすい名前で記載してください。行レベルのフィルターを記載してください。Power Query コードを分析してデータソースを記載してください。

ヒント

上記のシナリオはあくまで例です。この MCP サーバーは、あらゆる種類のモデル変更に対応するモデリングツールをエージェントに提供します。適切なプロンプトとコンテキストがあれば、ほぼあらゆるモデリングタスクを自動化できます。

🛠️ 利用可能なツール

ツール名機能
connection_operationsPower BI Desktop または Fabric ワークスペースに接続します
database_operationsセマンティックモデルを管理します。接続、作成、更新、データベースの一覧表示、TMDL フォルダーのインポート/エクスポート、Fabric へのデプロイを行います
transaction_operationsデータベースのトランザクションを制御します(開始、コミット、ロールバック、ステータスの取得)
model_operationsモデル全体を操作します(取得、作成、更新、更新処理、統計情報の取得、名前変更)
table_operationsテーブルを管理します(作成、更新、削除、取得、一覧表示、更新処理、名前変更)
column_operationsテーブルの個々の列を管理します(作成、更新、削除、取得、一覧表示、名前変更)
measure_operations個々の DAX メジャーを管理します(作成、更新、削除、取得、一覧表示、名前変更、テーブル間の移動)
relationship_operationsテーブル間のリレーションシップを操作します(作成、更新、削除、有効化/無効化、検索)
dax_query_operationsモデルに対して DAX クエリを実行し、検証します
trace_operationsセマンティックモデルでトレース操作を実行し、Analysis Services イベントをキャプチャして分析します。
partition_operationsテーブルのパーティションを管理します(作成、更新、削除、特定のパーティションの更新処理)
user_hierarchy_operationsユーザー定義の階層を操作します(作成、更新、レベルの削除、並べ替え)
calculation_group_operations時系列分析などの計算に使用する計算グループと計算項目を管理します
security_role_operationsセキュリティロールと行レベルセキュリティ(RLS)のテーブル権限を設定します
perspective_operationsパースペクティブとそのメンバーを管理します(対象者に合わせてフィルターされたモデルのビュー)
named_expression_operations名前付き式と Power Query パラメーターを操作します(作成、更新、削除、取得、一覧表示、名前変更)
function_operations個々の DAX ユーザー定義関数を管理します
culture_operations多言語サポート用のカルチャを管理します(作成、更新、削除、有効なカルチャ名の取得)
object_translation_operations異なるカルチャ/言語間でモデルオブジェクトの翻訳を処理します
calendar_operationsカレンダーオブジェクトと時系列分析用の列グループを管理します
query_group_operationsPower Query 式のクエリグループを整理、管理します

メモ

  • 利用可能なツールの説明や、使用例を AI に尋ねることができます。たとえば、次のように尋ねてください:Tell me with some examples what I can do with the Power BI Authoring MCP server

▶️ 利用可能なプロンプト

この MCP サーバーには、使い始める際に役立つ組み込みプロンプトが用意されています。Visual Studio Code では、チャットで / コマンドを入力すると、利用可能な MCP プロンプトにアクセスできます。

vscode-mcp-prompts

プロンプト名説明
CreateDAXQueryセマンティックモデルと自然言語による質問から DAX クエリを作成します。LLM に DAX 言語のコンテキストを提供するため、dax_query_instructions_and_examples リソースを添付します。
RunDAXQueryWithMetricsキャッシュをクリアし、実行メトリクスのみを返すオプションを指定して、DAX クエリを実行します。
AnalyzeDAXQueryキャッシュをクリアして DAX クエリを実行し、潜在的な問題がないか実行メトリクスを確認して、DAX クエリのパフォーマンスを分析します。
ConnectToPowerBIDesktopファイル名に一致する Power BI Desktop の Analysis Services インスタンスを検索して接続します。
ConnectToFabricFabric ワークスペースのセマンティックモデルに接続します。
ConnectToPBIPPower BI Project ファイル内のセマンティックモデルから TMDL 定義を読み込みます。LLM に Power BI Project(PBIP)のコンテキストを提供するため、powerbi_project_instructions リソースを添付します。

メモ

一部のプロンプトでは、LLM に重要なコンテキストを提供するリソースも添付されます。

⚙️ 設定

MCP サーバーは、いくつかのコマンドラインオプションと環境変数に対応しています。

コマンドラインオプションデフォルト説明
--startMCP サーバーを起動します。MCP クライアントにサーバーを登録するために必要です。
--readwriteはいデフォルトで有効です。セマンティックモデルに編集を適用する前に確認プロンプトを表示して、書き込み操作を有効にします(データベースごとに1回)。
--readonlyセーフモードです。セマンティックモデルへの書き込み操作をすべて防止します。
--compatibilityPowerBIデフォルトでは、Power BI セマンティックモデル向けに最適化されています。Analysis Services データベースでこの MCP サーバーを実行する場合は、設定を Full に変更してください。
--authmodeinteractive認証モードを設定します:serviceprincipal または interactive。
--accepteula無人実行時に EULA に同意します。
環境変数名既定値説明
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AZURE_CLIENT_IDMicrosoft Entra サービスプリンシパルのアプリケーション (クライアント) ID。--authmode=serviceprincipal の場合に必須です。
AZURE_TENANT_IDMicrosoft Entra テナント (ディレクトリ) ID。--authmode=serviceprincipal の場合、または対話型認証で特定のテナントを強制する場合に必須です。
AZURE_CLIENT_SECRETサービスプリンシパルのクライアントシークレット。--authmode=serviceprincipal でシークレットベースの認証を使用する場合に必須です。
AZURE_CLIENT_CERTIFICATE_PATHサービスプリンシパル用の PFX/PEM 証明書ファイルへのパス。--authmode=serviceprincipal でクライアントシークレットの代わりに証明書ベースの認証を使用する場合に必須です。
AZURE_CLIENT_CERTIFICATE_PASSWORD証明書がパスワードで保護されている場合の、証明書ファイルのパスワード。--authmode=serviceprincipal で証明書ベースの認証を使用する場合にのみ使用されます。
PBI_MODELING_MCP_ACCEPT_EULAfalse無人実行のために EULA に同意するには true に設定します。
PBI_MODELING_MCP_ALLOWED_CONNECTION_HOSTSMCP サーバーが Analysis Services または Power BI XMLA 接続に使用できる、信頼されたカスタムホスト名のカンマ区切りリスト。

Visual Studio Code の場合、ユーザー設定でコマンドラインオプションと環境変数を設定できます。

Visual Studio Code のユーザー設定を開き、@ext:Microsoft.powerbi-modeling-mcp を検索します。

VS Code settings

手動インストールの場合、MCP サーバー登録 JSON の args プロパティでコマンドラインオプションを設定し、env プロパティで環境変数を設定できます。

{
"servers": {
		"powerbi-authoring-local": {
			"command": "[Path To MCP Server folder]\\powerbi-modeling-mcp.exe",
			"args": [
				"--start"                
				, "--authmode=interactive"				   				
			],
			"type": "stdio"
		}
	}
}
接続ホストの許可リスト

Azure Analysis Services や SQL Server Analysis Services など、Power BI 以外のエンドポイントに接続するには、そのホスト名を PBI_MODELING_MCP_ALLOWED_CONNECTION_HOSTS 環境変数に追加します。複数のホスト名はカンマで区切ります。

{
  "env": {
    "PBI_MODELING_MCP_ALLOWED_CONNECTION_HOSTS": "xmla.contoso.example,another-xmla.contoso.example,sqlserver_01:8373"
  }
}

設定を変更した後は、MCP サーバーを再起動してください。

重要

組織が信頼し、Analysis Services または Power BI XMLA エンドポイントとして使用する予定のホストのみを追加してください。MCP サーバーが接続する際にアクセストークンがこれらのホストに送信されるため、許可リストを管理することで認証情報を保護できます。エンドポイントを誰が運用しているかを確認せずに、検証エラーを回避するためだけにホスト名を追加しないでください。

💬 フィードバックとサポート

  • 一般的な問題の診断と解決には、トラブルシューティングガイドをご確認ください。
  • 私たちはオープンに開発を進めています。皆さまからのフィードバックをお待ちしています。Power BI Authoring MCP サーバーの今後の方向性を決めるうえで、大きな助けになります。
    • 👉 公開 GitHub リポジトリで課題を作成してください。ぜひご意見をお聞かせください。

考慮事項と制限事項

  • セマンティックモデルに対する 書き込み 権限が必要です。詳細については、セマンティックモデルの権限をご覧ください。
  • この MCP サーバーは、外部ツールで実行されるモデリング操作と同じ規則および動作に従います。詳細については、ドキュメントをご覧ください。
  • この MCP サーバーの使用を特に禁止するテナント管理者設定はありません。このサーバーは XMLA エンドポイントを介してセマンティックモデルに接続します。MCP サーバー経由のアクセスを防ぐには、XMLA エンドポイントを無効にする必要があります。これにより、XMLA 接続に依存する他のツールやアプリケーションもブロックされます。詳細については、XMLA エンドポイントを使用したセマンティックモデルへの接続をご覧ください。

ライセンス

このソフトウェアの使用には、Power BI Authoring MCP Server EULAが適用されます。NPX によるインストールでは、MCP ツールを使用する前に明示的な同意が必要です。利用可能な同意方法については、EULA への同意をご覧ください。

データのプライバシーと LLM プロバイダー

MCP サーバーはローカルで実行され、既存の資格情報と権限を使用してセマンティックモデルに接続します。Power BI のセキュリティ制御を回避することはありません。ただし、MCP サーバーが取得したデータ(メタデータ、スキーマ、クエリ結果)は MCP クライアント(例:VS Code)に送信され、その後、会話のコンテキストの一部として、設定された LLM プロバイダーに転送される場合があります。

つまり、AI による支援によってデータへのアクセス範囲が広がることはありませんが、アクセスしたデータが LLM プロバイダーに送信される可能性があります。 ガバナンスでは、Power BI のセキュリティ制御だけでなく、組織の AI データ取り扱いポリシーと LLM プロバイダーの利用規約に重点を置く必要があります。

GitHub Copilot を使用する場合は、外部 AI モデルプロバイダーとのデータ共有方法について、GitHub Copilot のモデルホスティングに関するドキュメントをご覧ください。

セキュリティ

資格情報は、公式の Azure Identity SDK を通じて常に安全に取り扱われます。トークンを直接保存または管理することはありません。

MCP は非常に新しく、最先端の技術です。新しい技術標準と同様に、MCP サーバーと統合するシステムが、準拠すべきすべての規制や標準に従っていることを確認するため、セキュリティレビューを実施することを検討してください。これには Power BI Authoring MCP Server だけでなく、実装する MCP クライアント/エージェントやモデルプロバイダーも含まれます。

Microsoft の MCP サーバー向けセキュリティガイダンスに従い、Entra ID 認証の有効化、安全なトークン管理、ネットワーク分離を実施してください。詳細については、Microsoft のセキュリティドキュメントをご覧ください。

権限とリスク

MCP クライアントは、ユーザーの Fabric RBAC 権限に基づいて操作を実行できます。自律型または設定に誤りのあるクライアントは、破壊的な操作を実行する可能性があります。デプロイ前に、最小権限の RBAC ロールを確認して適用し、安全対策を実装してください。破壊的な操作を防ぐフラグなど、一部の安全対策は MCP 仕様で標準化されておらず、すべてのクライアントでサポートされているとは限りません。

データ収集

本ソフトウェアは、お客様およびお客様による本ソフトウェアの使用に関する情報を収集し、Microsoft に送信する場合があります。Microsoft は、この情報をサービスの提供や製品およびサービスの改善に利用する場合があります。また、本ソフトウェアには、お客様および Microsoft が、お客様のアプリケーションのユーザーからデータを収集できるようにする機能もあります。これらの機能を使用する場合、お客様は、Microsoft のプライバシーに関する声明のコピーを添えて、お客様のアプリケーションのユーザーに適切な通知を行うことを含め、適用される法律を遵守する必要があります。データの収集と使用について詳しくは、ヘルプドキュメントおよび当社のプライバシーに関する声明をご覧ください。本ソフトウェアを使用することで、お客様はこれらの慣行に同意したものとみなされます。

コンプライアンスに関する責任

本 MCP サーバーは、Microsoft のコンプライアンス境界外で動作するサードパーティ製 LLM など、サードパーティ製のクライアントおよびサービスと共有データを使用したり、これらにインストールされたりする場合があります。あらゆる統合が、適用される組織上、規制上、契約上の要件に準拠していることを確認する責任は、お客様にあります。

サードパーティ製コンポーネント

本 MCP サーバーは、サードパーティ製コンポーネントを使用または依存する場合があります。サードパーティ製コンポーネントのライセンスおよびセキュリティ対策を確認し、遵守する責任は、お客様にあります。

輸出管理

本ソフトウェアの使用にあたっては、米国輸出管理規則および各地域の要件を含む、適用されるすべての輸出関連の法律および規制を遵守する必要があります。

保証の否認/責任の制限

本ソフトウェアは、明示的か黙示的かを問わず、いかなる種類の保証または条件もなく「現状有姿」で提供されます。Microsoft は、本ソフトウェアの使用、誤用、または設定ミスに起因するいかなる損害についても責任を負いません。

行動規範

本プロジェクトでは、Microsoft オープンソース行動規範を採用しています。詳細については、行動規範に関する FAQをご覧いただくか、ご質問やご意見がございましたら [email protected] までお問い合わせください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。