Smartsheet が AWS で MCP サーバー構築
Smartsheet は AWS Fargate と ECS を活用し、AI エージェントが構造化データに直接アクセスできるリモート MCP サーバーを構築し、トークンコストの削減とハルシネーション防止を実現した。
キーポイント
MCP サーバーの実装とアーキテクチャ
Smartsheet は AWS Fargate と ECS を使用してステートレスなサーバーコンテナを構築し、内部の Smart Assist と外部の AI クライアント(Amazon Quick など)が共通インフラ上で動作する単一の MCP レイヤーを実現した。
AI 最適化とコスト削減効果
既存 API の上に AI 最適化インターフェースを追加することでトークン使用量を最小化し、ハルシネーションを防止する仕組みを導入。その結果、ローンチ以降で内部計測により 30 億トークンの削減に成功した。
自律型 AI エージェントの活用
人間の指示を待たずに要件のキャプチャやタスク引き受け、ドキュメント起草などを自動実行する自律型エージェントが Smartsheet を介して連携し、数週間かかっていたワークフローを数時間単位に短縮している。
重要な引用
Smartsheet built a remote Model Context Protocol (MCP) server on AWS that gives AI clients direct access to its data and capabilities.
Since launch, Smartsheet saved over 3 billion tokens, based on internal telemetry, through these optimizations.
These happen in the same sheets their human counterparts use, compressing workflows that took weeks into days or hours.
影響分析・編集コメントを表示
影響分析
この記事は、MCP という新しいプロトコルが単なる概念ではなく、AWS 上の具体的なインフラで実装され、大規模なエンタープライズ環境で即座に価値を発揮していることを示す重要な事例です。特に「30 億トークンの削減」という数値は、AI エージェントの実運用におけるコスト最適化の重要性と、MCP がその解決策として機能する可能性を強く示唆しています。
編集コメント
MCP プロトコルの実装事例として、Smartsheet が AWS のサーバーレス技術と組み合わせることで、トークンコスト削減という明確な ROI を達成した点は非常に示唆に富んでいます。これは、AI エージェントが単なる実験段階から、エンタープライズ業務の根幹を支える自律的なインフラへと進化している過程を如実に表しています。
Smartsheet は、数十万の組織が信頼するエンタープライズ向けワーク管理プラットフォームです。企業チームが AI エージェントの導入を進める中で、これらのエージェントは Smartsheet などのシステム内部データへの構造化されたアクセスを必要としますが、既存のシステムの多くはそのような用途には対応していません。
このギャップを埋めるため、Smartsheet は AWS 上にリモート Model Context Protocol (MCP) サーバーを構築しました。これにより、AI クライアントは Smartsheet のデータや機能に直接アクセスできるようになります。Amazon Quick や Claude Desktop といった AI アシスタントを使えば、自然言語で Smartsheet の機能を操作できます。プロジェクトデータの分析、タスクの更新、シート作成、ワークスペース管理などが、言葉による指示だけで実行可能です。
企業ではまた、人間の指示を待たずに稼働する業務向けにカスタム AI エージェントも構築されています。これらのエージェントは MCP を介して Smartsheet 上で連携しながら、自律的に役割を果たします。具体的には要件の収集、タスクの引き受け、テスト結果の添付、ドキュメントのドラフト作成などが該当します。これらは人間が普段使うシート上で行われるため、従来数週間かかっていたワークフローを数日、あるいは数時間に圧縮することが可能になります。
MCP サーバーは、Smartsheet の既存 API と中央集権的なインテリジェンス層に接続します。さらにその上に AI 最適化されたインターフェースを追加し、トークンコストの削減、ハルシネーション(幻覚)の防止、そして大規模言語モデル(LLM)がエンタープライズデータと確実に連携できる仕組みを実現しています。本格的な稼働以降、これらの最適化により Smartsheet は内部テレメトリデータに基づき、30 億トークン以上の削減を達成しました。
本稿では、Smartsheet のリモート MCP アーキテクチャの全体像を解説し、特にその背後にある AWS インフラストラクチャに焦点を当てます。ここではセキュリティ、ガバナンス、スケーリングとデプロイメント、そして Smartsheet が AWS 上で構築した AI 固有の最適化技術について取り上げます。
アーキテクチャ
1 つの MCP レイヤが、内部および外部のエージェント双方に対応します。Smartsheet 独自の Smart Assist(製品内 AI エクスペリエンス)も、Amazon QuickSight などの外部接続 AI クライアントも、同じインフラストラクチャ上で動作し、共通のツール、最適化手法、そしてインテリジェンススタックを利用しています。この同等性は意図的なアーキテクチャ上の選択です。「一度構築すれば、すべてのエージェント型クライアントが即座に恩恵を受ける」という設計思想に基づいています。
データパスにおいてアーキテクチャ上極めて重要な AWS サービスは以下の通りです:
Smartsheet のリモート MCP サーバー構築は、AWS Fargate を活用したステートレスサーバーコンテナ(Amazon ECS)を基盤としています。
データ取り込みには Amazon Kinesis Data Streams と Amazon Managed Service for Apache Flink を採用し、変更イベントを Amazon S3 へ転送します。また、LLM の推論処理やクロスプロジェクトの洞察を提供する知識グラフには、それぞれ Amazon Bedrock と Amazon Neptune を利用しています。
詳細なアーキテクチャの流れは以下の通りです。
- AI クライアントから API ゲートウェイ層を経て MCP サーバーへ:リクエストはまず AWS WAF、AWS Shield、AWS Application Load Balancer、そして OAuth 認証による検証層を通過し、その後 AWS Fargate 上で稼働する MCP サーバーに到達します。
- MCP サーバーからドメインサービスへ:トランザクション処理を行うため、MCP サーバーは Smartsheet のドメインサービスの API を呼び出します。
- MCP サーバーからインテリジェンス層へ:クロスプロジェクト型のエージェントによる洞察を得るため、Amazon Neptune と Databricks で構築されたインテリジェンス層を照会します。
- ドメインサービスからインテリジェンス層へ:変更イベントは Amazon Kinesis と Apache Flink を経由してストリーミングされ、Amazon S3 にバックアップされたインテリジェンス層に蓄積されます。このインテリジェンス層はメダリオンのアーキテクチャを採用しています。

