Upgrade to Pro — share decks privately, control downloads, hide ads and more …

知っているふりをしないためのMCPサーバー入門 - Oracle AI Jam Session...

Avatar for oracle4engineer oracle4engineer PRO
January 21, 2026
13

知っているふりをしないためのMCPサーバー入門 - Oracle AI Jam Session #32 -

Avatar for oracle4engineer

oracle4engineer PRO

January 21, 2026
Tweet

More Decks by oracle4engineer

Transcript

  1. Agenda 3 Copyright © 2026, Oracle and/or its affiliates 1

    2 3 4 5 6 7 MCPの基礎知識 MCPサーバーの機能 MCPクライアントの機能 MCPのライフサイクル MCPの課題 まとめ Next Step
  2. MCPのアーキテクチャ ホスト・クライアント・サーバーの3つの登場人物がいる 7 Copyright © 2026, Oracle and/or its affiliates

    MCPクライアント MCPサーバー MCPホスト(Claude Desktop, VSCodeなど) MCPでやりとり
  3. MCPのアーキテクチャ(レイヤー) データ層とトランスポート層の2層構造 データ層 • JSON-RPCでメッセージのやり取りを行う • MCPサーバーの機能 • Tools •

    Resources • Prompts • MCPクライアントの機能 • Roots • Sampling • Elicitation などを定義している(詳細は後述します) トランスポート層 • JSON-RPCのメッセージをどのようにやり取りするか を定義する • 標準入出力でやり取り • Streamable HTTPでやり取り などを定義している(詳細は後述します) 8 Copyright © 2026, Oracle and/or its affiliates
  4. MCPのデータ層 クライアント・サーバー間のメッセージのフォーマット、JSON-RPC 2.0 JSON-RPCは、Remote Procedure Callを実現するプロトコルの一つ。 REST APIの方が聞き馴染みがあるが、RPCの方が「ツール実行」には適切 • REST

    API : リソースがメインになる(POST /tools/weather_current/executions みたいになる) • RPC: アクションがメインになる 9 Copyright © 2026, Oracle and/or its affiliates
  5. MCPのデータ層 クライアント・サーバー間のメッセージのフォーマット、JSON-RPC 2.0 10 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー JSON-RPC 2.0 MCPの仕様 (メソッドなど) JSON-RPC 2.0 MCPの仕様 (メソッドなど) *JSON-RPC 2.0では、jsonrpc, id, method, paramsなどのフィールドが定義されているが、その中に何がくるのかまでは定 義されていない MCPは、その中(例えばmethodの中)にどういう名前が入るかなどを定義している *https://www.jsonrpc.org/specification
  6. MCPのトランスポート層 標準入出力 • MCPクライアントとMCPサーバーを同じマシン上で 実行する場合に使用する • 基本的に認可などが不要なので非常に手軽に利用で きる • MCPクライアントのサブプロセスとしてMCPサー

    バーを起動する Streamable HTTP • リモートのMCPサーバーを利用する場合に使用する • MCPは、サーバー起点でクライアントに通信を開始 する場合がある • しかし通常のHTTPでは、常にクライアント起点の通 信しかできない • HTTPの拡張仕様で、サーバー起点の通信もできるよ うにしたものがStreamable HTTP 11 Copyright © 2026, Oracle and/or its affiliates MCPクライ アント MCP サーバー 標準入力 標準出力
  7. MCPのトランスポート層 標準入出力 • MCPクライアントとMCPサーバーを同じマシン上で 実行する場合に使用する • 基本的に認可などが不要なので非常に手軽に利用で きる • MCPクライアントのサブプロセスとしてMCPサー

    バーを起動する Streamable HTTP • リモートのMCPサーバーを利用する場合に使用する • MCPは、サーバー起点でクライアントに通信を開始 する場合がある • しかし通常のHTTPでは、常にクライアント起点の通 信しかできない • HTTPの拡張仕様で、サーバー起点の通信もできるよ うにしたものがStreamable HTTP 12 Copyright © 2026, Oracle and/or its affiliates MCPクライ アント MCP サーバー 標準入力 標準出力 本日のセッションではこちらを 前提としてお話しします
  8. MCPでよくある勘違い MCPのアーキテクチャを見てみると… MCPのアーキテクチャには LLMはいない 14 Copyright © 2026, Oracle and/or

    its affiliates MCPクライアント MCPサーバー MCPホスト(Claude Desktop, VSCodeなど) MCPでやりとり LLMとクライアントの間の通信は MCPに関係ない
  9. MCPでよくある勘違い MCPのアーキテクチャを見てみると… MCPのアーキテクチャには LLMはいない 15 Copyright © 2026, Oracle and/or

    its affiliates MCPクライアント MCPサーバー MCPホスト(Claude Desktop, VSCodeなど) MCPでやりとり LLMとクライアントの間の通信は MCPに関係ない じゃあどうやるの?
  10. 補足:Function callingとTool Useって何が違う? Function callingを拡張したのがTool Use Function calling • クライアント側に実装されている自作関数を実行す

    る仕組み Tool Use • 関数実行の上位概念としてToolを導入 • 実行の主体が多様化 • クライアント側のTool • LLM側(Anthropicのサーバーなど)のTool 17 Copyright © 2026, Oracle and/or its affiliates ツールタイプを指定する 以前はfunctionsだったが、Tool Useに寄せた仕様になっている
  11. MCPは何のためにある? ツール呼び出しを簡単にするため MCPがないと…(M*N問題) • クライアントがLLM呼び出しを抽象化していればク ライアントごとのツール実装 • 抽象化していなければモデル*クライアントごとの ツール実装が必要になる MCPがあると

    • ツール実装はMCPの1通り • クライアントはMCPと、各LLM呼び出しができれば OK 18 Copyright © 2026, Oracle and/or its affiliates クライアント (VSCode) クライアント (Cursor) Githubツール Slackツール クライアント (VSCode) クライアント (Cursor) Githubツール Slackツール Tool Useの領域 MCPの領域
  12. ここまでのまとめ • MCPはツール呼び出し側(クライアント)とツール実行側(サーバー)のやり取りの標準規格 • MCPは二つのレイヤーに分かれる • トランスポート層 - 標準入出力 -

    Streamable HTTP • データ層 - メッセージの仕様(JSON-RPC 2.0) - クライアント・サーバーのプリミティブ(機能) • Function calling/Tool Useとは担当場所が異なる • MCPはツール呼び出し側と実行側との間の標準仕様 • Function calling/Tool UseはLLMとクライアントの間の仕様 19 Copyright © 2026, Oracle and/or its affiliates
  13. MCPサーバーのプリミティブ 3つの機能がある • Tools • LLMがアクティブに呼び出せる関数 • データベースへの書き込み、外部APIの呼び出し、ファイル変更など • Resources

    • LLMに追加のコンテキストを与える機能(RAGのためのデータ供給源を提供) • サーバーにあるファイルの内容 • データベースのデータ • ドキュメント など • Prompts • LLMがToolsやResourcesを上手く扱えるようにするためのプロンプトを提供する機能 • ToolsやResourcesの呼び出しをユースケース単位でテンプレート化しておく • 正しくツール呼び出しが行われるようなプロンプトをあらかじめ用意しておく - Issueを作成してからPR作成して など 21 Copyright © 2026, Oracle and/or its affiliates
  14. Tools 利用の流れ1 まずはLLMにどんなツールがあるかを教えてあげる 23 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー どんなツールがあ りますか? LLM tools/list
  15. Tools 利用の流れ1 まずはLLMにどんなツールがあるかを教えてあげる 24 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー こんなツールがあ ります LLM レスポンスを返す • 足し算ツール • 掛け算ツール
  16. Tools 利用の流れ1 まずはLLMにどんなツールがあるかを教えてあげる 25 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー このMCPサーバー にはこんなツール があるみたいです LLM プロンプトにツール リストを入れる • 足し算ツール • 引数1と引数2を足します • 掛け算ツール • 引数1と引数2をかけます
  17. Tools 利用の流れ2 LLMがツール実行を行う 27 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー この足し算ツール 使いたいな… LLM Tool Useで指示 • 足し算ツール • 引数は1と2
  18. Tools 利用の流れ2 LLMがツール実行を行う 28 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー 足し算ツールの実 行をお願いします LLM tools/call • 足し算ツール • 引数は1と2
  19. Tools 利用の流れ2 LLMがツール実行を行う 29 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー 足し算ツール実行 ね。 終わりましたよ LLM レスポンスを返す • 足し算ツールの結果 • 3
  20. Tools 利用の流れ2 LLMがツール実行を行う 30 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー Tool Aの実行が終わ りました。結果は これです。 LLM 結果をプロンプト で返す [Tool結果] 1+2 = 3
  21. Tools 利用の流れ2 LLMがツール実行を行う 31 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー なるほど LLM
  22. Tools 注意点 • ツールリストは、クライアント起点でLLMに教えてあげる必要がある • ツールリストを与えないと、そもそもLLMはMCPサーバーの存在を知らない • ツール実行の結果をどのようにLLMに伝達するかは、クライアントの実装次第 • LLMはあくまで入力された自然言語に対して、尤もらしい自然言語を出力するだけ

    • LLMは無邪気にTool実行を要求するため、危険度の高いToolの扱いには注意が必要 • シェルが実行できるToolを提供するなら、操作できる範囲はクライアントかサーバー側で定めておく • データベース操作ができるToolを提供するなら、クエリの安全性はクライアントかサーバー側で定めておく • そもそもサンドボックス環境(VM, コンテナ)でしか利用しない など 32 Copyright © 2026, Oracle and/or its affiliates
  23. Tools やり取りされるJSONスキーマ(tools/list) リクエスト レスポンス 33 Copyright © 2026, Oracle and/or

    its affiliates この結果をLLMにど う伝えるかはクライ アント次第
  24. Tools やり取りされるJSONスキーマ(tools/call) リクエスト レスポンス 34 Copyright © 2026, Oracle and/or

    its affiliates この結果をLLMにど う伝えるかはクライ アント次第
  25. Resources LLMに追加のコンテキストを与える 四つのメソッドがある • resources/list • リソース(URI)のリストを提供する • resources/templates/list •

    リソーステンプレート(こういうパターンのURIはいけますよ)のリストを提供する • resources/read • リソースの内容を提供する • resources/subscribe • リソースの変更を監視する機能を提供する 35 Copyright © 2026, Oracle and/or its affiliates
  26. Resources 利用の流れ1 どういうリソースがあるかをクライアントで把握する 36 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー どんなリソースが ありますか? LLM resources/list もしくは resources/templates/list
  27. Resources 利用の流れ1 どういうリソースがあるかをクライアントで把握する 37 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー どんなリソースが ありますか? LLM resources/list もしくは resources/templates/list • resource/listの場合は、実際のリソースの URIのリストが返る • file:///logs/error.txtなど • resouces/templates/listの場合は、URIのテ ンプレートリストが返る • file:///logs/{date}.txtなど • {date}に値を埋めればいいことがわか る
  28. Resources 利用の流れ1 どういうリソースがあるかをクライアントで把握する 38 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー こんなリソースが あります LLM レスポンスを返す • file///logs/error.txt • エラーのログ • file///logs/hello.txt • 挨拶のログ
  29. Resources 利用の流れ2 ユーザー(クライアント)がリソースを要求する 40 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー LLM resouces/read エラーログを分析して欲しいな。 File://logs/error.txtが欲しいです
  30. Resources 利用の流れ2 ユーザー(クライアント)がリソースを要求する 41 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー どうぞ LLM logs/error.txtの 内容を返す
  31. Resources 利用の流れ2 ユーザー(クライアント)がリソースを要求する 42 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー 内容はこれです エラーを分析して LLM [Resource] logs/error.log [Content] エラー発生 プロンプトで伝える
  32. Resources 利用の流れ3 LLMがリソースのサブスクライブを要求する時 45 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー logs/hello.txtに変更 があったら都度教 えてください LLM resouces/subscribe
  33. Resources 利用の流れ3 サブスクライブしたリソースに変更があった時 47 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー logs/hello.txtの内容 変わったよ LLM notifications/resources/updated
  34. Resources 利用の流れ3 サブスクライブしたリソースに変更があった時 48 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー logs/hello.txtの内容 を教えてください LLM resources/read
  35. Resources 注意点 • リソースの数が多すぎる場合は、リソーステンプレートを渡す方が良い • リソースのリストだけでコンテキスト長が埋まる恐れがあるため • サーバー起点の通信が発生する(これが純粋なHTTPではMCPを使えない理由) • Notificationという通信(メソッド)は返信する必要がない(返信しようがない)

    • JSON-RPCではリクエストIDを見て適切なレスポンスを返すが、NotificationにはリクエストIDがないため • 一方的に送りつけるだけで良い情報に使われる • 今回のリソースのサブスクライブも返信が不要(返信する意味がない) • サブスクライブしていても、変更の通知と同時に内容が送られてくるわけではない • 内容が知りたければresources/readを呼び出す 50 Copyright © 2026, Oracle and/or its affiliates
  36. Prompts なんのための機能か 有用なToolsやResourcesを実装しても、以下のような問題がある • MCPサーバーに接続しても、何をどう聞けば利用できるかがよくわからない • うまくToolやResourceを使えるようなプロンプトを毎回書くのは大変 • ベストな使い方はサーバー開発者がよく知っているはずだが、利用者(クライアント)はそれを知らない 52

    Copyright © 2026, Oracle and/or its affiliates そのMCPサーバーの機能をうまく利用できるプロンプトを サーバー開発者側が用意して、提供する仕組み プルリクエストの説 明をして欲しいな… スラッシュコマンドで プロンプトを呼び出し 必要な引数を入 れるだけ
  37. Prompts 利用の流れ1 MCPサーバーにプロンプトのリストを要求する 53 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー どんなプロンプト がありますか? LLM prompts/list
  38. Prompts 利用の流れ2 ユーザーがスラッシュコマンドなどでプロンプトを利用する 56 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー LLM スラッシュコマンドで プロンプト呼び出し
  39. Prompts 利用の流れ2 ユーザーがスラッシュコマンドなどでプロンプトを利用する 57 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー LLM prompts/get 引数が必要な場合はUI 上で埋めた後、サー バーにリクエスト送信
  40. Prompts 利用の流れ2 ユーザーがスラッシュコマンドなどでプロンプトを利用する 58 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー LLM レスポンス プロンプトをレンダリング (引数を埋めて完成させ る)
  41. Prompts 利用の流れ2 ユーザーがスラッシュコマンドなどでプロンプトを利用する 60 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント MCPサーバー LLM 推論結果を返す (ここにTool呼び出しなどが含 まれる)
  42. ここまでのまとめ • Tools • LLMがアクティブに呼び出せる関数 • データベースへの書き込み、外部APIの呼び出し、ファイル変更など • Resources •

    LLMに追加のコンテキストを与える機能(RAGのためのデータ供給源を提供) • サーバーにあるファイルの内容 • データベースのデータ • ドキュメント など • Prompts • LLMがToolsやResourcesを上手く扱えるようにするためのプロンプトを提供する機能 • ToolsやResourcesの呼び出しをユースケース単位でテンプレート化しておく • Resources Aの内容を読んで、Tool A, Tool Bを呼び出す など 62 Copyright © 2026, Oracle and/or its affiliates
  43. Roots ユーザーの作業ディレクトリをサーバーに教える機能 なぜ必要か • 適切なResourcesのリストを返却するため • 作業ディレクトリがわからないと、リストが作成できない • 作業ディレクトリが事前にわかっていると、サーバー側でリッチな機能を提供できるため •

    事前に対象ファイル・ディレクトリが分かっていることで裏側で必要な作業をやっておける • 作業ディレクトリ内の曖昧検索機能など • 操作していい範囲のファイルかを判断するため • tools/callなどで操作していい範囲にあるファイルかを判断できる 65 Copyright © 2026, Oracle and/or its affiliates
  44. Roots 役割1: Resourcesのリストを作成する 作業ディレクトリごとにResourcesのリストに含まれるURIが異なるので、サーバーは作業ディレクトリを把握する必 要がある 66 Copyright © 2026, Oracle

    and/or its affiliates MCPクライアント Resourceのリストをく ださい MCPサーバー 今の作業ディレクトリ にあるのはこれだな • URI: file:///Documents/src/main.py • URI: file:///Documents/src/hoge.txt 作業ディレクトリがわからないと 適切なURIが判断できない
  45. Roots 役割2: リッチな機能を提供できる 作業ディレクトリ内を曖昧検索できるようなMCPサーバーの場合、事前にベクトル化が必要になるので、対象ファイ ルが事前にわかっていると準備できる 67 Copyright © 2026, Oracle

    and/or its affiliates 認証に関係ありそ うなファイルはあ る? MCPサーバー 今からベクトル化 するのでちょっと 待ってください 作業ディレクトリが分かってない場合 作業ディレクトリが分かってる場合 認証に関係ありそ うなファイルはあ る? MCPサーバー 事前にベクトル化 してたからすぐ検 索できるぞ
  46. Roots メッセージのフロー クライアント側に用意されているメソッドなので、サーバー起点でメソッドが呼び出される 69 Copyright © 2026, Oracle and/or its

    affiliates 作業ディレクトリを把握する 作業ディレクトリに変更があった場合はクライアントが通知して、 再度サーバーが作業ディレクトリを要求
  47. Sampling サーバーがクライアントを通してLLMを利用できるようにする機能 ユースケース例 大量のデータをユーザーに返す前に、必要な部分だけを抽出してから返却することでコンテキスト消費を防ぐ 71 Copyright © 2026, Oracle and/or

    its affiliates MCPサーバー ログは1万行もあるか らLLMに重要な部分だ け抽出してもらおう MCPクライアント 昨日のエラーログを見 せて LLM ログ一万行要約依頼 ログ一万行要約依頼
  48. Sampling サーバーがクライアントを通してLLMを利用できるようにする機能 ユースケース例 大量のデータをユーザーに返す前に、必要な部分だけを抽出してから返却することでコンテキスト消費を防ぐ 72 Copyright © 2026, Oracle and/or

    its affiliates MCPサーバー ログは1万行もあるか らLLMに重要な部分だ け抽出してもらおう MCPクライアント 昨日のエラーログを見 せて LLM 要約結果 要約結果
  49. Sampling サーバーがクライアントを通してLLMを利用できるようにする機能 ユースケース例 大量のデータをユーザーに返す前に、必要な部分だけを抽出してから返却することでコンテキスト消費を防ぐ Samplingの際は承認フェーズなどが入ります。詳しくはドキュメントをご覧ください 74 Copyright © 2026, Oracle

    and/or its affiliates MCPサーバー ログは1万行もあるか らLLMに重要な部分だ け抽出してもらおう MCPクライアント 昨日のエラーログを見 せて LLM 結果を返す Sampling時にMCPサーバーの ツールを利用できるようにす ることも可能
  50. Elicitation URLモード MCPクライアントを介さずに、ブラウザ上でセキュアな操作などを行いたい場合 • OAuth認可フロー内の認証 • APIキーの設定 • 決済・承認 81

    Copyright © 2026, Oracle and/or its affiliates Googleカレンダーの 内容を読み取って MCPサーバー OAuthのフローを開始 認証URLを返す 認証ページはMCPクライアントを介さないことでセキュアになる
  51. Elicitation URLモード MCPクライアントを介さずに、ブラウザ上でセキュアな操作などを行いたい場合 • OAuth認可フロー内の認証 • APIキーの設定 • 決済・承認 83

    Copyright © 2026, Oracle and/or its affiliates MCPサーバー Googleアカウントでログ インして、認可したぞ OAuthのフロー完了 ※認可フローは非常に簡略化しています。より詳細が知りたい方はNext Stepの案内を参考にしてください
  52. 初期化フェーズ Capabilities MCPクライアント・MCPサーバーの機能はCapabilitiesというフィールドで交換する 88 Copyright © 2026, Oracle and/or its

    affiliates クライアントのCapabilities サーバーのCapabilities Rootsに対応している Samplingに対応している Elicitationに対応している Promptsに対応している Resourcesに対応している Toolsに対応している
  53. コンテキストを圧迫する要因 大量のツール定義 たくさんのMCPサーバーを接続すると、たくさんのTools 定義がコンテキストに埋め込まれるため、コンテキスト ウィンドウを大量に消費する 中間データ ツールから返されるデータをLLMにすべて送信してから、 次の操作が行われる 例: 「東京の売り上げを教えて」と入力した場合

    92 Copyright © 2026, Oracle and/or its affiliates LLM クライアント サーバー ツール定義 ツール定義が毎回 プロンプトに入る LLM クライアント サーバー 売上の全データ返却 売上の全データが プロンプトに入る 全データを見て、 東京の売り上げを 返す
  54. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 大量のツール定義 コードを実行するツール定義を受け取る。具体的なツール説明はない。 94 Copyright © 2026, Oracle and/or its

    affiliates MCPサーバー (google-drive) MCPクライアント 利用できるツールはこれです。 詳細が知りたかったらドキュメ ントを要求してね LLM MCPサーバー (salesforce)
  55. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 大量のツール定義 ユーザーがツール呼び出しが必要になるようなプロンプトを投げてきたとする 98 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント Google-driveにある議事 録.txtの内容を要約して (ユーザー入力) LLM MCPサーバー (google-drive) MCPサーバー (salesforce)
  56. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 大量のツール定義 LLMはファイルツリーを見て、必要なツール(.tsファイル)にあたりをつけ、その中身を確認するコードを生成する 99 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント servers/google-driveに関 連するツールがありそう。 その中でも getDocument.tsが一番関 係しそうだな。どんな ツールか見てみよう。 LLM MCPサーバー (google-drive) MCPサーバー (salesforce)
  57. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 大量のツール定義 生成したコードを実行するよう、クライアントにTool Useで依頼する 100 Copyright © 2026, Oracle and/or

    its affiliates MCPクライアント このコード実行して LLM MCPサーバー (google-drive) MCPサーバー (salesforce) getDocument.tsの中身を 確認するコード
  58. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 大量のツール定義 クライアント(Code Execution Sandbox)で、LLMが生成したコードを実行して結果をLLMに返す 101 Copyright © 2026, Oracle

    and/or its affiliates MCPクライアント (Code Execution Sandbox) 実行しました。結果 はこれです。 LLM MCPサーバー (google-drive) MCPサーバー (salesforce) getDocument.tsに書かれ たツール定義が返る
  59. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 大量のツール定義 受け取ったツール定義を見て、今回のタスクに使えそうであればそのツールを使ったコードを生成する 102 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント やっぱりgetDocument.ts が使えるな。議事録.txt の中身を取得するコー ドを生成しよう LLM MCPサーバー (google-drive) MCPサーバー (salesforce)
  60. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 大量のツール定義 生成したコードを実行するよう、クライアントにTool Useで依頼する 103 Copyright © 2026, Oracle and/or

    its affiliates MCPクライアント このコード実行して LLM MCPサーバー (google-drive) MCPサーバー (salesforce) getDocument.tsを 実行するコード
  61. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 大量のツール定義 クライアントは依頼されたコードをクライアント(Code Execution Sandbox)上で実行する 104 Copyright © 2026, Oracle

    and/or its affiliates MCPクライアント (Code Execution Sandbox) LLM MCPサーバー (google-drive) MCPサーバー (salesforce) getDocument.tsを 実行するコード
  62. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 大量のツール定義 LLMは、受け取った結果を見て要約を作成し、結果を返却する 108 Copyright © 2026, Oracle and/or its

    affiliates MCPクライアント LLM MCPサーバー (google-drive) MCPサーバー (salesforce) こんな議事録ね。 要約したらこうかな。
  63. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 中間データ LLMは必要なデータのみを見て、処理はサーバー側で実行する 111 Copyright © 2026, Oracle and/or its

    affiliates MCPサーバー MCPクライアント 東京の売り上げを知るには、 sales_data.csvのカラム名を 知る必要があるな。コード を実行しよう LLM コード実行Toolを呼び出し (execute_pythonを呼び出し)
  64. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 中間データ LLMは必要なデータのみを見て、処理はサーバー側で実行する 113 Copyright © 2026, Oracle and/or its

    affiliates MCPサーバー MCPクライアント 渡されたコードを実行したよ。 結果はこれね LLM 結果(カラム情報のみ)を返す
  65. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 中間データ LLMは必要なデータのみを見て、処理はサーバー側で実行する 114 Copyright © 2026, Oracle and/or its

    affiliates MCPサーバー MCPクライアント 結果が返ってきました。 カラム情報はこれです。 LLM 結果(カラム情報のみ)を プロンプトに入れて返す
  66. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 中間データ LLMは必要なデータのみを見て、処理はサーバー側で実行する 115 Copyright © 2026, Oracle and/or its

    affiliates MCPサーバー MCPクライアント カラム名はregionとsales_amountね。 Region=Tokyoのsum(sales_amount)を 計算するコードを実行してもらおう。 LLM 売り上げ合計を計算するコードを 実行してもらう (execute_pythonを呼び出し)
  67. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 中間データ LLMは必要なデータのみを見て、処理はサーバー側で実行する 116 Copyright © 2026, Oracle and/or its

    affiliates MCPサーバー MCPクライアント このコードを実行して ください LLM 売り上げ合計を計算するコードを 実行してもらう (execute_pythonを呼び出し)
  68. コード実行によってなぜコンテキストウィンドウ圧迫が防げるか 中間データ LLMは必要なデータのみを見て、処理はサーバー側で実行する 119 Copyright © 2026, Oracle and/or its

    affiliates MCPサーバー MCPクライアント 100万円ね。結果を整形 して返そう。 LLM 結果を整形してメッセージを 返す