Azure Functions で長期実行 MCP ツールを構築する方法
Azure Functions と MCP 拡張機能を使用してサーバーを構築している顧客は、クライアントによって課されるタイムアウトを超えるツールで課題に直面しています。現在の MCP ツールはリクエスト/レスポンス モデルで動作しますが、これはマルチステップまたは長時間実行される操作には適していません。ツール呼び出しに時間がかかりすぎると、クライアントはタイムアウトし、基盤となるタスクは続行される可能性があるにもかかわらず、エージェントは失敗として認識します。新しい MCP Tasks 拡張機能は、長時間実行される作業の非同期処理を標準化することを目的としています。この拡張機能により、サーバーはタスクハンドルで応答できるようになり、クライアントはステータスをポーリングしてタスクのライフサイクルを管理できます。ただし、Tasks 拡張機能は、クライアントと SDK の両方からの広範なエコシステムサポートを必要とします。これが広く利用可能になるまで、長時間実行されるタスクには Durable Functions を使用するパターンを実装できます。このパターンには、2 つの公開されたツールが含まれます。1 つはタスクを開始するためのもので、もう 1 つはそのステータスを取得するためのものです。開始ツールは、予算内で完了した場合はインライン結果を返し、まだ実行中の場合はワークフロー ID を返します。ステータス取得ツールはワークフロー ID を受け取り、推奨されるポーリング間隔を含むタスクの現在の状態を報告します。Tasks 拡張機能を使用すると、クライアントがタスクのライフサイクルを直接管理するため、モデルは簡素化され、エージェントがワークフロー ID のような識別子を管理する必要がなくなります。開発者は、提供されている Durable Functions のサンプルを試すことが推奨されます。