*図 1: AWS 上の Smartsheet MCP サーバーのアーキテクチャ*
エッジ保護、コンテナレジストリ、観測性(オバザビリティ)、シークレット管理などの関連サービスについては、後続の各セクションで詳しく説明します。
デプロイとスケーリング
スケーリングの観点では、AI トラフィックは従来のリクエストパターンとは一線を画します。エージェントは自律的にツール呼び出しのシーケンスを調整し、タスクを処理する間に数秒間に複数のリクエストを発行しますが、モデルが推論を行う間は静寂に戻ります。このバースト性の高いパターンに対応するには、突発的な急増と持続的なスループットの両方に柔軟に応答できるスケーリング戦略が必要です。
こうしたパターンを処理し検証するために、Smartsheet は MCP サーバーを AWS Fargate 上で動作する Amazon ECS 上に構築しました。ECS の自動スケーリング機能では、トラフィック量と計算リソースの使用率を組み合わせたターゲット追跡ポリシーを採用しています。各リクエストが単なるプロキシではなく、LLM 最適化されたシリアライゼーションなどのサーバーサイド処理を伴うため、計算リソースを意識したスケーリングが不可欠です。本番環境に近いトラフィックパターンでの徹底的な負荷テストにより、インフラがエージェントのバーストを吸収してもパフォーマンスが低下しないことが実証されました。
デプロイの側面では、アクティブなエージェントセッションを中断せずに更新を配信することも同様に重要です。コンテナイメージは Amazon Elastic Container Registry(Amazon ECR)に保存され、継続的インテグレーション・継続的デリバリー(CI/CD)パイプラインを通じて、多層の安全網で展開されます。ECS のデプロイメント用サーキットブレーカーが展開中に失敗したコンテナを検知すると、自動的に直前の安定バージョンへロールバックします。手動での介入は不要であり、顧客への影響も回避できます。
デプロイは、影響範囲を最小限に抑えるという AWS Well-Architected の原則に従い、まず最も小規模なリージョンから順次展開されます。各リージョンの展開後には、自動化されたエンドツーエンドテストが実行され、本番環境におけるツールの動作を検証します。
カナリテストは 15 分ごとに実行され、完全な認証およびゲートウェイ経路を介したマルチステップ MCP ワークフローを実行します。その結果は監視スタックにフィードバックされるため、顧客からの報告が来る前にパフォーマンスの低下を検知することが可能です。ECS Fargate と ALB を組み合わせた構成の詳細は、AWS による MCP サーバーのデプロイガイド に記載されています。
ガバナンスと観測性
エンタープライズ顧客にとって、AI の導入における最大の障壁はガバナンスです。Smartsheet ではこれをツールフレームワーク自体に組み込みました。アクセス制御、エラーハンドリング、監査証跡は、すべてのツールにデフォルトで備わっています。
アクセス権限は組織ごとに階層化されています。管理者は、AI へのアクセスを全社的に有効にするか、破壊的な操作のみを制限するか、あるいは完全な書き込みおよび破壊的機能まで開放するかを選択でき、各組織が自らの導入ペースをコントロールできます。ツールには readOnlyHint や destructiveHint といった MCP プロトコルの注釈が付与されており、AI クライアントはこれに基づいて自動的に適切な確認フローを適用します。
サーバーは、リクエストのライフサイクル全体にわたって OpenTelemetry シグナル(ログ、トレース、メトリクス)を出力します。すべてのツール呼び出しでは、プライバシーの制約内で可能な限り最大限のコンテキスト(ユーザー、組織、ツール名、結果など)を取得し記録しています。これにより、利用状況の分析やコンプライアンス監査の基盤が整います。
エージェントからのトラフィックは、従来の API トラフィックよりも監視が困難です。1 つのユーザーリクエストが複数のツール呼び出し連鎖を生み出すことがあり、障害が発生した場合も原因を遡って数段階先まで追跡する必要があります。Smartsheet では、エージェントファーストなアイデンティティとトレーシングを導入し、ツールチェーン全体にわたるコンテキストの相関付けを通じて観測性を強化しています。ログは Amazon Kinesis を経由して Amazon OpenSearch Service にストリーミングされ、AWS Observability Best Practices のパターンに従って処理されます。インフラストラクチャのメトリクスは Amazon CloudWatch で可視化されています。また、Datadog によってツールごとのアプリケーションパフォーマンス監視(APM)が可能となり、PagerDuty がインシデントのルーティングを担っています。
すべての呼び出しでは、Amazon Simple Queue Service(Amazon SQS)を通じて構造化された分析イベントが Intelligence Layer へ送信されます。これによりフィードバックループが完結し、実際の稼働データに基づいて優先すべきツールの選定や、最適化戦略の実負荷下での効果検証が可能になります。
AI エージェントの通信を保護する
MCP サーバーは、Smartsheet の本番 API と同じセキュリティインフラストラクチャの背後で稼働しています。エッジでは AWS WAF と AWS Shield が防御を行い、仮想プライベートクラウド(VPC)内のプライベートサブネットがネットワークを隔離します。サービス間の通信には相互 TLS(mTLS)を採用し、認証されていないリクエストは計算リソースに到達する前に OAuth2 プロキシによって拒否されます。MCP サーバーは、AWS の MCP サーバーデプロイメントガイダンス に基づく「多層防御」のモデルに従っています。
API ゲートウェイレイヤーが認証とスコープ検証を担当し、ドメインサービスではより細粒度な権限管理を行います。つまり、UI を通じてシートにアクセスできないユーザーは、MCP 経由でもそのシートにはアクセスできません。
AI による通信には、特有のレート制限(速度制御)の課題が伴います。ユーザーの単一の質問に対して、数秒のうちに複数のツール呼び出しが発生する可能性があるからです。また、多くの企業ユーザーが共有された社内プロキシの背後にいるため、IP アドレスに基づく従来のレート制限は信頼性が低くなります。
この課題に対処するため、Smartsheet は AWS WAF を活用した多層型のレート制限を実装しました。3 つのレイヤーが連携して機能します。まず外側のエッジで包括的な保護を行い、ID ヘッダーのカスタム集計キーを用いてユーザーごとの使用量をメーターリングし、さらに高負荷な操作についてはパスごとの制御を設けます。ユーザーごとのメーターリングとは、IP アドレス単位でプールするのではなく、セッションごとに個別にカウントする仕組みです。この多層型のレート制限は、AWS WAF のレートベースルールにおける 3 つの最重要項目のパターンに従っています。
非決定性の AI ワークフローのテスト
Smartsheet では従来通り、単体テスト、統合テスト、ツールレベルでの検証という標準的なテストレイヤーを維持しています。しかし、MCP サーバーは従来の API サービスにはない独自の課題を生み出します。通常の API のレスポンスは UI によって決定論的にレンダリングされますが、MCP ツールのレスポンスは一度 LLM を経由します。モデルがそれを読み取り、推論を行い、最終的にユーザーが目にする内容を生成するのです。この非決定性のレイヤーが存在することで、「テストで正しいとは何か」という定義そのものが変化します。
Smartsheet は、LLM をループに組み込んだエンドツーエンドのワークフローテストに多大な投資を行っています。これらのテストでは、ワークスペースの作成やデータ入力、結果の照会、そしてモデルによる解釈がエンドユーザーにとって妥当かどうかを検証するなど、現実的なビジネスシナリオをシミュレートします。これらは CI/CD パイプライン(AWS にホストされたランナーを持つ GitLab CI)で実行されるほか、各プロダクション AWS リージョンに対してカナリテストとして継続的に実施されています。
AI 利用効率の最適化
企業が AI エージェントの導入を拡大するにつれ、トークンの消費量がコスト増の主要因となっています。LLM への呼び出しごとにツール応答のコストが発生し、コンテキストウィンドウの容量も奪われます。現在、多くの MCP ツール呼び出しはサブエージェントによる調整なしに実行されており、エージェントが一度に一つのツールを直接呼び出して、ステップごとの推論を行っています。ツール設計に知恵がなければ、処理はすぐに遅くなり、高額になり、エラーも多発します。各ツール呼び出しは独立して効率的である必要があるため、Smartsheet では以下の 3 つのレベルで最適化を図っています。
- トークン消費をレスポンスごとに制限する段階的開示(プログレッシブ・ディスクロージャー)
- 幻覚的なパラメータや無駄な呼び出しを防ぐための厳密な型付けされたツールスキーマ
- データ量の多い応答においてトークン数を 35〜47% 削減する独自シリアライゼーション形式
段階的開示
各ツールの応答は、あらかじめ設定されたトークン予算に収まるように設計されています。サーバーは列数とデータ密度に基づいて、レスポンスに含まれる行数を動的に計算します。例えば、5 列のシートなら 15 列のシートよりも多くの行を返すことができますが、総量は予算内に抑えられます。シートの行数が 50 行であっても 5 万行であっても、応答サイズは常に一定範囲内に保たれます。モデルはまず全体像を把握し、ユーザーの具体的な質問に基づいてフィルタリングをかけて詳細へと絞り込んでいきます。
メタデータフィールドは、モデルに対して何が起こったかを正確に伝えます。is_sampled はデータが切り捨てられたかどうかを示し、rows_in_sheet はシートの行数全体を、rows_actual は実際に返された行数を、そして filters_applied は適用中のフィルタの内容を記述します。モデルはこの情報をもとに、完全な状況を把握できているか、それともフィルタを使ってクエリを絞り込む必要があるかを判断します。
段階的な開示(プログレッシブ・ディスクロージャー)はサーバー側で決定されます。MCP サーバーが予算管理やサンプリングを担当し、返されるメタデータを通じて AI クライアントに信号を送ることで、クライアント自身がフォローアップクエリを調整できるようにします。

