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

「MCPを使ってる人」が より詳しくなるための解説

「MCPを使ってる人」が より詳しくなるための解説

(Generated by gemini)
目次
オープニング
タイトルスライド:「MCPを使ってる人」が より詳しくなるための解説
発表者紹介:やまぐちさん
自己紹介と簡単な経歴
プレゼンテーションの概要
今日の解説内容の紹介
Zennの記事の補足説明
今日学べること
MCPとは何か?
Function Callingとの違い
MCPの簡単な仕様
問題点
背景
2022年のLLMとツールの関係
2023年6月 OpenAI Function Callingの登場
Function CallingによるLLMのツール利用
各社のFunction Callingの実装状況
LLMライブラリでの課題
ツール提供者と利用者の課題
MCPの登場
MCPとは?
MCPのメリット
MCPの普及
MCPの仕様
MCPの概要
登場する概念:MCP Server, MCP Client, MCP Protocol
MCP Protocolの詳細
MCPが使われるまでのフロー
JSON RPC
Transport層一覧 (StreamableHTTP, HTTP+SSE)
Sampling, Roots, Tool, Resource, Prompt
ClientとServerの機能
MCPの正体
MCPはLLMのためのプロトコル
MCPが流行っている理由
MCPの問題点
大量のコンテキストの問題
エージェントの選択問題
長時間タスクの問題
外部リソース検索の問題
セキュリティの問題
使い勝手の問題
精度の問題
解決策の提案
A2Aの紹介

Avatar for Kota-Yamaguchi

Kota-Yamaguchi

May 15, 2025
Tweet

Other Decks in Programming

Transcript

  1. (推測)ツール提供側も困るし、利用者側も困ってた このモデルFunctionCallingのレイ ヤー作らないと... ツール提供者 アプリor プラットフォーム開発者 LLMの利用者 あのリソース使って調べ物したい、 開発したいなあ Difyでは提供してないかー

    Langchainならあるかー 自作するかー リソースあって、LLMに使わせるツー ル作りたいけど、 Langchainで提供がいい? Vercel AI SDKがいい?? Difyのプラグイン作る?? わからない・・・
  2. MCP誕生 MCP は、アプリケーションが LLM にコンテキストを提供する ⽅法を標準化するオープン プロ トコルです。MCP は、AI アプリ

    ケーション⽤の USB-C ポートの ようなものです。 (https://modelcontextprotocol.i o/introduction より)
  3. (推測)MCPが出てきてみんなハッピー! ツール載せるのはMCPで統一できそ う! FunctionCallingをいいい感じにする レイヤーいらなくなった! アプリor プラットフォーム開発者 LLMの利用者 ツール提供者 あのリソースMCPで提供して

    る!ラッキー! とりあえずMCPにのせてリソース公 開すればええやん! 開発者側にも 利用者側にも使ってもらうぞ! MCP Clientさえあれば、ツール提供者と そのままやりとりできる
  4. 登場する概念 • MCP Server ◦ 各社がリソースを公開して いるかはこちらを確認しよ う • MCP

    Client ◦ CursorやClaude Desktop などがこれにあたる • MCP Protocol ◦ MCPClientとMCPServerを 間の通信を扱うプロトコル 部分 https://modelcontextprotocol.io/introduction より
  5. 登場する概念 実装する可能性の高い、 この間部分を今日は深掘 りします! • MCP Server ◦ 各社がリソースを公開して いるかはこちらを確認しよ

    う • MCP Client ◦ CursorやClaude Desktop などがこれにあたる • MCP Protocol ◦ MCPClientとMCPServerを 間の通信を扱うプロトコル 部分 https://modelcontextprotocol.io/introduction より
  6. JSON RPC MCP ClientとServerの間は? stdin StreamableHTT P HTTP+SSE 接続方式 標準入力+出力

    HTTP HTTP+EventSo urce Client→Server 文字列 (JSON-RPC)を 逐次書き込み POST 追加送信は別 REST 呼び出しが 必要 Server→Client stdout へ逐次 書き込み SSE ストリームで プッシュ/単発 JSON SSEエンドポイント でSSE ストリーム - ステートレスにでき る? - Transport層一覧
  7. Tool Resource Prompt Tool • Resource ◦ MCP サーバーがクライアントに提供したいあらゆ る種類のデータを提供する

    ◦ アプリケーションが制御するもの。ユーザーにどう 使わせるかは各MCP Clientの⾃由とされています。 ◦ 選ばせてもいいし、⾃動で⼊⼒されてもいい • Prompt ◦ サーバーは再利⽤可能なプロンプト テンプレートと ワークフローを定義でき、クライアントはそれを ユーザーや LLM に簡単に表⽰できます ◦ 基本はユーザーが制御するもので、ユーザーが明⽰ 的に選択する ◦ ClaudeForDesktopで主に採⽤されている MCP Server側の機能(Resource, Prompt)
  8. • Sample ◦ Server側がClient側に対 してLLMの⽣成‧補完を 要求できる機能 ◦ Claude for Desktopでも

    まだない機能 ◦ アプリケーション側が ⾃由に実装しても良い MCP Client側の機能(Sampling) Sampling https://modelcontextprotocol.io/specification/2025-03-26/client/sampling より
  9. (推測)MCPが出てきてみんなハッピー! ツール載せるのはMCPで統一できそ う! FunctionCallingをいいい感じにする レイヤーいらなくなった! アプリor プラットフォーム開発者 LLMの利用者 ツール提供者 あのリソースMCPで提供して

    る!ラッキー! とりあえずMCPにのせてリソース公 開すればええやん! 開発者側にも 利用者側にも使ってもらうぞ! MCP Clientさえあれば、ツール提供者と そのままやりとりできる
  10. MCPの問題点 ~私が⾟いなと思う瞬間4選~ 大量のコンテキス トを渡してくる。 それがノイズになっ て邪魔してくる。辛 い ① エージェントが MCPちゃんと選ん でくれない

    ツール大量で多分 選ぶの大変そう。 ツール多いとノイズ にもなりそう ② 長時間タスクでき ない StreamableHTTP できたからやれそう やけど、そもそもア プリ側がそうなって ない。 ③ MCPで外部リソー スを検索するのコ スパわるい 「A」を書いてるド キュメント取得する ために list→read→read →read…を繰り返 して見つからなくて 辛い。 時間もコストだけで 成果はない ④
  11. MCPの問題点 その他 • セキュリティ ◦ stdio機能を介して、MCPサーバーがローカルで悪意のあるコードを実⾏する可 能性 ◦ MCPサーバー側で意図せずに使っている悪意あるサードパーティのライブラリ を実⾏してしまう。 ◦

    MCPではツールの名前や説明が実際に動くコードが違うことでうっかり悪意の あるツールを実⾏してしまう。 • 使い勝⼿ ◦ Approve押すのめんどくさいけど、ないと不安 • 精度 ◦ ツール詰め込むとそれだけコンテキストを圧迫して、LLMとしての精度が落ち る ◦ コンテキスト量の制御ができないので、コンテキストが多すぎてコストが増加 し精度は落ちてしまう可能性がある。