AI SDK + MCP:本番エージェントシステムのための実践的統合ガイド

2026年4月7日Lin Ivan

重要ポイント

  • AI SDK + MCP は単なる「接続して呼ぶ」話ではありません。難しいのは capability scope、transport、retry、auth、observability です。
  • 最も安全な出発点は、狭い discovery、明示的な tool allowlist、そしてリクエストごとの明確な runtime budget です。
  • MCP は discovery と invocation の境界をきれいにしますが、どの workflow にどの tool を見せるかは依然としてアプリ側の責任です。
  • 本番のエージェントシステムでは timeout、fallback、logging の設計を最初から入れておく必要があります。
  • puppyone は、同じ workflow で governed context と MCP tool の両方を扱いたいときに特に相性がよくなります。

なぜデモでは簡単に見え、本番では難しくなるのか

デモの流れはいつも同じです。

  1. AI SDK を MCP サーバーにつなぐ
  2. いくつかの tool を公開する
  3. モデルに tool を呼ばせる

これは良い試作です。しかし本番の統合ではありません。

本番で増えるのはコード量よりも、運用上の意思決定です。

  • このエージェントにどの tool を見せるのか
  • この環境ではどの transport を許容するのか
  • 認証と credential rotation をどうするか
  • MCP サーバーが遅いときにどうするか
  • tool call 失敗時の fallback をどうするか
  • どの呼び出しに human approval が必要か
  • 問題発生後に実行内容をどう説明するか

最小でも必要なアーキテクチャ

user request
  -> アプリ内の agent runtime
  -> workflow ごとの tool policy
  -> MCP client
  -> 1つ以上の MCP server
  -> 外部システムまたは governed context
  -> 結果の組み立て
  -> logs / approvals / traces

多くのチームが飛ばしがちなのが tool policy です。

discovery は protocol の機能であり、exposure は product の判断です。

本当に重要な5つの判断

1. Discovery は permission ではない

SDK が20個の tool を列挙できたとしても、その workflow が20個すべてを見るべきだとは限りません。

Discovery は上限集合、runtime allowlist は実際の実行境界として扱うべきです。

2. Transport は信頼性の判断

現行の AI SDK ドキュメントでは、本番には HTTP transport、ローカルには stdio が勧められています。これは単なる実装差ではなく、firewall、retry、proxy、運用責任の持ち方に影響します。

正しいルールはシンプルです。

  • 環境が安定運用できる最も単純な transport を使う
  • retry を明確に制限する
  • timeout の挙動を明示する

3. Tool description はモデル行動を左右する

説明が曖昧だと、tool の使い方も曖昧になります。似た tool が複数あると、モデルは解決ではなく選択に token を使ってしまいます。

慎重なオペレーターのように tool を説明してください。

  • 何をするか
  • 何をしないか
  • いつ使うか
  • どんな入力が必要か
  • どう失敗するか

4. すべての tool call に budget が必要

モデルを自由にしてはいけないことがあります。

  • 2つで足りるのに10個呼ぶ
  • 無限に retry する
  • 巨大 payload を prompt に流し込む
  • read-only と write tool を無造作に混ぜる

5. Log は機能の一部

「モデルの判断が悪かった」だけでは足りません。最低でも必要なのは以下です。

  • request ID
  • 公開された tool 一覧
  • 実際に選ばれた tool
  • 送信引数
  • latency と failure
  • 必要なら approval 状態

失敗を減らすための1つの表

選択チームが好む理由どこで壊れるか
発見した tool を全部読み込む試作が速い本番では広すぎて危険
schema と tool set を明示する型安全性と制御が高い維持の手間が増える

実務上のルールはこうです。

  • 広い discovery は探索用
  • 明示的な workflow bundle は本番用

puppyone が入る位置

システムが governed context と tool calling の両方を必要とするなら、puppyone はちょうどよい位置に入ります。

  • 構造化された context を一度作る
  • MCP や API で安定的に配布する
  • workflow に必要な capability だけを見せる
  • 判断経路を監査可能に保つ

現実的な導入順序

AI SDK + MCP は次の順で導入するのが安全です。

  1. read-only workflow を1つ
  2. MCP server を1つ
  3. 明示的な tool allowlist を1つ
  4. latency budget を1つ
  5. logging path を1つ

その後に足していくもの:

  • write action
  • approval
  • fallback
  • multi-server routing
  • role ごとの tool bundle
puppyone でより安全な AI SDK + MCP 導入計画を立てるGet started

FAQs

Q1: MCP は SDK ネイティブの tool を置き換えますか?

いいえ。MCP は外部 capability を標準的に discover / use する方法を与えるだけで、アプリ固有の tool は引き続き併用できます。

Q2: AI SDK の統合では、発見した MCP tool をすべて公開すべきですか?

いいえ。Discovery はより狭い runtime allowlist に落とし込むべきです。全 tool を毎回見せると、柔軟性よりも信頼性を損ないやすくなります。

Q3: 最初に監視すべき本番シグナルは何ですか?

まずは tool selection quality と latency です。モデルが間違った tool を選んだり、tool call が遅すぎたりすると、ユーザー体験はすぐ悪化します。