*図 2: 段階的な開示の実際の様子。AI クライアントはメタデータ付きでサンプリングされたデータを受け取り、その後、ターゲットを絞ったフォローアップリクエストを行います。
LLM を現実に引き戻す:スキーマ駆動型のツール契約
LLM を現実(グランド)に留めておくことは極めて重要です。制約がないと、モデルはパラメータ名をでっち上げたり、存在しない演算子を発明したりして、失敗した呼び出しにトークンを浪費します。
各ツールは、Pydantic モデルから生成された厳格な JSON スキーマを MCP のツールディスカバリーを通じて公開しています。パラメータは有効な列挙型(enum)に制限され、実行前に列名が実際のシートと照合されます。不一致が生じた場合は、静かに失敗するのではなく、有効な選択肢を含む構造化されたエラーを返します。
スキーマ検証によって、境界面で hallucination(幻覚)を検知できるため、エージェントは試行錯誤なしにツールカタログを確実にナビゲートできるようになります。
トークン効率を高めるシリアライゼーション
JSON の構造的オーバーヘッド(中括弧、引用符、キー名の繰り返し)は、通常レスポンスのトークン数の 15〜25% を占めます。数千行にわたるスプレッドシートデータを返すサーバーの場合、このオーバーヘッドがすぐに膨らんでしまいます。
Smartsheet はこのオーバーヘッドを解消する独自シリアライゼーション形式を開発しました。キー名は各レコードごとに繰り返されるのではなく、一度だけ記述されます。また、構文自体もより効率的にトークン化できる区切り文字に置き換えられています。代表的な 33 件のフィルタリングクエリでは、最適化されたレスポンスは約 3,900 トークンに対し、同等の JSON は 6,000 トークンを超え、同じ情報を伝えるのに約 35% もトークンを削減できました。1,000 行に達するとその差はさらに広がります。JSON ではオブジェクトごとにキー名が繰り返される一方、最適化形式では一度だけ宣言すれば済むからです。
Smartsheet の今後の展望
現在、AI エージェントは MCP を通じて Smartsheet と統合されています。一般提供(GA)から最初の 4 週間で、ユーザー数は前週比で 87% 以上増加しました。
MCP はあくまで配信レイヤーです。次なるステップは、接続点そのものに知能を持たせることです。例えば、利用する個人やチーム、組織に合わせて動的に形を変えるリソースが挙げられます。また、ワークフロー上で自律的に動作するエージェントや、専門家が各ステップでゼロから思考を始めるのではなく、推論を互いに引き継げるルーティングレイバーもその一例です。MCP 接続はそのままに、顧客ごとに異なる知能を提供し、デプロイの手間は一切不要です。
AWS は、こうした新興するエージェント要件に対応するため、インフラの進化を続けています。Amazon Bedrock AgentCore では、実行環境の提供やリソースの発見、パーソナライゼーション、ガバナンスといった機能が標準で用意されています。Smartsheet は引き続き、AWS のこうした機能を積極的に採用し、自社のニーズに合わせて機能強化を進めています。
MCP プロトコル自体も進化を続けています。Elicitations により、破壊的な操作を実行する前に人間による確認(ヒューマン・イン・ザ・ループ)が可能になりました。また、MCP Apps を活用すれば、対話型 UI を AI 会話の中に直接組み込むことができます。さらに Tasks は、非同期で長時間実行されるオペレーションをサポートします。Smartsheet では、これらの機能が成熟するにつれて導入を検討しています。
AI の進化は速いです。AWS を基盤にすることで、新しいプロトコルやモデル、あるいは全く新しいエージェントアーキテクチャが登場しても、常にそのペースに合わせていくためのインフラを提供できます。
Smartsheet の MCP サーバーへ接続するには、AWS Marketplace のリストページをご覧ください。または、Smartsheet MCP ドキュメント を参照してください。
執筆者について

