SmartsheetがAWS上でリモートMCPサーバーを構築した方法
この記事では、SmartsheetのリモートMCPアーキテクチャの概要を、その背後にあるAWSインフラストラクチャに焦点を当てて説明します。セキュリティ、ガバナンス、スケーリングとデプロイ、そしてSmartsheetがAWS上で構築したAI固有の最適化が含まれます。
Smartsheetは、数十万の組織が利用するエンタープライズワーク管理プラットフォームです。エンタープライズチームがAIエージェントを採用するにつれて、これらのエージェントはSmartsheetのようなシステム内のデータに構造化されたアクセスを必要としますが、ほとんどのシステムはそのために構築されていません。このギャップを埋めるために、SmartsheetはAWS上にリモートモデルコンテキストプロトコル(MCP)サーバーを構築し、AIクライアントがそのデータと機能に直接アクセスできるようにしました。Amazon QuickやClaude DesktopなどのAIアシスタントは、自然言語を通じてSmartsheetの機能と対話し、プロジェクトデータの分析、タスクの更新、シートの作成、ワークスペースの管理などを支援します。
企業はまた、人間のプロンプトなしで動作するワークロード向けにカスタムAIエージェントを構築しています。これらのAIエージェントは自律的に役割を果たし、MCPを使用してSmartsheetを通じて調整します。例としては、要件のキャプチャ、タスクの取得、テスト結果の添付、ドキュメントのドラフト作成などがあります。これらは人間のカウンターパートと同じシートで行われ、数週間かかるワークフローを数日または数時間に圧縮します。
MCPサーバーは、Smartsheetの既存のAPIと中央インテリジェンスレイヤーに接続します。また、トークンコストを最小限に抑え、幻覚を防ぎ、大規模言語モデル(LLM)がエンタープライズデータを確実に扱えるように設計されたAI最適化インターフェースを追加します。ローンチ以来、Smartsheetは内部テレメトリーに基づき、これらの最適化により30億以上のトークンを節約しました。
アーキテクチャ面では、1つのMCPレイヤーが内部と外部の両方のエージェントにサービスを提供します。Smartsheet独自のSmart Assist(製品内AIエクスペリエンス)と、Amazon Quickなどの外部接続AIクライアントは、同じインフラストラクチャ上で、同じツール、最適化、インテリジェンススタックを使用して実行されます。このパリティは意図的なアーキテクチャ上の選択です。Smartsheetは一度構築すれば、すべてのエージェントクライアントが即座に恩恵を受けます。アーキテクチャ的に重要なAWSサービスには、ステートレスサーバーコンテナ用のAWS Fargate for Amazon ECS、変更イベントをAmazon S3に取り込むためのAmazon Kinesis Data StreamsとAmazon Managed Service for Apache Flink、LLM推論とナレッジグラフを強化するAmazon BedrockとAmazon Neptuneが含まれます。
デプロイとスケーリングに関して、AIトラフィックは従来のリクエストパターンとは異なります。エージェントはツールコールのシーケンスを自律的に調整し、タスクを処理する間に1秒に複数のリクエストを発行し、モデルが推論している間は静かになります。このバーストパターンには、突然のスパイクと持続的なスループットの両方に対応するスケーリング戦略が必要です。SmartsheetはMCPサーバーをAWS Fargate for Amazon ECS上で実行するように構築しました。ECS Auto Scalingは、トラフィック量と計算利用率を組み合わせたターゲット追跡ポリシーを使用します。計算認識型スケーリングが重要なのは、各リクエストがLLM最適化シリアライゼーションなどのサーバー側処理を含むためであり、単なるプロキシではないからです。実運用に近いトラフィックパターンでの広範な負荷テストにより、インフラストラクチャがエージェントのバーストを吸収し、劣化しないことが検証されました。
ガバナンスと可観測性については、エンタープライズ顧客にとって、ガバナンスはAI導入のゲート要因です。Smartsheetはそれをツールフレームワーク自体に組み込みました。アクセス制御、エラーハンドリング、監査トレイルは、デフォルトですべてのツールに付属しています。アクセスは組織ごとに階層化されています。管理者はAIアクセスをグローバルに有効にしたり、非破壊的操作のみに制限したり、完全な書き込みおよび破壊機能を開放したりでき、各組織が導入カーブを制御できます。ツールにはreadOnlyHintやdestructiveHintなどのMCPプロトコルアノテーションが付与されており、AIクライアントが適切な確認フローを自動的に適用できるようになっています。サーバーは、リクエストライフサイクル全体にわたってOpenTelemetryシグナル(ログ、トレース、メトリクス)を出力します。すべてのツール呼び出しは、プライバシー制約の範囲内で最大のコンテキスト(ユーザー、組織、ツール名、結果など)をキャプチャします。これにより、使用状況の洞察とコンプライアンス監査の基盤が提供されます。
セキュリティ面では、MCPサーバーはSmartsheetの本番APIと同じセキュリティインフラストラクチャの背後で実行されます。AWS WAFとAWS Shieldがエッジにあり、VPC内のプライベートサブネット、サービス間通信用の相互TLS、および認証されていないリクエストをコンピュートに到達する前に拒否するOAuth2プロキシがあります。MCPサーバーは、AWSのMCPサーバーデプロイガイダンスにおける多層防御モデルに従います。APIゲートウェイレイヤーが認証とスコープ検証を処理します。ドメインサービスはきめ細かい権限を処理します。ユーザーがUIを介してシートにアクセスできない場合、MCPを介してもアクセスできません。AIトラフィックは、独特のレート制限の課題を追加します。1つのユーザー質問が数秒で複数のツール呼び出しをトリガーする可能性があります。多くのエンタープライズユーザーは共有企業プロキシの背後にいるため、IPベースのレート制限は信頼できません。これに対処するため、SmartsheetはAWS WAFを介して階層化レート制限を実装しました。3つのレイヤーが連携します。外側のエッジでの包括的な保護、カスタム集約キーを使用したIDヘッダーでのユーザーごとのメータリング、および高コスト操作のためのパス固有の制御です。ユーザーごとのメータリングにより、セッションはIPごとにプールされるのではなく、個別にメータリングされます。
非決定的AIワークフローのテストに関して、Smartsheetは標準的なテストレイヤー(単体テスト、統合テスト、ツールレベルの検証)を維持しています。しかし、MCPサーバーは従来のAPIサービスにはないテスト上の課題を導入します。従来のAPI応答はUIによって決定論的にレンダリングされます。MCPツール応答は最初にLLMを通過します。モデルはそれを解釈し、推論し、ユーザーが実際に目にするものを生成します。その非決定性の層が、テストにおける「正しい」の意味を変えます。Smartsheetは、LLMを含むエンドツーエンドのワークフローテストに多額の投資を行っています。これらのテストは、現実的なビジネスシナリオ(ワークスペースの作成、データの書き込み、結果のクエリ、モデルの解釈がエンドユーザーにとって意味があるかの検証)をシミュレートします。これらのテストはCI/CDパイプライン(GitLab CI、AWSでホストされるランナー)で実行され、各本番AWSリージョンに対して継続的にカナリアテストとして実行されます。
AI消費の最適化について、エンタープライズがAIエージェントのデプロイを拡大するにつれて、トークン消費は実際のコストドライバーになります。すべてのツール応答はLLMでコストがかかり、コンテキストウィンドウ容量を争います。現在、ほとんどのMCPツール呼び出しは、サブエージェントオーケストレーションなしで実行されます。エージェントはツールを直接、一度に1つずつ呼び出し、各ステップの間で推論します。インテリジェントなツール設計がなければ、これはすぐに遅く、高コストで、エラーが発生しやすくなります。Smartsheetは3つのレベルで最適化しています。応答ごとのトークン消費を制限する段階的開示、幻覚パラメータと無駄な呼び出しを防ぐ強く型付けされたツールスキーマ、データ集約型応答のトークン数を35~47%削減する独自のシリアライゼーション形式です。
要約すると、SmartsheetのリモートMCPサーバーアーキテクチャは、エンタープライズワーク管理プラットフォームをAIエージェントと統合し、セキュリティ、スケーラビリティ、コスト効率を確保する方法を示しています。