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
120
MCP入門
MCPについての社内勉強会で使用した資料になります。
主にToolについて記載しています。
参考になれば幸いです。
nutslove
May 07, 2025
Tweet
Share
More Decks by nutslove
See All by nutslove
GitOpsで始めるクラウドリソース管理
nutslove
1
88
Thanos入門(Receiver構成)
nutslove
0
50
OpenTelemetryによるベンダーニュートラルな監視設定
nutslove
5
460
Grafana Lokiで始めるPodログ/k8s Events管理
nutslove
0
2.3k
Grafana Lokiで始めるログ管理
nutslove
7
9.8k
Istio入門
nutslove
18
8.2k
ステートフルPodのマルチAZ化のために行ったこと
nutslove
2
940
AMP, AMG, X-Ray等、AWSマネージドサービスを活用した監視環境構築
nutslove
2
1.3k
Featured
See All Featured
Done Done
chrislema
184
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Being A Developer After 40
akosma
90
590k
Agile that works and the tools we love
rasmusluckow
329
21k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
5
230
Making Projects Easy
brettharned
116
6.3k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Visualization
eitanlees
146
16k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
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として 開発し公開、 になると(個人的に)考えている