Vasil Kosturski
Vasil は Smartsheet のシニアエンジニアであり、同社のリモート MCP サーバーを概念段階から一般提供(GA)まで導いたチームのリーダーを務めています。この投稿で取り上げるシステム設計、AWS におけるアーキテクチャ構築、そして AI に特化した最適化の実現も彼が主導しました。より広範な視点では、Smartsheet の開発者エコシステムの全体に関わり、パブリック API プラットフォームの整備にも携わっています。
Smartsheet 入社前は、分散システムとリアルタイムデータ処理に 10 年以上従事し、直近では Sportradar でリードデベロッパーとして、大量データを扱う Kafka ベースのイベント処理パイプラインを構築していました。現在はブルガリアのプロヴディフに拠点を置いています。
原文を表示
Smartsheet is an enterprise work management platform that hundreds of thousands of organizations rely on. As enterprise teams adopt AI agents, those agents need structured access to the data inside systems like Smartsheet, but most systems aren’t built for that. To bridge this gap, Smartsheet built a remote Model Context Protocol (MCP) server on AWS that gives AI clients direct access to its data and capabilities. AI assistants like Amazon Quick and Claude Desktop help users interact with Smartsheet’s capabilities through natural language, analyzing project data, updating tasks, creating sheets, managing workspaces, and more.
Enterprises are also building custom AI agents for workloads that run without human prompting. These AI agents can work autonomously in their roles, coordinating through Smartsheet using MCP. A few examples are capturing requirements, picking up tasks, attaching test results, drafting documentation. These happen in the same sheets their human counterparts use, compressing workflows that took weeks into days or hours.
The MCP server connects to Smartsheet’s existing APIs and central intelligence layer. It also adds an AI-optimized interface on top, designed to minimize token cost, help prevent hallucination, and help large language models (LLMs) work reliably with enterprise data. Since launch, Smartsheet saved over 3 billion tokens, based on internal telemetry, through these optimizations.
In this post, we cover a high-level view of the Smartsheet remote MCP architecture, with a focus on the AWS infrastructure behind it. This includes security, governance, scaling and deployment, and the AI-specific optimizations Smartsheet built on AWS.
Architecture
One MCP layer serves both internal and external agents. Smartsheet’s own Smart Assist (the in-product AI experience) and externally connected AI clients like Amazon Quick run on the same infrastructure, with the same tools, optimizations, and intelligence stack. This parity is a deliberate architectural choice: Smartsheet builds once and every agentic client benefits immediately.
The architecturally critical AWS services in the data path are:
- AWS Fargate for Amazon Elastic Container Service (Amazon ECS) for stateless server containers.
- Amazon Kinesis Data Streams and Amazon Managed Service for Apache Flink for change-event ingestion into Amazon Simple Storage Service (Amazon S3).
- Amazon Bedrock and Amazon Neptune for LLM inference and knowledge graph powering cross-project insights.
The detailed architecture flow is as follows:
- AI clients to API gateway layer to MCP Server: Requests pass through an API gateway layer (AWS WAF, AWS Shield, AWS Application Load Balancer, and OAuth validation) before reaching the MCP server on AWS Fargate.
- MCP Server to Domain Services: The MCP server calls Smartsheet’s domain services through their APIs for transactional operations.
- MCP Server to Intelligence Layer: The MCP server queries the Intelligence Layer built on Amazon Neptune and Databricks for cross-project agentic insights.
- Domain Services to Intelligence Layer: Change events stream through Amazon Kinesis and Apache Flink into the Amazon S3-backed intelligence layer. The Intelligence Layer follows the medallion architecture.

