Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MCP入門
Search
nutslove
May 07, 2025
2
130
MCP入門
MCPについての社内勉強会で使用した資料になります。
主にToolについて記載しています。
参考になれば幸いです。
nutslove
May 07, 2025
Tweet
Share
More Decks by nutslove
See All by nutslove
GitOpsで始めるクラウドリソース管理
nutslove
1
94
Thanos入門(Receiver構成)
nutslove
0
54
OpenTelemetryによるベンダーニュートラルな監視設定
nutslove
5
460
Grafana Lokiで始めるPodログ/k8s Events管理
nutslove
0
2.3k
Grafana Lokiで始めるログ管理
nutslove
7
10k
Istio入門
nutslove
18
8.3k
ステートフルPodのマルチAZ化のために行ったこと
nutslove
2
950
AMP, AMG, X-Ray等、AWSマネージドサービスを活用した監視環境構築
nutslove
2
1.3k
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
2.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
108
19k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
How STYLIGHT went responsive
nonsquared
100
5.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1k
Documentation Writing (for coders)
carmenintech
72
4.9k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Speed Design
sergeychernyshev
32
1k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Transcript
MCP入門 2025/5/7 李俊起
話す内容 2025/5/7 2 • MCPについて ➢ 主にMCPのToolsについて話します • デモ ➢
簡単なMath MCP ServerをSSE方式で公開し、 LangGraphとAWS Bedrock Inline Agent SDKから利用 ➢ Claude DesktopからSlack MCP Serverを使ったSlackの操作 ➢ Claude DesktopからMCP Resources、Promptsの利用
2025/5/7 3 MCPについて
MCP(Model Context Protocol)とは 2025/5/7 4 • LLMが外部のツールなどを利用する際の標準的な通信規格 (プロトコル) ➢ どのLLM、Agentフレームワークを使っていても、
統一されたインターフェース(MCP)でツールを使うことができる • ベースプロトコルとしてJSON-RPC 2.0を使用 • クライアント/サーバ構成 ➢ クライアントとサーバ間ではstdioまたはSSE(※)方式で通信 ※Streamable HTTPに置き換わる予定
MCPの構成(登場人物) 2025/5/7 5 • MCP Host ➢ MCP Serverが提供する機能を利用する側 (e.g.
LangGraph、Bedrock Inline Agent SDK、Cursor、etc.) • MCP Client ➢ MCP Host内部に存在し、MCP Serverと1対1の接続関係を持つ Connector • MCP Server ➢ Toolsなどの機能を提供する側
MCP Serverの機能 2025/5/7 6 • 以下3つの機能があるが、世の中に出回っているもののほとんどは Tools(※) • Resources ➢
APIレスポンスやファイルのような、外部のデータ(≒RAG) • Tools ➢ 従来のTool/Function Callingに該当するもの • Prompts ➢ ユーザが特定のタスクを達成するのに役立つ、事前に作成されたプロンプトテン プレート ※ https://mcp.so/
MCPのアーキテクチャ 2025/5/7 7 MCP Host (Agent) MCP Client MCP Server
(天気情報を提供) その他MCPに対応しているAgent MCP Client MCP Server (足し算・掛け算機能を提供) API • MCP Host(MCP Client)に事前に使いたいMCP Serverを 登録しておく • どれを使うかはAgentが(タスクに応じて)決める NYの天気は? (3+5)x12は? MCP Protocol
MCPがもたらすメリット(MCPがない場合) 2025/5/7 8 • 今まではAgentフレームワーク間でToolの互換性がなく、 フレームワークごとにToolを開発する必要があった LangChain専用ツール LlamaIndex専用ツール • https://python.langchain.com/docs/integrations/tools/
• https://llamahub.ai/?tab=tools
MCPがもたらすメリット(MCPを使う場合) 2025/5/7 9 • MCP Serverとして公開されたToolであれば、 MCPに対応しているすべてのMCP Host(Agent)から利用可能 MCP Serverとして
作成/公開されたTool
処理の流れ(Tools) 1/4 2025/5/7 10 • MCP ClientがMCP Serverに対して、Serverが持っているToolの一覧と 情報を求める(※) MCP
Host (Agent) MCP Server (天気情報を提供) MCP Server (足し算・掛け算機能を提供) API ※初期化(initialize)手順は省略しています MCP Client MCP Client (3+5)x12は? { "method":"tools/list", "jsonrpc":"2.0", "id":1 }
(3+5)x12は? 処理の流れ(Tools) 2/4 2025/5/7 11 • MCP Serverが自身が持っているToolの一覧と情報(何ができるかの説明、 inputスキーマ)をMCP Clientに返す
MCP Host (Agent) MCP Client MCP Client API MCP Server (天気情報を提供) MCP Server (足し算・掛け算機能を提供) ※データの中身は次ページ
(3+5)x12は? 処理の流れ(Tools) 2/4 2025/5/7 12 MCP Host (Agent) MCP Client
MCP Client API MCP Server (天気情報を提供) MCP Server (足し算・掛け算機能を提供) { "jsonrpc":"2.0", "id":1, "result": { "tools": [ { "name":"add", "description":"Add two numbers", "inputSchema": { "properties": {"a":{"title":"A","type":"integer"},"b":{"title":"B","type":"integer"}},"required":["a","b"],"title":"addArguments","type":"object" } }, { "name":"multiply", "description":"Multiply two numbers", "inputSchema": { "properties":{"a":{"title":"A","type":"integer"},"b":{"title":"B","type":"integer"}},"required":["a","b"],"title":"multiplyArguments","type":"object" } } ] } } • MCP Serverが自身が持っているToolの一覧と情報(何ができるかの説明、 inputスキーマ)をMCP Clientに返す
(3+5)x12は? 処理の流れ(Tools) 3/4 2025/5/7 13 • MCP ClientがMCP ServerからのToolの情報をもとに、タスクに応じて 必要と判断したMCP
Serverに必要な引数と一緒にリクエストを投げる (Tool/Function Calling) MCP Host (Agent) MCP Server (天気情報を提供) MCP Client MCP Server (足し算・掛け算機能を提供) API MCP Client { "method":"tools/call", "params":{ "name":"add", "arguments":{"a":3,"b":5} }, "jsonrpc":"2.0", "id":2 } { "method":"tools/call", "params":{ "name":"multiply", "arguments":{"a":8,"b":12} }, "jsonrpc":"2.0", "id":3 }
(3+5)x12は? 処理の流れ(Tools) 4/4 2025/5/7 14 • MCP Serverが処理結果をMCP Clientに返す MCP
Host (Agent) MCP Client MCP Server (天気情報を提供) MCP Client API MCP Server (足し算・掛け算機能を提供) { "jsonrpc":"2.0", "id":2, "result":{ "content":[{"type":"text","text":"8"}], "isError":false } } { "jsonrpc":"2.0", "id":3, "result":{ "content":[{"type":"text","text":"96"}], "isError":false } }
MCP Client と MCP Server間の通信方式 2025/5/7 15 • stdio ➢
標準入出力で、MCP ClientとMCP Serverが通信 ➢ MCP ClientとMCP Serverが同じサーバ上にある場合の方式 • SSE (Server-Sent Events) ➢ HTTP POST リクエストで、 MCP ClientとMCP Serverが通信 ➢ MCP ClientとMCP Serverが異なるサーバ上にある場合の方式 ➢ Streamable HTTPに置き換わる予定
MCP vs A2A ? 2025/5/7 16 • MCPはAgent Toolのインターフェースで、A2AはAgent間の インターフェースであり、競合するものではない
https://google.github.io/A2A/#/
2025/5/7 17 デモ
LangGraphとBedrock Inline Agent SDKを使ったデモ 2025/5/7 18 • FastMCPというPythonのMCP用フレームワークを使って、 簡単なMath MCP
Serverを作成/SSEとして公開し、 LangGraphとBedrock Agent Inline SDKから呼び出す MCP Host (Agent) MCP Client MCP Server (足し算・掛け算機能を提供) (3+5)x12は? MCP Protocol Bedrock Agent Inline SDK
補足: Bedrock Inline Agent (SDK) 2025/5/7 19 • 従来のBedrock Agentは事前にActionGroupや指示など、
Agent Configurationsを登録しておいて、変更のたびに PrepareAgent APIで更新する必要があったが、 Bedrock Inline Agentは InvokeInlineAgent APIで 実行のタイミングで動的にこういったAgent Configurationsを 変更できる (2025/05の時点では、まだBeta) • Bedrock Agentでは使えない以下の機能が使える ➢ MCP ➢ LangFuseなどへのトレース連携 • https://github.com/awslabs/amazon-bedrock-agent-samples/tree/main/src/InlineAgent • https://qiita.com/icoxfog417/items/e9989e052ea1c83759e1
Claude DesktopでSlack MCP Serverを使ったSlack操作 2025/5/7 20 • Docker Desktopのインストール/起動が必要 •
Slack App、Claude Desktopの設定が必要 ➢ https://mcp.so/server/slack/modelcontextprotocol ➢ https://qiita.com/revsystem/items/b7904fc53a72ef3ba02a
まとめ 2025/5/7 21 • Agentフレームワークの選定は、以前ほど重要ではなくなってきて いる • 今後Agent開発の流れは、Agent Storeに自分が開発したい Agentがすでにあるか確認
→ あればA2Aで接続するだけ、なけ ればAgentを開発 → (Agent開発時)MCP Storeに自分が必 要とするToolがすでに公開されているか確認 → 公開されている ToolがあればMCPで接続するだけ、なければMCP Serverとして 開発し公開、 になると(個人的に)考えている