

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 接続モード
<a name="agent-access-mcp-server-connect-mode"></a>

モデルコンテキストプロトコル (MCP) リクエストで `x-amzn-agentaccess-connect-mode`ヘッダーを設定することで、エージェントがデスクトップセッションが利用可能になるまでの待機方法を制御できます。

**注記**  
接続モードは、non-domain-joinedフリートとドメイン結合フリートの両方に適用されます。フリートタイプが使用する認証メカニズムとともに `x-amzn-agentaccess-connect-mode` ヘッダーを設定します。non-domain-joinedフリートの場合、スタックとユーザー ID ヘッダーまたは streaming-URL ヘッダーのいずれかです。ドメインに参加しているフリートの場合、これは SAML アサーションメタデータです。

次の方法を使用できます。
+ **BLOCKING** (デフォルト): MCP サーバーは、応答する前にデスクトップ接続が完全に確立されるまで待機します。が `tools/list`を返すと、すべてのツールがすぐに使用できます。
+ **POLLING**: MCP サーバーはデスクトップ接続を待たずにすぐに応答します。最初は、 `connection_status` ツールのみを使用できます。エージェントは、接続が確立されるまでこのツールをポーリングします。接続が確立されると、完全なツールセットが使用可能になります。

デスクトップ接続を待っている間にエージェントが他の作業を実行できるようにする場合、または接続タイムアウト動作をより詳細に制御する必要がある場合は、POLLING モードを使用します。

次の例は、ポーリングモードを使用する方法を示しています。

```
# Pass the header when creating the MCP connection
headers = {
    "x-amzn-agentaccess-streaming-session-url": streaming_url,  # non-domain-joined fleets
    "x-amzn-agentaccess-connect-mode": "POLLING",
}

# After initialize, tools/list returns immediately with connection_status
tools = await session.list_tools()
# tools = [connection_status]

# Poll connection_status until the desktop is ready
while True:
    result = await session.call_tool("connection_status", {})
    status = json.loads(result.content[0].text)
    if status["state"] == "CONNECTED":
        break
    time.sleep(2)

# Now tools/list returns the full set (screenshot, left_click, type_text, and so on)
tools = await session.list_tools()
```

**クリーンアップ**: 継続的なストリーミング料金を回避するには、エージェントが作業を終了したときに WorkSpaces アプリケーションストリーミングセッションを終了します。セッションが閉じられるようにエージェントを切断し、アイドル状態のセッションは実行したままにしないでください。