*Figure 1: Smartsheet MCP Server architecture on AWS.*
Supporting services such as edge protection, container registry, observability, secrets appear in the relevant sections in the following sections.
Deployment and scaling
On the scaling side, AI traffic differs from conventional request patterns. Agents autonomously orchestrate sequences of tool calls, firing several requests in a second as they work through a task, then going quiet while the model reasons. This bursty pattern demands a scaling strategy that responds to both sudden spikes and sustained throughput.
To handle and validate this pattern, Smartsheet built the MCP server to run on AWS Fargate for Amazon ECS. ECS Auto Scaling uses target-tracking policies, combining traffic volume with compute utilization. Compute-aware scaling matters here because each request involves server-side processing like LLM-optimized serialization, not only proxying. Extensive load testing under production-like traffic patterns validated that the infrastructure absorbs agent bursts without degradation.
On the deployment side, shipping updates without disrupting active agent sessions is equally critical. Container images are stored in Amazon Elastic Container Registry (Amazon ECR) and rolled out by the continuous integration and continuous delivery (CI/CD) pipeline through a layered safety net. ECS deployment circuit breakers detect failing containers during rollout and automatically revert to the last stable version. Manual intervention is not needed, and customer impact is avoided.
Deployments roll out to the smallest region first, following the AWS Well-Architected principle of reducing impact radius. After each region, automated end-to-end tests validate tool behavior against the live environment. Canary tests run every 15 minutes, executing a multi-step MCP workflow through the full authentication and gateway path. Results feed into the monitoring stack so degradation surfaces before customer reports. The ECS Fargate with ALB pattern is documented in the AWS Guidance for Deploying MCP Servers.
Governance and observability
For enterprise customers, governance is the gating factor for AI adoption. Smartsheet built it into the tool framework itself: access control, error handling, and audit trails ship with every tool by default.
Access is tiered per organization: administrators can turn on AI access globally, restrict to non-destructive operations only, or open up full write and destructive capabilities, giving each organization control over their adoption curve. Tools carry MCP protocol annotations like readOnlyHint and destructiveHint so AI clients apply appropriate confirmation flows automatically.
The server emits OpenTelemetry signals (logs, traces, and metrics) across the full request lifecycle. Every tool invocation captures the maximum context possible within privacy constraints: user, organization, tool name, outcome, and more. This provides the foundation for usage insights and compliance auditing.
Agent traffic is harder to observe than traditional API traffic. A single user request can produce a chain of tool calls, and failures often trace back several steps. Smartsheet is extending its observability with agent-first identity and tracing, correlating context across tool chains. Logs stream through Amazon Kinesis into Amazon OpenSearch Service following the AWS Observability Best Practices pattern, with infrastructure metrics surfaced through Amazon CloudWatch. Datadog provides per-tool application performance monitoring (APM) visibility, and PagerDuty handles incident routing.
Every invocation also emits a structured analytics event through Amazon Simple Queue Service (Amazon SQS) into the Intelligence Layer. This closes the feedback loop: production usage data informs which tools to prioritize and how optimization strategies perform across real workloads.
Securing AI agent traffic
The MCP server runs behind the same security infrastructure as Smartsheet’s production APIs. AWS WAF and AWS Shield are at the edge, with private subnets in a virtual private cloud (VPC), mutual TLS (mTLS) for service-to-service calls, and an OAuth2 proxy that rejects unauthenticated requests before they reach compute. The MCP server follows the defense-in-depth model in the AWS Guidance for Deploying MCP Servers. The API gateway layer handles authentication and scope validation. Domain services handle fine-grained permissions. If a user can’t access a sheet through the UI, they can’t access it through MCP either.
AI traffic adds a distinctive rate-limiting challenge. A single user question can trigger several tool calls in seconds. Many enterprise users sit behind shared corporate proxies making IP-based rate limiting unreliable.
To address this, Smartsheet implemented layered rate limiting through AWS WAF. Three layers work together: blanket protection at the outer edge, per-user metering using custom aggregation keys on an identity header, and path-specific controls for expensive operations. Per-user metering means sessions are metered individually rather than pooled by IP. The layered rate limiting follows the three most important AWS WAF rate-based rules pattern.
Testing non-deterministic AI workflows
Smartsheet maintains the standard testing layers: unit tests, integration tests, tool-level validation. The MCP server, however, introduces a testing challenge that traditional API services don’t face. A conventional API response gets rendered deterministically by the UI. An MCP tool response passes through an LLM first. The model interprets it, reasons over it, and generates what the user actually sees. That layer of non-determinism changes what “correct” means for testing.
Smartsheet invests heavily in end-to-end workflow tests that include the LLM in the loop. These tests simulate realistic business scenarios: creating workspaces, writing data, querying results, and verifying that the model’s interpretation makes sense to the end user. These tests run in the CI/CD pipeline (GitLab CI with runners hosted on AWS) and continuously as canary tests against each production AWS Region.
Optimizing for AI consumption
As enterprises scale AI agent deployments, token consumption becomes a real cost driver. Every tool response costs money at the LLM and competes for context window capacity. Most MCP tool calls today run without sub-agent orchestration. The agent calls tools directly, one at a time, reasoning between each step. Without intelligent tool design, this gets slow, expensive, and error-prone fast. Each tool call must be self-contained and efficient on its own, which is why Smartsheet optimizes at three levels:
- Progressive disclosure that caps token consumption per response.
- Strongly typed tool schemas that help prevent hallucinated parameters and wasted calls.
- A proprietary serialization format that reduces token count by 35–47 percent on data-heavy responses.
Progressive disclosure
Each tool response targets a token budget. The server dynamically calculates how many rows fit based on column count and data density. For example, a sheet with five columns can return more rows than one with 15 columns, but the total stays within budget. Whether a sheet has 50 rows or 50,000, the response size stays bounded. The model sees enough to orient, then narrows with filters based on what the user is actually asking about.
Metadata fields tell the model exactly what happened: is_sampled indicates whether data was truncated, rows_in_sheet gives the full count, rows_actual shows how many were returned, and filters_applied describes active filters. The model uses this to decide whether it has the full picture or needs to narrow its query with filters. Progressive disclosure is a server-side decision. The MCP server handles budgeting and sampling, while the metadata it returns gives the AI client the signals to orchestrate follow-up queries on its own.

