add-mcscopilot について
アプリに Microsoft Copilot Studio コネクターを追加・設定する開発スキルです。エージェントの呼び出しと同期応答の解析、ビルド、設定内容の記録を案内します。
主な機能
- 01Memory Bank の確認と更新
- 02Copilot Studio コネクターの追加
- 03エージェント呼び出しと応答解析
- 04ビルド前の TypeScript エラー修正
活用シーン
- 01Copilot Studio エージェントのアプリへの接続
- 02エージェント応答の待機と JSON データ抽出
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ microsoft/ power-platform-skills --skill add-mcscopilotインストール後、Claude Code で/add-mcscopilotを入力して読み込まれたか確認します。
詳細
📋 共通の手順:shared-instructions.md - 横断的な事項です。
Microsoft Copilot Studio を追加する
ワークフロー
- Memory Bank を確認 → 2. コネクタを追加 → 3. 設定 → 4. ビルド → 5. Memory Bank を更新
ステップ 1:Memory Bank を確認する
shared-instructions.mdに従って、memory-bank.md があるか確認します。
ステップ 2:コネクタを追加する
まず、接続 ID を確認します(connector-reference.mdを参照):
/list-connections スキルを実行します。出力から Microsoft Copilot Studio の接続を探します。接続がない場合は、環境固有の接続 URL を使って作成するようユーザーに案内します。コンテキスト内のアクティブな環境 ID(power.config.json または前のステップから取得)を使って URL を組み立てます:https://make.powerapps.com/environments/<environment-id>/connections → + 新しい接続 → コネクタを検索 → 作成。
pa app add data-source --connector microsoftcopilotstudio -c <connection-id>
ステップ 3:設定する
呼び出したい Copilot Studio エージェントと、必要な操作をユーザーに尋ねます。
エージェントのセットアップに必要な前提条件(ユーザーが Copilot Studio で手動で行う必要がある手順):
- エージェントを公開する:Copilot Studio で、Channels をクリック → Teams を選択 → Teams に追加 → Publish をクリックします。
- エージェント名を取得する:Channels で「Web app」をクリックします。接続文字列の URL にエージェント名が含まれています。例:
https://...api.powerplatform.com/copilotstudio/dataverse-backed/authenticated/bots/cr3e1_myAgent/conversations?...— エージェント名はcr3e1_myAgentです。
ExecuteCopilotAsyncV2 -- エージェントを実行し、応答を待機します:
ExecuteCopilotAsyncV2 操作(パス:/proactivecopilot/executeAsyncV2)を使用します。これは、エージェントの応答を同期的に確実に返す唯一のエンドポイントです。Power Automate の「Execute Agent and wait」アクションで使用されるものと同じエンドポイントです。
const result = await MicrosoftCopilotStudioService.ExecuteCopilotAsyncV2({
message: "Your prompt or data here", // Can be a JSON string
notificationUrl: "https://notificationurlplaceholder" // Required by API but unused; any URL works
});
// Response structure:
// result.responses — Array of response strings from the agent
// result.conversationId — The conversation ID
// result.lastResponse — The last response from the agent
// result.completed — Boolean indicating if the agent finished
重要: エージェントは応答を JSON 文字列として返すことがよくあります。responses 配列を解析して、意味のあるデータを抽出します:
const agentResponse = result.responses?.[0];
if (agentResponse) {
const parsed = JSON.parse(agentResponse);
// Extract specific fields, e.g., parsed.trend_summary
}
Grep を使用して、生成されたサービスファイル内の特定のメソッドを検索します(生成ファイルは非常に大きくなることがあります。connector-reference.mdを参照)。
既知の問題
- ExecuteCopilot(
/execute)-- ファイア・アンド・フォーゲット方式で、ConversationIdのみを返し、実際の応答は返しません。使用しないでください。 - ExecuteCopilotAsync(
/executeAsync)-- 502「Cannot read server response」エラーを返します。使用しないでください。 - 会話ターンモデル(
/conversations/{ConversationId})-- 応答を返さない/executeの実行後にのみ動作します。使用しないでください。 - 応答の大文字・小文字の表記は変化します --
conversationId、ConversationId、conversationIDのすべての表記を確認してください。
ステップ 4:ビルドする
npm run build
先に進む前に、TypeScript のエラーを修正します。まだデプロイしないでください。
ステップ 5:Memory Bank を更新する
memory-bank.md を更新し、コネクタの追加、設定したエージェント名、設定した操作、ビルドの状態を記載します。