Slide 1

Slide 1 text

© 2025 Wantedly, Inc. MCPを理解する Tech Lunch May.1 2025 - Yudai Hayashi

Slide 2

Slide 2 text

© 2025 Wantedly, Inc. CONTENTS 01 MCPとは何か 02 何ができるのか 03 利用ケース 04 まとめ 05 参考文献

Slide 3

Slide 3 text

© 2025 Wantedly, Inc. MCPとは何か - “MCPはAIアプリケーションのUSB-Cポートのようなもの” MCPの定義 ● MCP (Model Context Protocol)はLLMと 外部のリソースをつなぐための プロトコル ● 外部のリソース ○ 外部のツール ○ LLMがタスク完了のために必要な情報 ○ 指示を出す人間が考えていること ○ etc. 1. https://www.notion.so/notion/Notion-MCP-1d0efde ead058054a339ffe6b38649e1?pvs=4

Slide 4

Slide 4 text

© 2025 Wantedly, Inc. MCPとは何か - “MCPはAIアプリケーションのUSB-Cポートのようなもの” MCPの使われ方 ● 登場人物 ○ MCP Server ○ MCP Client ○ LLM ● MCPを使ったプロセスの例 ○ ClientがLLMの要請を受けて情報を外 部(Server)から取得。LLMに渡す 2. https://www.notion.so/notion/Notion-MCP-1d0efde ead058054a339ffe6b38649e1?pvs=4

Slide 5

Slide 5 text

© 2025 Wantedly, Inc. MCPとは何か - “MCPはAIアプリケーションのUSB-Cポートのようなもの” MCP Serverの種類 ● Stdio:ローカルのServerとの通信 ● Remote:リモートのServerとの通信 ○ SSE ○ Streamable HTTP (2025-03-26 から追加) ※ 2025-05-01現在、Python SDKは Streamable HTTP 非対応、TypeScript SDKは 対応している 3. https://www.notion.so/notion/Notion-MCP-1d0efde ead058054a339ffe6b38649e1?pvs=4

Slide 6

Slide 6 text

© 2025 Wantedly, Inc. 何ができるのか MCP Serverでできること ● Tools: ○ 外部のツールを利用して LLMが必要な情報を取得できるようにする ○ ツールの一覧をLLMに渡して、LLMが使うものを自律的に選ぶ ○ (世の中で話題になっているのはだいたいこれ ) ● Resources: ○ LLMがタスクをこなすために必要な情報を与える (ファイルの中身、DBのデータ、 etc.) ○ ユーザーが明示的に指定して LLMに与える、という使われ方をしていることが多いように見える ● Prompts: ○ ユーザーの指示を与える ○ ユーザーが明示的に指定して LLMに与える、という使われ方をしていることが多いように見える

Slide 7

Slide 7 text

© 2025 Wantedly, Inc. 利用例 - Tools Server (mcp_server.py) Client

Slide 8

Slide 8 text

© 2025 Wantedly, Inc. 利用例 - Tools [ Tool( name="current_datetime", description="Get the current date and time.", inputSchema={ "properties": {}, # Toolの引数 "title": "current_datetimeArguments", "type": "object", }, ) ] responseに “tool_call” が入ってくるので、こっち でtoolを実行して結果をLLMに送り返す Toolの情報を統一フォーマットで提供

Slide 9

Slide 9 text

© 2025 Wantedly, Inc. 利用例 - Tools tool呼び出し 結果を詰めて再度LLMにリクエスト (ここらへ んはfunction callingと同じ) Choice( finish_reason="stop", index=0, logprobs=None, message=ChatCompletionMessage( content="今日の日付は2025年4月30 日です。", … ), )

Slide 10

Slide 10 text

© 2025 Wantedly, Inc. 利用例 - Resources & Prompts Server (mcp_server.py) Client プロンプト リソース

Slide 11

Slide 11 text

© 2025 Wantedly, Inc. LLMへのリクエストの中で利用する例 デモ https://github.com/Hayashi-Yudai/aichat

Slide 12

Slide 12 text

© 2025 Wantedly, Inc. 利用ケース - 公開されているMCPサーバー ● toB向け・公式 ○ AWS MCP Server:コスト監視とか ○ dbt-mcp:compileしたりテスト実行したり ○ azure-mcp: ○ … ● toC向け・公式 ○ notion-mcp-server ○ github-mcp-server:GitHubの操作とか ○ brave-search:Web検索をできるMCPの提供 ○ lapras-mcp-server:求人検索・プロフィール執筆とか ○ … ● 3rd Party製:セキュリティには注意が必要 ○ mcp-server-datadog ○ GitMCP:任意の公開リポジトリをドキュメントサーバー化

Slide 13

Slide 13 text

© 2025 Wantedly, Inc. 利用ケース - 面白そうな取り組み ● 社内での生産性向上の事例 ○ Ubie:社内デザインシステムを MCPサーバー化したらUI実装が爆速になった ○ Moneyforward:デザインシステム MFUI を MCP サーバー化して社内に提供した話 ● ノベルゲームの実装 (MCP “Resources”の活用事例;個人開発のもの ) ● MCP Server as a Judge:評価基盤をMCP Serverとして用意するというアイデア スライドから抜粋 リポジトリのREADMEから抜粋

Slide 14

Slide 14 text

© 2025 Wantedly, Inc. まとめ ● MCPはLLMと外部リソースをつなぐためのプロトコル ● MCP = Tools ではない ○ サーバー側にはTools, Resources, Promptsという機能が存在 ● 上手く活用することで、社内の生産性向上からユーザー体験の改善まで、幅広く効果を出すことができる 可能性がある

Slide 15

Slide 15 text

© 2025 Wantedly, Inc. 参考文献 - もっと知りたい方へ ● 公式ドキュメント ● SaaS公式MCPサーバーをリリースして得た学び :LAPRASがMCPサーバーを開発したときの話をまとめてく れているブログ記事 ● MCP Hub:ToolやResourceなど個別にベストプラクティスやハマりポイントを説明している。発表では触れ なかったClient側の機能(RootsやSampling)についても説明がある ● MCPに入門する:MCPについてわかり易く説明した発表資料 ● ここはMCPの夜明け前:図を使ってわかりやすく説明している発表資料。仕様の話や、セキュリティ周りの話 にも触れている ● リモートMCPがやってくる、そして A2Aについて:ステートレスモードについて紹介されている。また、 Google が発表したA2A (Agent-to-agent)との比較もされている ● Frontline Practice of Implementing a New Paradigm of AI Application Architecture Based on MCP:Alibaba Cloudの技術ブログ。”MCPを使ったサービス”を作る側の話を詳しく書いてある ● ALPSとMCP:REST制約が生み出すAIとの対話:プロトコルの話。RESTから歴史をなぞって説明されている