geekfujiwara/codeappsdevelopmentstandard/power-automate
Claude Code and agent skill by geekfujiwara/codeappsdevelopmentstandard
- community
Checking that the SKILL.md file is still in the repository.
Power Automate クラウドフローを Flow agent MCP SERVER(FlowAgent)で開発することを優先する。MCP が使えない場合は Dataverse Web API(workflow テーブル)でソリューション対応で作成・デプロイする。接続参照パターンで API 有効化を100%成功させる。
Install
npx vskill@latest install geekfujiwara/codeappsdevelopmentstandard/power-automateSKILL.md
Power Automate クラウドフロー構築スキル
クラウドフロー開発は Flow agent MCP SERVER(FlowAgent)を第一選択とする。 MCP が利用できない環境では Dataverse Web API(workflow テーブル)経由のフォールバックを使う。
推奨: Flow agent MCP SERVER を使う(第一選択)
FlowAgent MCP SERVER を使うと、VS Code の GitHub Copilot Chat(エージェントモード)からフローを自然言語で構築・編集・デバッグできる。
| 比較項目 | Flow agent MCP(推奨) | Dataverse Web API(フォールバック) | |
|---|---|---|---|
| フロー作成 | 自然言語で指示するだけ | Python スクリプトを手書き | |
| 編集 | アクション単位のサージカル編集 | 定義 JSON を全置換 | |
| デバッグ | 失敗ランを自律診断 | ログを手動確認 | |
| 接続解決 | 自動検索・自動紐づけ | PowerApps API + 手動確認 | |
| セットアップ | スクリプト 1 本で完結 | Python 環境 + 複数スコープのトークン |
★ FlowAgent MCP サーバー本体(server/mcp.mjs)は Claude Code / GitHub Copilot CLI 用のプラグインマーケットプレイス(microsoft/power-platform-skills)で配布されているが、**VS Code の GitHub Copilot Chat は/plugin marketplace addコマンドや Claude 形式の.mcp.json(mcpServersキー)を解釈できない**。VS Code は独自の MCP クライアントを持ち、ワークスペース直下の.vscode/mcp.json(serversキー +type: "stdio")を読む。そのため本スキルではmicrosoft/power-platform-skillsリポジトリを git スパースチェックアウトで直接取得し、VS Code 形式で登録する(プラグインマーケットプレイスは経由しない)。
1. 前提
- Node.js 20+(FlowAgent v3.0.0 以降は MCP SDK v2 のため Node.js 18 では起動できない)
- git(
microsoft/power-platform-skillsのplugins/power-automateを取得するために使用) - Azure CLI(
az login— MCP サーバー自身の認証に必要。auth_helper.pyとは別の資格情報ストア)
2. 認証 + .vscode/mcp.json 生成(auth_helper を使用)
.env に DATAVERSE_URL / SOLUTION_NAME を設定してからスクリプトを実行する。 スクリプトが行うこと:
| 処理 | 内容 | |
|---|---|---|
| Node.js 確認 | 20+ でなければ中断 | |
| az login 確認 | az account list で対象テナントの既存キャッシュを確認 → あれば az account set のみ(対話不要)。無い場合のみ案内を表示 | |
| auth_helper 認証 | Dataverse / Flow API トークンを取得・キャッシュ(Python スクリプト用) | |
| プラグイン取得 | microsoft/power-platform-skills を git スパースチェックアウトで ~/.power-platform-skills に取得(マシン全体で共有・自動更新) | |
| .vscode/mcp.json 生成 | 既存エントリを保持しつつ FlowAgent を追記(VS Code 形式) |
内容確認だけしたい場合:
.vscode/mcp.jsonは環境依存パスを含むためコミットしない(.vscode/*は標準.gitignoreで除外済み)。
3. VS Code に認識させる
- コマンドパレット →
MCP: List ServersでFlowAgentが表示されるか確認(表示されない場合はウィンドウをリロード) FlowAgentを Start- GitHub Copilot Chat(エージェントモード)で自然言語で指示する
4. フローを開発する
| 指示例 | 動作 | |
|---|---|---|
| 「承認フローを作って。申請レコード作成時に承認者へメール送信」 | build-flow スキルがフローを自律生成・デプロイ | |
| 「先ほどのフローが失敗した原因を教えて」 | diagnose-flow スキルが失敗ランを深掘り診断 | |
| 「このフローのメール本文を変更して」 | edit-flow スキルがアクション単位で編集 |
5. ソリューションへの追加・有効化
MCP で作成したフローをソリューションに追加するには manage-flows スキルで solutionUniqueName を指定するか、以下のスクリプトで補完する。 第 1 引数にフロー ID を直接渡す(--workflow-id のようなオプション形式ではない)。
ソリューションに追加した直後の publish_flow(有効化)が CannotStartUnpublishedSolutionFlow で失敗することがある。この場合の原因切り分けと 解消手順、および run_flow によるテスト実行時の制約は references/flow-agent-mcp.md の該当節を参照。
詳細な設定・トラブルシュートは references/flow-agent-mcp.md を参照。
コネクター接続は 接続作成標準 に従う。 Power Apps API で Connected 接続を先に検索し、存在しない場合だけ VS Code 統合ブラウザで 接続パラメーターを自動入力する。ユーザー操作は OAuth のアカウント選択・同意に限定し、 Connected 確認後の接続参照・フロー作成・有効化・テストは API で行う。 OAuth 完了後は子ページを自動で閉じる。自動クローズできない場合は Connected を API で確認してから、 その画面を閉じてよいことをユーザーへ明示する。
HTTP with Microsoft Entra ID の内部 API、要求本文、権限の実測値は 非公開接続 API の実測結果 を参照する。
API アプローチ(Flow agent MCP が使えない場合)
以下は MCP サーバーが利用できない環境向けの フォールバック手順。 Python スクリプトで Dataverse Web API を直接操作する。
定義を送信する前に scripts/validate_flow_definition.py の assert_base64_content_contract() と assert_flat_dataverse_item_parameters() を必ず実行する。 Dataverse の CreateRecord / UpdateRecord は列値を item/<列名> のフラットなキーで渡し、 item オブジェクトへ入れ子にしない。JSON の contentBase64 に実行時の本文を渡す場合は @base64(...) で明示的にエンコードし、コネクタ出力型の違いによる実行時失敗をデプロイ前に止める。 Dataverse アクションを含む場合は、参照列をメタデータ API で取得し、 assert_required_dataverse_columns() で列の存在を確認してから既存フローを変更する。 Lookup を @odata.bind で書き込む場合は ManyToOneRelationships から ReferencingEntityNavigationPropertyName を取得し、require_navigation_property() で検証する。 Lookup属性の論理名や表示名からナビゲーションプロパティ名を推測しない。
核心原則: 接続参照(Connection Reference)が有効化成功の鍵
前提: 設計フェーズ完了後にデプロイに入る(必須)
フローをデプロイする前に、フロー設計をユーザーに提示し承認を得ていること。
設計提示時に含める内容:
| 項目 | 内容 | |
|---|---|---|
| フロー名 | フローの名前と目的 | |
| トリガー | 何をきっかけに実行するか(レコード変更時 / スケジュール / 手動等) | |
| アクション一覧 | 条件分岐・メール送信・Teams 通知・データ更新等 | |
| 必要な接続 | 使用するコネクタ(Dataverse, Office 365 Outlook, Teams 等) | |
| 通知先・本文 | メールの宛先・件名・本文の概要 |
事前確認(会話の最初に 1 回だけ)
本スキルの利用が確定したら、standard の共通契約に加え、 1 回の AskUserQuestion で次をまとめて確認する。
| # | 質問 | 合格条件 | |
|---|---|---|---|
| 1 | FlowAgent を利用できるか | 利用可能なら FlowAgent、利用不可の場合だけ Dataverse Web API を使う | |
| 2 | フロー所有者と実行ユーザーのライセンスは十分か | premium / custom connector / attended・unattended 等、使用機能に必要なライセンスを確認している | |
| 3 | connection と connection reference の所有者は誰か | 各コネクタへサインインでき、接続共有と再認証の担当者を記録している | |
| 4 | 対象環境とソリューションで作成・有効化できるか | Environment Maker 相当の作成権限と、対象レコード / API の実行権限がある | |
| 5 | トリガー、送信先、書き込み、承認、失敗時の動作は承認済みか | 実害のある操作、再実行、重複防止、通知先、停止条件を記録している |
接続所有者の個人アカウント依存を避け、可能ならサービス主体または運用用アカウントを使う。 ライセンス、connection reference、書き込み対象の権限が未確認ならフローを有効化しない。
大前提: 一つのソリューション内に開発
Dataverse テーブル・Code Apps・Power Automate フロー・Copilot Studio エージェントは すべて同一のソリューション内 に含める。
- フロー作成時は
MSCRM.SolutionUniqueNameヘッダー必須 - 接続参照もソリューション内に作成(
MSCRM.SolutionUniqueNameヘッダー)
認証: Python スクリプトの認証はstandardスキルのauth_helper.pyを使用。from auth_helper import get_token, get_session, api_get, api_post, api_patch, api_delete, retry_metadata, DATAVERSE_URLで利用する。
- ソリューション外のフローは「マイフロー」に入り、ALM 管理できない
必須要件
認証スコープが異なる【必須】
接続は Connected 状態で環境内に必要
auth_helper の既定クライアントには Connectivity.Connections.Write がないため、 新規接続の仮作成はメーカーポータル自身の認証済み API 呼び出しを利用する。 Microsoft Dataverse も OAuth 接続では同意フローを使用する。詳細は 接続作成標準 を参照する。
f-string と式の二重ブレース問題
べき等デプロイパターン
Dataverse Webhook トリガーのフローは /start 必須(★ 検証済み教訓)
GrantAccess / RevokeAccess は PerformUnboundAction で呼ぶ(★ 検証済み教訓)
AI Builder アクションは API で Draft 作成・有効化ともに可能
Teams PostMessageToConversation の注意
Power Apps V2 トリガー・応答のパラメータ形式(★ 重要)
Copilot Studio のツールにするフローは kind: VirtualAgent(★ 検証済み教訓 2026-10-09)
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.github/skills/power-automate/SKILL.md
Popularity
- Repository stars
- 57
- Repository forks
- 20
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/geekfujiwara/codeappsdevelopmentstandard/power-automate)