必要な項目、操作、権限が対応 API に含まれるなら、その API を使います。画面専用の操作や目視確認が必要なら、許可されたブラウザーを使います。コネクターはどちらの経路も公開できます。最初に業務の完了条件を決めます。
必要な結果を先に決める
対象 ID、期待する状態、変更権限、後から読み取れる証拠を記録します。練習では注文をレビュー済みにします。正しい ID、reviewed、リビジョン 2 のすべてを確かめます。HTTP 応答だけでは三つを確認できません。
インターフェースと権限を選ぶ
文書化された API には要求と応答の契約があります。ブラウザーは許可されたセッションで画面の操作を行います。MCP はエージェントが名前付きツールを見つけて呼ぶ仕組みです。ツールが内部で使う経路と権限を確認し、不可逆な変更の前に対象と操作を承認します。
| 経路 | 適する場合 | 前提 | 独立した確認 |
|---|---|---|---|
| API | 文書化された操作 | アカウントやサービスの権限 | レコードとリビジョンを再取得 |
| MCP | 必要な操作を公開 | ツール契約 · ツール承認と内部の権限 | 元のレコードを読み直す |
| Browser | 画面専用の操作や目視 | 許可済みセッション | 再読み込みして状態を読む |
MCP Tools · Playwright MCP の導入 · ブラウザーエージェント
同じ要件で二つの経路を比べる
API では API-01 のリビジョン 1 と ETag を読み、条件付き更新で 200 を受け取りました。古い If-Match で繰り返すと 412 になり、別の読み取りでは reviewed、リビジョン 2 でした。Tabbit では UI-01 を開き、Mark reviewed を一度押して再読み込みし、同じ状態を確認しました。
| 実験 | 結果 |
|---|---|
| API の更新 | API-01 · HTTP 200 · reviewed · r2 |
| 古い If-Match | API-01 · HTTP 412 · reviewed · r2 |
| Tabbit でクリックし再読み込み | UI-01 · reviewed · r2 |
| 独立した API 読み取り | UI-01 · reviewed · r2 |

RFC 9110 If-Match · ブラウザー自動化 · UI テスト
安定した ID で手順を組み合わせる
一括読み取りや最終確認には許可された API を使えます。画面専用の操作はブラウザーに残し、同じ ID を次の手順に渡します。UI-01 の API 再読み取りは再読み込み後の画面と一致しました。許可された読み取り API がなければ画面で対象を開き直します。
Playwright API testing · AI エージェントでブラウザーを操作 · 既存のブラウザーに接続
変更や失敗に備える
API はスキーマ、権限、同時更新の規則に依存します。画面操作は経路、コントロール、セッションに依存します。タイムアウト後は再試行の前に結果を読みます。古い条件が拒否されたら状態を再確認します。ボタンが消えたり意味が変わったりした場合は停止します。
QA の参加者はブラウザー操作のあと API で検証すると説明しました。n8n の利用者は API がないためブラウザースクリプトを呼び出せる形にしました。呼び出しは簡単になっても画面への依存は残ります。 Reddit QA · Reddit n8n
完了時の記録を決める
対象 ID、使用経路、最終状態、可能なら別の読み取り結果を返します。セッションを解放する前に実行結果を保存します。ログに認証情報や個人情報を含めず、最終状態が確認できなければ未確認と記録します。
よくある質問
いつ API を優先しますか?
許可された操作と結果確認が対応範囲に含まれる場合です。
MCP コネクターは必ず API ですか?
ツールの公開方式です。内部では API、ブラウザーなどを使えます。
API とブラウザーを組み合わせられますか?
安定した ID を引き継ぎ、最終状態を別に確認できます。
Web UI しかない場合は?
許可された画面とセッションで操作し、期待する状態と停止条件を決めます。
HTTP 200 で完了ですか?
可能なら対象 ID と業務状態を独立した読み取りで確認します。
条件エラーやタイムアウト後は?
現在の状態を読み取り、再度の書き込みが必要か判断します。