mcp-power-automate について
MCP Power Automate は、Microsoft Power Automate のクラウドフローを AI で支援しながら扱うための、ローカル優先の MCP サーバーと Chromium 拡張機能です。ログイン済みのブラウザーセッションを利用するため、開始時に Microsoft Entra ID のアプリ登録は不要です。プレビュー、検証、差分確認、ロールバックを備え、変更を追跡可能な形で行えます。
主な機能
- 01アプリ登録なしのブラウザーセッション認証
- 02読み取りや編集前の対象フローのロック
- 03保存前の最小限の候補更新のプレビュー
- 04最終更新の差分確認と取り消し
- 05実行履歴とアクション単位の失敗の確認
- 06Dataverse ソリューションの一覧表示と限定的な書き込み
活用シーン
- 01MCP クライアントからテスト用・ステージング用フローを検証・編集する
- 02アクションの詳細から失敗した Power Automate の実行を調べる
- 03既存のクラウドフローを非管理ソリューションに追加する
MCP 対応
本プロジェクトは MCP サーバーであり、対象の指定、読み取り、プレビュー、検証、保存、実行の確認、ロールバックを含む v1 コマンド群を MCP クライアントに公開します。拡張機能とローカルブリッジが、ブラウザーから取得したコンテキストとトークンをこれらのコマンドに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Power Automate
AI 支援による Microsoft Power Automate 作業のためのローカルファーストな MCP サーバーおよび Chromium 拡張機能です。
既存のログイン済みブラウザーセッションを利用して、MCP クライアントが Power Automate クラウドフローを検査、検証、編集、実行、レビュー、元に戻せるようにします。始めるために Microsoft Entra ID アプリの登録、管理者同意フロー、カスタムエンタープライズアプリケーションのセットアップは必要ありません。
早期の公開反応: プロジェクトはまだ小さく、実用的で、急速に進化していますが、LinkedIn 投稿の閲覧数は 15,000 回以上、GitHub スターは 14 件を記録しました。
なぜ存在するのか
Power Automate は強力ですが、AI エージェントが実際のフローに触れる前に必要なのは、単なる手軽さだけではありません。このプロジェクトはワークフローを可視化し、元に戻せる状態に保ちます:
- ブラウザー拡張機能は、あなた自身の Chromium セッションからアクティブな Power Automate コンテキストと互換トークンを取得します。
- MCP サーバーは、対象指定、読み取り、プレビュー、検証、保存、実行検査、ロールバックのための v1 コマンドサーフェスを公開します。
- 拡張機能はほとんど受動的です: 変更内容を隠す謎のボタンではなく、ステータス、診断、レビューのためのサーフェスを提供します。
- ローカル状態、スナップショット、バックアップはあなたのマシン上に保持されます。
できること
| 領域 | 機能 |
|---|---|
| コンテキスト | ブラウザーが取得したフローの検出、フローの一覧表示、対象フローへの明示的なロック。 |
| 安全な編集 | フローの読み取り、最小の候補更新のプレビュー、検証、保存、差分のレビュー、元に戻す。 |
| デバッグ | 最近の実行、最新の実行詳細、アクションレベルの失敗の検査。 |
| テスト | 安全な手動/リクエストトリガーフローの呼び出しと、結果として生じる実行の待機。 |
| ソリューション | アンマネージド Dataverse ソリューションの一覧表示、ソリューションコンポーネントと環境変数の検査、既存フローの追加、ソリューション内での空のフローの作成。 |
書き込み操作は意図的に範囲を限定しています。MCP は、ソリューションの削除、コンポーネントの削除、マネージドソリューションの変更、環境変数の書き込み、本番環境の無差別な編集をデフォルトの経路として公開していません。
クイックスタート
Codex に MCP を登録します:
codex mcp add power-automate-local -- npx -y @kaael1/mcp-power-automate
パッケージ化された拡張機能のパスを確認します:
npx -y @kaael1/mcp-power-automate extension-path
そのフォルダーを Chromium に読み込みます:
chrome://extensionsまたはedge://extensionsを開きます。- デベロッパーモードを有効にします。
パッケージ化されていない拡張機能を読み込むを選択します。extension-pathが出力したフォルダーを選択します。
次に、Power Automate のフローページを開くかフォーカスします。拡張機能がセッションと対象コンテキストを自動的に取得します。
準備状態を確認します:
npx -y @kaael1/mcp-power-automate doctor
推奨エージェントループ
監督下での編集では、MCP クライアントに次のループに従うよう指示します:
doctorget_contextconnect_flowget_flowpreview_flow_updatevalidate_flowapply_flow_updateget_last_update- 可能な場合は再度
validate_flow
実行検査と手動/リクエストトリガーテストには、list_runs、get_latest_run、get_run、get_run_actions、wait_for_run、get_trigger_callback_url、invoke_trigger を使用します。
Dataverse ソリューション作業には、list_solutions、list_solution_components、list_environment_variables、add_flow_to_solution、create_flow_in_solution を使用します。ソリューションへの書き込みは、意図的にアンマネージドソリューションへのクラウドフローの追加に限定されています。
公開 v1 ツール
get_context
doctor
connect_flow
list_flows
list_solutions
list_solution_components
list_environment_variables
add_flow_to_solution
get_flow
preview_flow_update
validate_flow
apply_flow_update
get_last_update
revert_last_update
list_runs
get_latest_run
get_run
get_run_actions
wait_for_run
get_trigger_callback_url
invoke_trigger
create_flow
create_flow_in_solution
clone_flow
安全モデル
- 書き込みの前に
get_context、connect_flow、get_flowで調査します。 - 保存する前に
preview_flow_updateでプレビューします。 - Power Automate が検証を受け入れる場合は、意味のある編集の前後に検証します。
- 保存後に
get_last_updateを確認して、差分を可視化します。 - 保存された結果が誤っている場合は
revert_last_updateを使用します。 - 本番フローの前に、テストフローまたはステージングフローを優先します。
Power Automate が接続のアクセス許可の問題で保存を拒否した場合、MCP は CONNECTION_AUTHORIZATION_FAILED を報告し、ユーザーが Power Automate でその接続を修正するまで待機します。retryPolicy などのフィールドをサービスが拒否した場合、MCP は拒否されたメンバーとともに SCHEMA_VALIDATION_FAILED を報告するため、エージェントは推測するのではなく、候補フローを修正できます。
ブラウザー経由の認証
拡張機能は、ログイン済みのブラウザーセッションから Power Automate、Power Platform/BAP、および Dataverse オーディエンスのトークンを取得できます。これらのトークンが存在する場合、get_context と /health は canManageSolutions などの準備状態の詳細を公開します。
つまり、MCP は新しい Microsoft Entra アプリ登録なしで動作できますが、ブラウザーセッションが引き続き有効な権限であることも意味します。トークンが期限切れになったり、アクセス許可が不足している場合は、該当する Power Automate、Power Apps、または Dataverse のページを再度開くかフォーカスし、取得後に再試行してください。
HTTP ブリッジ
ローカルブリッジは 127.0.0.1:17373 で待ち受けます。
GET /healthは単純なプローブ用に保持されています。GET /v1/healthはブリッジの識別情報と準備状態を返します。GET /v1/contextは MCP が使用するのと同じコンテキストを返します。GET /v1/commandsは公開 v1 コマンドサーフェスを一覧表示します。POST /v1/commands/:nameは JSON ボディを指定して任意の公開 v1 コマンドを実行します。
状態を持つ処理を実行するのは、ブリッジポートを所有するプロセスだけです。別のプロセスがすでにポートを所有している場合、新しい MCP インスタンスはその再利用を拒否します。既存のブリッジプロセスを停止するか、別の POWER_AUTOMATE_BRIDGE_PORT を選択してください。
開発
npm install
npm run typecheck
npm run lint
npm run test
npm run build
npm run pack:dry-run
ローカルクローンの場合は、このチェックアウトからビルド済みサーバーに対して Codex を登録することを推奨します:
npm run build
$nodePath = (Get-Command node).Source
$serverPath = Join-Path (Get-Location) "dist/server/index.js"
codex mcp add power-automate-local -- $nodePath $serverPath
古いローカルエントリが存在する場合は、先に削除します:
codex mcp remove power-automate-local
再ビルド後に dist/extension からブラウザー拡張機能を読み込みます。ランタイム状態は data/ にあり、コミットしてはいけません。
ドキュメント
パッケージリンク
- GitHub: https://github.com/kaael1/mcp-power-automate
- npm: https://www.npmjs.com/package/@kaael1/mcp-power-automate
- MCP Registry: https://registry.modelcontextprotocol.io/v0/servers?search=io.github.kaael1/mcp-power-automate
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。