Note
本記事では 、標準ハーネスで駆動されるエージェントやエージェントフローで使用される機能について説明します。
Windows 365 for Agentsは、Windows 365クラウドPCの完全な運用制御を提供するMCPサーバーです。 このMCPサーバーを使って、デスクトップ操作(マウス、キーボード、スクリーンキャプチャ、コマンド実行)、Microsoft Edgeによるブラウザ自動化、Windows UI オートメーションによるセマンティックUI検査を通じて、実際のWindows環境を駆動します。
Note
ブラウザの自動化はMicrosoft Edgeで機能します。 Edgeは最初のブラウザツール呼び出しで自動的に起動します。
focus_browser ChromeやFirefoxを対象にすることもできますが、DOMレベルのブラウザツールはEdgeインスタンスでのみ動作します。
エージェントのWindows 365について詳しくは、Windows 365 for Agents documentationをご覧ください。
概要
| サーバー ID | テナントレベルの URL | 表示名称 | Description |
|---|---|---|---|
mcp_W365ComputerUse |
https://agent365.svc.cloud.microsoft/agents/tenants/{tenantId}/servers/mcp_W365ComputerUse |
Windows 365 for Agents MCP サーバー | Windows 365クラウドPCの完全な運用管理、デスクトップ操作、ブラウザの自動化、UI検査が含まれます。 |
使用可能なツール
mcp_W365ComputerUse_StartSession
Windows 365コンピュータ使用セッションを開始し、クラウドPCへの接続を確立し、クラウドPCリソースを割り当てます。 セッション管理に使える sessionId を返します。
必要なパラメータはありません。
mcp_W365ComputerUse_EndSession
アクティブなWindows 365コンピュータ使用セッションを終了し、関連するクラウドPCリソースを解放します。
sessionId が返した mcp_W365ComputerUse_StartSession を渡してください。
必要なパラメータ: sessionId
mcp_W365ComputerUse_GetSessionDetails
sessionIdで識別された1つのWindows 365コンピュータ使用セッションのメタデータを返します。
sessionId が返した mcp_W365ComputerUse_StartSession を渡してください。 複数のセッションは記載されていません。
必要なパラメータ: sessionId
マウスを動かす
カーソルを画面の位置に移動します。 目的地をクリックしたい場合は click を使いましょう。 [Required parameters]\(必須のパラメーター\):
- x: 画面ピクセル単位のX座標
- y: 画面ピクセル単位でのY座標
クリックする
座標が省略されている場合は、位置または現在のカーソル位置をクリックします。 シングルクリック、ダブルクリック、5つのマウスボタンすべてに対応しています。
オプション パラメーター:
- x: 画面上のピクセル単位のX座標 (現在位置の場合は省略)
- y: 画面ピクセル単位の座標(現在の位置は省略)
- ボタン:左、右、中央、前進、または後ろ(デフォルトは左)
- クリックカウント:1 = シングルクリック、2 = ダブルクリック(デフォルト1)
get_cursor_position
現在のカーソル座標を返します。 パラメーターはありません。 {cursorX, cursorY} を返します。
マウスをドラッグ
ある位置から別の位置にドラッグします。 オブジェクトの移動、ウィンドウのサイズ変更、ピクセル単位のスクロールに便利です。 [Required parameters]\(必須のパラメーター\):
- startX: Start X 座標。
- startY:Y座標を始めて。
- endX:X座標を終了。
- endY: Y 座標終了。 オプション パラメーター:
- ボタン:左、右、または中央(デフォルトは左)
スクロール
位置を、ピクセルではなくノッチ単位でスクロールします。 3つのノッチは約1ページに相当します。
[Required parameters]\(必須のパラメーター\):
- x: スクロール位置 X
- y: スクロール位置 Y
オプション パラメーター:
- deltaX:水平ノッチ、正=右(デフォルト0)
- deltaY:垂直ノッチ、正=下(デフォルト0)
Note
値は範囲[-20, 20]にクランプされます。
type_text
キーボード入力をシミュレートしてテキストを入力します。 キーボードショートカットは press_keysを使いましょう。 ウェブフォームフィールドには browser_typeを使いましょう。
[Required parameters]\(必須のパラメーター\):
- テキスト: 入力するテキスト。
オプション パラメーター:
- usePaste:タイプする代わりにクリップボードからテキストを貼り付ける。
キーを押す
キーの組み合わせを同時に押します。 修飾キー、ファンクションキー、標準キーをサポートしています。
[Required parameters]\(必須のパラメーター\):
-
キー:キー名を組み合わせて押す配列(例:
["ctrl","c"]、["alt","tab"]、["ctrl","shift","s"])
スクリーンショットを撮る
全画面表示またはトリミングされた領域を PNG イメージ (base64 エンコード) としてキャプチャします。
オプション パラメーター:
- x: トリミング領域の左端
- y: クロップ領域 トップエッジ
- width:クロップ領域幅
- 高さ:作物地域の高さ
Note
4つのトリミングパラメータをすべてまとめて提供するか、4つすべて省略して全画面撮影をしても構いません。
ズーム領域
画面領域をネイティブ解像度でPNG画像(base64エンコード)としてキャプチャします。 この機能を使って、ダウンスケールした全画面スクリーンショットでは読みにくい小さなテキストや密度の高いUI要素をチェックできます。
[Required parameters]\(必須のパラメーター\):
- x: 左端 X 座標(画面ピクセル単位)
- y:画面ピクセル単位の上端Y座標
- width:ピクセル単位の領域幅
- height:ピクセル単位の領域高度
Note
最大リージョンサイズは1920x1080ピクセルです。
画面を分析
画面全体でOCRを実施。 パラメーターはありません。
{fullText, averageConfidence, boxes[{text, confidence, x, y, width, height}], width, height} を返します。
get_screen_size
画面解像度が戻ります。 パラメーターはありません。
{width, height} を返します。
list_windows
表示されているすべてのウィンドウを、そのタイトル、位置、寸法とともに一覧化します。 パラメーターはありません。
{title, processName, handle, x, y, width, height}の配列を返します。
ウィンドウをアクティブにする
タイトルのあいまい一致を使用して、ウィンドウを前面に表示します。
[Required parameters]\(必須のパラメーター\):
- タイトル:部分的なウィンドウタイトル(大文字に区別されない部分文字列)
focus_browser
ブラウザー ウィンドウ (Edge、Chrome、または Firefox) にフォーカスを合わせます。必要に応じて URL またはタイトルでフィルター処理します。
オプション パラメーター:
- パターン:URLまたはタイトルのサブストリングを一致させる(ブラウザウィンドウは省略)
ウィンドウを閉じる
あいまいなタイトルの一致を使用してウィンドウを正常に閉じます。 システムは重要なプロセスを保護しており、閉鎖することはできません。
[Required parameters]\(必須のパラメーター\):
-
タイトル: ウィンドウタイトルの一部(80%一致しきい値)。
{matchedTitle, processName, closed}を返します。
resize_window
あいまいなタイトルの一致を使用して、ウィンドウのサイズ変更、移動、最大化、最小化、または復元を行います。
[Required parameters]\(必須のパラメーター\):
- タイトル: 一致するウィンドウタイトル(大文字と小文字を区別しないあいまい一致)
-
アクション:実行するアクション -
Resize、Move、Maximize、Minimize、またはRestore
オプション パラメーター:
-
x:左辺X座標(
ResizeまたはMoveと組み合わせて使用) -
y:上辺のY座標(
ResizeまたはMoveで使用) -
width:ピクセル単位の幅(
Resizeで使用) -
高さ:ピクセル単位の高さ(
Resizeと共に使用)
execute_shell_command
サンドボックス環境でシェルコマンドを実行します。 コマンドは許可リストと照合され、危険なパターンはブロックされます。
[Required parameters]\(必須のパラメーター\):
- command: 実行コマンド
オプション パラメーター:
-
cwd:ワーキングディレクトリ。 前切り(例えば
C:/Users/me/project)を使いましょう。 - timeoutMs:ミリ秒単位のタイムアウト(デフォルト30000、最大120000)
Note
- 許可されているコマンド:git、npm、dotnet、python、cargo、node、pip、dir、mkdir、del、copy、move、robocopy、findstr、where、type、notepad。
- ブロックされたパターンには、シェルメタキャラクター(|、;、&、 <、 >)、環境変数展開
(%VAR%)、インタプリタの評価フラグ(python -cまたはnode -e)、git config --global、npm -g、パスプレフィックス実行ファイル、rm -rf、sudo、ディスクやシステムコマンドなどが含まれます。 - コマンドの
stdoutとstderrはそれぞれ32 KBで切り詰められます。 任意の計算にはexecute_python_codeを用いてください。 このコマンドは{stdout, stderr, exitCode, success, timedOut, resourceLimitsApplied}を返します。
execute_python_code
リソース制限のあるサンドボックス環境でPythonコードを実行します。 この機能はデータ処理、計算、ファイルI/O、そして単純なシェルコマンドを超えるあらゆる計算に最適です。
[Required parameters]\(必須のパラメーター\):
- code:Pythonコード(最大262,144文字)。
オプション パラメーター:
- cwd:ワーキングディレクトリ。 フォワードスラッシュを使用してください。
- timeoutMs:ミリ秒単位のタイムアウト(デフォルト30000、最大120000)。
execute_shell_commandと同じスキーマを返します。
Note
サンドボックスは512MBのメモリ制限と30秒のタイムアウトを強制します。
wait_milliseconds
アニメーションやトランジションが完了するために実行を一時停止します。 この関数はポーリングループで使わないでください。 代わりにDOMの投票には browser_wait_for を使いましょう。
[Required parameters]\(必須のパラメーター\):
- ms:待ち時間(ミリ秒単位)([0, 5000]にクランプ)
クリップボードの読み取り
システムのクリップボードの現在の内容を読み取る。 このコマンドはパラメータを必要としません。 クリップボード形式とペイロードを記述するJSONオブジェクトを返します。ペイロードはテキスト文字列またはbase64エンコード画像のいずれかです。
クリップボードへの書き込み
システムのクリップボードにテキストを書き込み、現在のコンテンツを置き換えます。
[Required parameters]\(必須のパラメーター\):
- テキスト:クリップボードに書くためのテキスト
文字数を含む確認メッセージを返します。
list_processes
現在のセッションで実行中のプロセスを一覧表示します。 各エントリにはPID、プロセス名、メモリ使用量、ウィンドウタイトル(あれば)、および startTimeTicksが含まれます。 リサイクルされたPIDを殺すのを防ぐために startTimeTicks と組み合わせ kill_process してください。
オプション パラメーター:
- maxCount:返すべき最大プロセス数(デフォルト200)
プロセス情報オブジェクトのJSON配列を返します。
kill_process
PID によってプロセスを終了します。 PID の再利用を防ぐために、startTime の値を list_processes に指定します。
[Required parameters]\(必須のパラメーター\):
-
pid:
list_processesによって返されるプロセス ID -
startTime:
list_processesによって返されるプロセス開始時刻のティック
オプション パラメーター:
- force: 正常なシャットダウンを行わずに強制終了する(デフォルトは false)
結果を説明するJSON結果を返します。
アプリケーションを起動
許可されたディレクトリから GUI アプリケーションを起動します。 CLIコマンドには execute_shell_command を使いましょう。
[Required parameters]\(必須のパラメーター\):
-
path:実行ファイルへの絶対パス。 前切り(例えば
C:/Program Files/app.exe)を使いましょう。
オプション パラメーター:
- args: コマンドライン引数の配列
{path, pid} を返します。
get_system_info
OSバージョン、CPU、RAM、利用可能なディスク容量、表示解像度を返します。 パラメーターはありません。 システム情報を含むJSONオブジェクトを返します。
browser_navigate
URLにナビゲートし、ページの読み込みを待つ。
[Required parameters]\(必須のパラメーター\):
-
URL:プロトコルを含む完全なURL(例:
https://example.com)
browser_back
ブラウザ履歴を遡ってナビゲートします。 パラメーターはありません。
browser_forward
ブラウザ履歴を進める。 パラメーターはありません。
ブラウザーを再読み込み
現在のページを再読み込みします。 パラメーターはありません。
browser_get_url
現在のページURLをプレーンな文字列として返します。 パラメーターはありません。
browser_get_title
現在のページタイトルを単純な文字列として返します。 パラメーターはありません。
browser_get_text
表示されるページのテキスト内容をプレーン文字列として返します。 パラメーターはありません。 512KBに短縮されました。
browser_get_html
ページ全体のHTMLソースをプレーンな文字列として返します。 パラメーターはありません。 512KBに短縮されました。
browser_get_page_state
単一の呼び出しで複数のページ状態フィールドを取得します。 複数の信号を同時にキャプチャし、別々のツールコールを発行することなく便利です。
[Required parameters]\(必須のパラメーター\):
-
fields: 返すフィールドの配列。 許可値:
url、title、dom、screenshot、tabs
要求されたフィールドのみを含むJSONオブジェクトを返します。
browser_click
CSSセレクターでDOM要素をクリックします。 ウェブコンテンツの座標クリックよりも信頼性が高いです。
[Required parameters]\(必須のパラメーター\):
-
セレクタ:CSSセレクタ(例:
#submit-btnやa.nav-link)
browser_type
CSSセレクターを使ってフォーム要素にテキストを入力します。
[Required parameters]\(必須のパラメーター\):
- セレクタ:入力要素のCSSセレクタ。
- テキスト: 入力するテキスト。
browser_query_text
CSSセレクターに一致する最初の要素のテキスト内容を取得します。
[Required parameters]\(必須のパラメーター\):
- セレクター:CSSセレクタ。
browser_wait_for
DOM要素が現れるのを待つ。 この機能は非同期で読み込まれる動的コンテンツに有用です。
[Required parameters]\(必須のパラメーター\):
- selector: 待機対象の CSS セレクター。
オプション パラメーター:
- タイムアウトMs:ミリ秒単位でタイムアウト。 デフォルトは5,000、最大は30,000です。
browser_eval_js
ページコンテキスト内でJavaScriptの式を評価し、結果を文字列として返します。
[Required parameters]\(必須のパラメーター\):
- 式:文字列を返すJavaScript式
Note
式がオブジェクトや数値を返す場合は、それを明示的に文字列に変換してください(例: JSON.stringify(obj) や .toString())。
browser_list_tabs
開いているすべてのタブとそのインデックス、タイトル、URLを一覧にします。 必須パラメーターはありません。
{index, title, url}の配列を返します。
オプション パラメーター:
- tabId:一意のタブ識別子
browser_switch_tab
インデックスでタブに切り替わります。
[Required parameters]\(必須のパラメーター\):
- tabIndex:0ベースのタブインデックス
オプション パラメーター:
- tabId:一意のタブ識別子
ブラウザーの新しいタブ
新しいタブを開き、必要に応じて URL に移動します。
オプション パラメーター:
- URL: 開くためのURL(省略の場合は空白タブ)
{index, title, url} を返します。
ブラウザーのタブを作成
複数のタブを一度に開きます。 オプションで、そのうちの1つを前景に出すこともできます。
[Required parameters]\(必須のパラメーター\):
- URLS:開くURLの配列、URLごとに1つのタブ
オプション パラメーター:
- foregroundIndex:タブ作成後にフォアグラウンドに出すためのインデックス(現在のタブをフォーカスしたままにするために省略)
テキストで確認の返事が返ってきます。
ブラウザーのタブを閉じる
タブをインデックスで閉じます。
[Required parameters]\(必須のパラメーター\):
tabIndex:0ベースのタブインデックスオプションパラメータ:
tabId:一意のタブ識別子
browser_screenshot
ブラウザー ビューポートのみの PNG スクリーンショットをキャプチャします (全画面表示ではありません)。 パラメーターはありません。 base64でエンコードされたPNGを返します。
browser_select_option
<select>属性によって、value要素内の 1 つ以上のオプションを選択します。
[Required parameters]\(必須のパラメーター\):
-
セレクタ:
<select>要素のCSSセレクタ - 値:選択するオプション値の配列
選択されたオプションの数を含む確認を返します。
ブラウザーでフォームに入力する
1回の通話で複数のフォーム欄に記入してください。 各エントリーは {selector, value} ペアです。 最初の失敗で操作を停止し、どのフィールドが成功したかを報告します。
[Required parameters]\(必須のパラメーター\):
-
フィールド:
{selector, value}ペアの配列
埋められたフィールド数の確認を返します。
browser_drag
ソース要素をターゲット要素にドラッグします。 両方の要素はCSSセレクターによって識別されます。
[Required parameters]\(必須のパラメーター\):
- sourceSelector:ドラッグソースのCSSセレクタ
- targetSelector:ドロップターゲットのCSSセレクター
ブラウザでPDFを保存
現在のページを PDF ファイルとして保存します。 宛先パスは %USERPROFILE% または %TEMP%に制限されています。
[Required parameters]\(必須のパラメーター\):
-
filePath:
%USERPROFILE%または%TEMP%の下にある宛先ファイルパス。 フォワードスラッシュを使用してください。
保存済みのファイルパスを含む確認メッセージを返します。
browser_handle_dialog
保留中のブラウザー ダイアログ (アラート、確認、プロンプト、または beforeunload) を受け入れるか、閉じます。 アクティブなダイアログがない場合は、"No dialog pending" を返します。
[Required parameters]\(必須のパラメーター\):
-
アクション:
acceptまたはdismiss
オプション パラメーター:
- promptText: プロンプトダイアログに入力するテキスト(アラートと確認は無視)
browser_get_cookies
現在のページまたは指定した URL のセットの Cookie を取得します。 クッキーの値はセキュリティのため常に黒塗りされています。名前、ドメイン、パス、フラグが返されます。
オプション パラメーター:
- urls:クッキーを取得するためのURLの配列(現在のページは省略)
黒塗りされた値を含んだクッキーオブジェクトの配列を返します。
browser_set_cookies
現在のページのドメインに Cookie を設定します。 この操作により、Cookie が追加または上書きされますが、既存の Cookie はクリアされません。
[Required parameters]\(必須のパラメーター\):
-
クッキー:クッキーオブジェクトの配列。 各エントリーには
nameとvalueが必要です。 オプションフィールド:domain、path、secure、httpOnly、sameSite。
テキストで確認の返事が返ってきます。
browser_execute_batch
1 回の呼び出しで複数のブラウザー アクションを順番に実行します。 この動作は最初の失敗で停止し、それまでに収集した結果を返します。
[Required parameters]\(必須のパラメーター\):
-
アクション:
{action, params}オブジェクトの配列。 許可されているアクション:navigate、snapshot、click_ref、type_ref、hover_ref、scroll_ref、keypress_ref、wait_for、eval_js。
実行されたアクションごとに結果の配列を返します。
browser_snapshot
DOMノードにマッピングされる安定した参照ID(例: e5)でページのアクセシビリティツリーをキャプチャします。
browser_click_ref、browser_type_ref、browser_hover_refのリファレンスを活用しましょう。 Ref はページ遷移時に無効になるため、遷移後にスナップショットを再取得してください。
オプション パラメーター:
- maxDepth:最大木の深さ、1-10(デフォルト5)
- includeIframes:クロスオリジンのiframesを含める(デフォルトtrue)
アクセシビリティスナップショットとref IDを含むJSONオブジェクトを返します。
browser_click_ref
browser_snapshotのref IDで要素をクリックします。 ヒットテストは、他の要素がターゲットの上に重ねていないことを確認するためのものです。 スナップショットが期限切れになると失敗します。その場合はスナップショットを再度取得してください。
[Required parameters]\(必須のパラメーター\):
-
snapshotId: スナップショットIDが返される
browser_snapshot -
ref: スナップショットノードからの要素ref(例:
e5)
オプション パラメーター:
- ボタン:左、右、または中央(デフォルトの左)
- クリックカウント:1 = シングルクリック、2 = ダブルクリック(デフォルト1)
クリックした座標を含む確認メッセージを返します。
browser_type_ref
browser_snapshotのref IDを使って要素にテキストを入力します。 要素が最初にフォーカスされ、既存のテキストはデフォルトでクリアされます。 スナップショットが期限切れになると操作は失敗します。
[Required parameters]\(必須のパラメーター\):
-
snapshotId: スナップショットIDが返される
browser_snapshot -
ref: スナップショットノードからの要素ref(例:
e5) - テキスト:テキスト入力
オプション パラメーター:
- clear:まず既存のテキストをクリア(デフォルトはtrue)
文字数を含む確認メッセージを返します。
browser_hover_ref
browser_snapshotのref IDを使って要素の上にカーソルを合わせます。 すぐに返します。 スナップショットが期限切れになると操作は失敗します。その場合はスナップショットを再度取得してください。
[Required parameters]\(必須のパラメーター\):
-
snapshotId: スナップショットIDが返される
browser_snapshot -
ref: スナップショットノードからの要素ref(例:
e5)
ホバー座標を含む確認を返します。
アクセシビリティ ツリーを取得
フォアグラウンド ウィンドウの UI 要素ツリーを取得します。 各要素には役割、名前、値、画面座標が含まれています。
オプション パラメーター:
- maxDepth: ツリーの最大走査深度、1〜10(デフォルト: 3)
- maxElements:返すべき最大要素、1-2000(デフォルト500)
{role, name, value, x, y, width, height, children[...]}の階層ツリーを返します。
browser_keypress_ref
browser_snapshot の ref ID を使って、要素に対して 1 つのキー入力を行います。 要素が最初にフォーカスされます。 修飾キーをサポートしています。 スナップショットが期限切れの場合は失敗します — その場合はスナップショットを再度取得してください。
[Required parameters]\(必須のパラメーター\):
-
snapshotId: スナップショットIDが返される
browser_snapshot -
ref: スナップショットノードからの要素ref(例:
e5) -
キー:キー名 — 例えば、
Enter、Escape、Tab、ArrowUp、ArrowDown、またはF1—F12
オプション パラメーター:
-
修飾キー:押す際に押し続ける修飾キーの配列 —
Ctrl、Shift、Alt、またはMeta
テキストで確認の返事が返ってきます。
browser_scroll_ref
browser_snapshotから ref ID で要素をビューにスクロールします。 必要に応じて、要素内のピクセル差分でスクロールします。 スナップショットが期限切れになると失敗します。
[Required parameters]\(必須のパラメーター\):
-
snapshotId: スナップショットIDが返される
browser_snapshot -
ref: スナップショットノードからの要素ref(例:
e5)
オプション パラメーター:
- deltaX: 水平スクロールの差分(ピクセル単位、デフォルトは 0)
- deltaY: ピクセル単位の垂直スクロールの差分(デフォルトは 0)
テキストで確認の返事が返ってきます。
browser_set_file_input_ref
browser_snapshot の ref ID を使用して、ファイル入力要素にファイルを設定します。 ファイルパスはユーザーの Documents、 Downloads、 Desktop、または %TEMP% ディレクトリに制限されています。
[Required parameters]\(必須のパラメーター\):
-
snapshotId: スナップショットIDが返される
browser_snapshot - ref: ファイル入力の要素参照
- filePaths:アップロードするためのファイルパスの配列
テキストで確認の返事が返ってきます。
find_ui_element
テキスト コンテンツ、アクセシビリティ ロール、または名前 (大文字と小文字を区別しない部分文字列) で UI 要素を検索します。 クリック可能な画面座標とともに、一致する要素を返します。
オプション パラメーター:
- テキスト:検索用のテキスト(名前が省略された場合、名前として使用)
-
role: UI ロール フィルター -
Button、TextBox、CheckBox、MenuItem、ComboBoxなど - 名前:アクセス可能な名前(両方が提供されている場合はテキストより優先)
- windowHandle: ターゲットウィンドウハンドル(null = foreground window)
主要な機能
デスクトップ操作
- クリック、ダブルクリック、右クリック、そして5ボタンのマウス操作。
- ピクセル単位のドラッグ&ドロップ。
- ノッチ単位のスクロール(3ノッチ ≈ 1ページ)。
- キーボードタイピングとマルチキーショートカットの組み合わせ。
- カーソル位置の追跡。
- 画面解像度検出。
スクリーンキャプチャと分析
- 全画面またはトリミングされたPNGスクリーンショット。
- 全画面のOCR、領域ごとの信頼度スコア、およびバウンディングボックス。
- ウェブコンテンツ用のブラウザビューポート専用スクリーンショット。
ウィンドウの管理
- すべての見える窓を位置と寸法で列挙します。
- ファジータイトルマッチでウィンドウを有効化。
- Focusブラウザのウィンドウ(Edge、Chrome、Firefox)はURLやタイトルでフィルタリング可能です。
- システムクリティカルなプロセスを保護する優雅なウィンドウクローズ。
コマンド実行
- 許可リスト(git, npm, dotnet, python, cargo, node, pip, dir, mkdir, del, copy, move, robocopy, findstr, where, type)を持つサンドボックスシェルコマンド。
- サンドボックス Python 最大262,144文字のコードを実行します。
- ワーキングディレクトリおよび通話ごとのタイムアウト制御(最大30秒)。
- リソース制限、およびシェルのメタ文字、evalフラグ、権限昇格、破壊的操作を対象とした強化されたブロックリスト。
ブラウザー自動化
- ナビゲーション、戻る、前進、リロード、そしてナビゲーション時の待機条件(
load、networkidle0、networkidle2)を設定できます。 - ページのURL、タイトル、可視テキスト(512KB上限)、および完全なHTML(512KB上限)を読みます。
- 統合ページ状態取得 — URL、タイトル、DOM、スクリーンショット、タブリストを1回の呼び出しで行います。
- DOMレベルのクリック、入力、フォーム入力、ドラッグ、CSSセレクターによるオプション選択
<select>。 - 参照IDによるアクセシビリティ・スナップショットベースのインタラクション — クリック、入力、ホバー、修飾キー付きキー押し、スクロール、ファイル入力アップロード。
- 動的要素を、設定可能なタイムアウトで待機し、必要に応じて可視状態を要求します。
- ページの文脈で JavaScript 表現を評価してください。
- マルチタブ管理:リスト、切り替え、一つまたは複数を同時に開いて閉じる。
- クッキー検査(値の黒塗り)と現在のドメインへの割り当て。
- バッチアクション実行 — 複数のブラウザステップを1回の呼び出しでシーケンスし、最初の失敗で停止します。
- 現在のページを
%USERPROFILE%または%TEMP%のPDFとして保存してください。 -
alert、confirm、prompt、beforeunloadのダイアログ処理。 - Microsoft Edge上で動作し、初回使用時に自動的に起動します。
UI アクセシビリティ
- 前景ウィンドウの Windows UI オートメーション tree を取得し、深度と要素数を設定できます。
- テキスト、役割、またはアクセシブルな名前でUI要素を見つけられます。
- ボタン、テキストボックス、チェックボックス、メニュー項目、コンボボックスの正確なターゲット化のためにクリック可能な画面座標を返します。
タイミングと同期
-
wait_millisecondsは、短い単発の一時停止(5秒まで)に使用します。 - DOMレベルのポーリング(最大30秒)には
browser_wait_forを使用してください。
メモ
- すべての座標は画面上のピクセル単位で表示され、左上に(0,0)が位置しています。
take_screenshot、analyze_screen、find_ui_element、list_windowsの座標はすべて同じ座標空間を共有します。 - カーソルフェイルセーフが有効です:カーソルが画面の隅から5ピクセル以内に移動すると、マウス操作はキャンセルされます。 画面の端を狙うのは避けましょう。
- シェルパイプ演算子(|)、セミコロン(;)、アンパサンド、&)、出力リダイレクト(>、 <)はブロックされています。 コマンド出力を変換するには、それをキャプチャして
execute_python_codeで処理します。 - インタプリタの評価フラグがブロックされたり、
python -c "..."とnode -e "..."が拒否された場合、Pythonコードにはexecute_python_codeを使うか、ファイルを先に書くことができます。 - コマンド
stdout/stderrはそれぞれ32KBに短縮されています。 フラグを使って長文の出力を制限したり(例:git log --oneline -20)、ファイルにリダイレクトして別々に読みます。 -
execute_shell_commandとexecute_python_codeの最大タイムアウトは30秒です。 長時間の作業なら、小さなステップに分けたり、Pythonからバックグラウンドプロセスを起動してポーリングを行ってください。 - 専用のファイル読み書きツールはありません。
execute_shell_commandコマンドを使ってtypeファイルを読みます。 Pythonの内蔵ファイルI/Oを使ってexecute_python_codeのファイルを書き込むことができます。 シェル出力のリダイレクト(>、 >>)がブロックされています。 -
browser_eval_js常に文字列を返します。 戻す前にオブジェクトや数値を明示的に変換してください。 - ブラウザのDOMツール(
browser_click、browser_type、browser_eval_jsなど)はMicrosoft Edgeインスタンスのみで動作します。focus_browserChromeやFirefoxのウィンドウに集中できますが、DOMツールはこれらをターゲットにしません。 -
take_screenshot全画面キャプチャには4つのトリミングパラメータ(x、y、幅、高さ)をすべて同時に設定するか、または全画面でトリミングしない必要があります。 -
scrollはピクセルではなく、[-20, 20] の範囲に制限されたノッチ単位を使用します。 3つのノッチはおよそ1ページに相当します。 -
find_ui_elementテキスト、役割、または名前のいずれかが少なくとも1つ必要です。 テキストと名前の両方が提供されている場合、名前が優先されます。 -
browser_snapshot参照はナビゲーション時に期限切れになります。_refツール(クリック、入力、ホバー、キー押し、スクロール、ファイル入力の設定)がスナップショットが古くなって失敗した場合は、再度スナップショットを取得して再挑戦してください。 -
browser_set_file_input_refユーザーのDocuments、Downloads、Desktop、または%TEMP%ディレクトリのファイルパスのみを受け入れます。 その場所以外のファイルは拒否されます。 -
browser_get_cookies必ず黒塗りされたクッキーの値を返します。 検査に使うと、名前、ドメイン、パス、フラグは完全に返されますが、値は公開されません。 -
browser_set_cookiesクッキーの追加または上書きのみです。 既存のクッキーはクリアされません。 クッキーを削除するには、このツールを使って期限切れのexpires値で上書きするか、ページ自体からクッキーをクリアしてください。 -
browser_execute_batch最初の失敗した操作で停止し、それまでに収集された結果のみを返します。 その後のアレイ内のアクションは試みられません。 許可されるバッチアクションは、navigate、snapshot、click_ref、type_ref、hover_ref、scroll_ref、keypress_ref、wait_for、eval_jsに限定されます。 -
browser_create_tabs指定された順序でタブを開きます。foregroundIndexを省略すると、現在有効なタブにフォーカスが残ります。 -
browser_get_page_statefields配列に記載されているフィールドのみを返します。 必要なものだけをリクエストしてください。domやscreenshotも含めて、大きなペイロードを生産できます。
一般的なユース ケース
ウェブフォームに記入してください
- ターゲットページを開くには
browser_navigateに電話してください。 - フォームの読み込みを待つために
browser_wait_forに電話してください。 -
browser_typeに電話して、CSSセレクターで各フィールドを埋めてください。 - フォームの提出は
browser_clickにお電話ください。 - 確認要素を待つために
browser_wait_forに電話してください。 -
browser_get_textに電話して結果を確認してください。
デスクトップアプリケーションの自動化
-
activate_windowに電話して、申請を前面に押し上げましょう。 -
take_screenshotを呼び出して現在の状態をキャプチャしてください。 - 名前でボタンやフィールドを探すには
find_ui_elementに電話してください。 - 要素の報告された座標で
clickを呼び出します。 -
type_textに電話してデータを入力してください。 - ショートカットを表示するには
press_keysを使用します(たとえば、保存するには["ctrl","s"])。 - 結果を確認するために
take_screenshotに電話してください。
ウェブページからデータを抽出する
- ページを開くには
browser_navigateに電話してください。 -
browser_get_textに電話して、見えるテキスト内容を抽出してください。 -
execute_python_codeを呼び出して、抽出したデータを解析し処理します。 - テキスト抽出だけでは不十分な場合は、JavaScript経由で特定の値をクエリするために
browser_eval_jsを呼び出してください。
開発タスクを実行する
-
execute_shell_command、git pull、npm installについてはdotnet buildに連絡してください。 -
take_screenshotを呼び出してビルド出力をキャプチャします。 - ログの分析やテスト結果を
execute_python_codeに電話してください。 - ブラウザでローカルの開発サーバーを開くには
browser_navigateを呼び出してください。 -
browser_screenshotに電話してレンダリングされたページをキャプチャしてください。
ファイルの読み書き
-
execute_shell_commandでtype C:\path\to\file.txtを使ってファイルを読みます。 -
execute_python_codeを使い、Pythonのopen(...)とwrite(...)を使ってファイルを書き込みます。 -
execute_shell_commandをdir C:\path\to\output.txtと使って確認してください。
アクセシビリティのある複雑なUIをナビゲート
- UIの全構造を理解するには
get_accessibility_treeに電話してください。 -
find_ui_elementに電話して特定のコントロール(例:role: "MenuItem"、name: "Settings")を見つけてください。 - 報告された要素の座標を使って
clickに連絡しろ。 - ダイアログの次のコントロールを見つけるためにもう一度
find_ui_element呼びかけてください。 -
type_textかclickに連絡して対応してください。
長く続くセッションを生かし続ける
- MCPのリクエストは少なくとも30分ごとに送信し、無駄な立ち退きを防ぎましょう。
-
get_screen_sizeは軽量で、ハートビートとしてうまく機能します。