*Figure 2: Progressive disclosure in action: the AI client receives sampled data with metadata, then makes targeted follow-up requests.*
Keeping LLMs grounded: Schema-driven tool contracts
Grounding the LLM is critical. Without constraints, models hallucinate parameter names, invent operators, and waste tokens on failed calls. Each tool publishes a strict JSON Schema through MCP’s tool discovery, generated from Pydantic models. Parameters are constrained to valid enums, column names are validated against the actual sheet before execution, and mismatches return structured errors with valid options instead of failing silently. Schema validation catches hallucinations at the boundary and means agents navigate the tool catalog reliably without trial and error.
Token-efficient serialization
JSON’s structural overhead (braces, quotes, repeated keys) typically consumes 15–25 percent of a response’s token count. For a server returning spreadsheet data with thousands of rows, the overhead adds up fast.
Smartsheet built a proprietary serialization format that alleviates this overhead. Key names appear once instead of repeating per row, and structural syntax is replaced by delimiters that tokenize more efficiently. On a representative 33-item filtered query, the optimized response is approximately 3,900 tokens versus approximately over 6,000 tokens for the equivalent JSON, roughly 35 percent fewer tokens carrying the same information. At 1,000 rows the gap widens further, because JSON repeats key names on every object while the optimized format declares them once.
What’s next for Smartsheet
AI agents integrate with Smartsheet through MCP today. In the first four weeks after general availability (GA), Smartsheet saw over 87 percent week-over-week user growth.
MCP is the distribution layer. What comes next is intelligence at the connection point itself. One example is resources that shape themselves to the person, team, and organizations using them. Another is agents that run autonomously on workflows, and a routing layer that lets specialists hand off reasoning to each other rather than starting cold on every step. Same MCP connection, different intelligence per customer, with no deployment required.
AWS is evolving its infrastructure to meet these emerging agentic requirements. Amazon Bedrock AgentCore provides runtime execution, discovery, personalization, and governance by default. Smartsheet continues to adopt and shape these capabilities with AWS.
The MCP protocol itself continues to evolve. Elicitations allow human-in-the-loop confirmation before destructive actions. MCP Apps bring interactive UI directly into AI conversations. Tasks support asynchronous, long-running operations. Smartsheet is evaluating these as they mature.
AI moves fast. Building on AWS gives us the infrastructure to keep pace whether that means new protocols, new models, or entirely new agent architectures.
To connect to Smartsheet’s MCP server, visit the AWS Marketplace listing, or see the Smartsheet MCP documentation.
About the authors

Vasil Kosturski
Vasil is a Principal Engineer at Smartsheet, where he leads the squad that built Smartsheet’s remote MCP server from concept through GA. He drove the system design, AWS architecture, and the AI-specific optimizations covered in this post. More broadly, he works across Smartsheet’s developer ecosystem and shapes its public API platform. Before Smartsheet he spent over a decade in distributed systems and real-time data, most recently as Lead Developer at Sportradar building large-volume Kafka-based event-processing pipelines. He is based in Plovdiv, Bulgaria.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み