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開発のリアル_Machine Learning 15minutes!
Search
小島舞子 / Maiko Kojima
September 01, 2025
Programming
1
73
MCP開発のリアル_Machine Learning 15minutes!
第104回 Machine Learning 15minutes! Hybridで登壇したスライドです
小島舞子 / Maiko Kojima
September 01, 2025
Tweet
Share
More Decks by 小島舞子 / Maiko Kojima
See All by 小島舞子 / Maiko Kojima
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
270
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
120
Six and a half ridiculous things to do with Quarkus
hollycummins
0
170
CSC509 Lecture 04
javiergs
PRO
0
300
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
9
1.7k
Catch Up: Go Style Guide Update
andpad
0
230
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
390
Software Architecture
hschwentner
6
2.3k
その面倒な作業、「Dart」にやらせませんか? Flutter開発者のための業務効率化
yordgenome03
1
130
Flutterで分数(Fraction)を表示する方法
koukimiura
0
130
Introduce Hono CLI
yusukebe
0
200
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
1
390
Introducing ReActionView: A new ActionView-Compatible ERB Engine @ Kaigi on Rails 2025, Tokyo, Japan
marcoroth
3
1k
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
The Illustrated Children's Guide to Kubernetes
chrisshort
49
51k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
We Have a Design System, Now What?
morganepeng
53
7.8k
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
980
The Invisible Side of Design
smashingmag
302
51k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Transcript
世界を自動化して人生に楽しさと自由を
株式会社クラフター(旧:チャットブック)代表取締役 iU情報経営イノベーション専門職大学 客員教授 一般社団法人生成AI活用普及協会(GUGA)協議員 一般社団法人Women AI Initiative Japan理事 NPO法人Waffle ビジネス開発講座 指南役 Newspicks 法人向けAIのプロピッカー
Forbes Japan Women in Tech 30選出 早稲田大学在学中の 2010年にスタートアップを共同創業し、副代表兼 CTOと して30本以上のiOS /Androidアプリを開発。累計500万人超のユーザーに利 用される。2016年に株式会社クラフターを設立。マーケティング特化型チャッ トボット「CraftChat」を開発し、300社以上の法人に導入。 2022年7月、同社を マネックスグループへ売却。 2023年6月には、社内資料を安全に参照できる 企業向け生成AIプラットフォーム「Crew(クルー)」をリリース。 『企業競争力を高めるための生成 AIの教科書』出版(Gakken) 趣味:読書(図書館)、海外旅行、オーケストラ鑑賞 自己紹介:小島舞子 maikokojima
© 2025 Crafter, Inc. All rights reserved. MCPとは?
© 2025 Crafter, Inc. All rights reserved.
© 2025 Crafter, Inc. All rights reserved. 発端:Crew上からMCPサーバと接続したい! • Crewは、法人・自治体が安全に生成AIの利用を支援
• 長野県、箕面市、他複数の自治体・企業に導入
© 2025 Crafter, Inc. All rights reserved. Before:Function Callingで個別実装 Function
Callingの問題点: • サービスごとに定義・管理がバラバラ ◦ 例えばNotion、Asana、Slackなど、呼び出すたびに個別の関数定義を書き、認証やエラー ハンドリングを繰り返す。 • 運用の手間があった ◦ 仕様変更やAPIアップデートがあると、それぞれの関数呼び出しコードを修正する必要があ る。 ◦ 認証トークンやセキュリティ設定もサービスごとに別管理。
© 2025 Crafter, Inc. All rights reserved.
© 2025 Crafter, Inc. All rights reserved. 理想:MCPサーバと接続して簡単呼び出し! • MCPサーバ=APIを公式で実装してくれているようなもの
◦ すべての外部サービスを「 MCPサーバー」として定義でき、クライアントからは統一インター フェースで呼び出せる。 ◦ つまり「Notion専用関数」「Asana専用関数」といった実装が不要になる。 • 一元的な認証とセキュリティ ◦ IAMやOAuthなど、サーバー側に共通の認証・権限管理を組み込める。 ◦ ログや利用履歴もMCPサーバーでまとめて監査できる。 • 拡張と保守が容易 ◦ 新しいサービスを追加したい時は、 MCPサーバーを1つ立てればOK。 ◦ クライアント側のコード変更は最小限で済む。 • 複数クライアント対応 ◦ ClaudeやCursor、自社開発のクライアントなど、異なるクライアントから同じ MCPサーバー を利用可能。 ◦ つまり「API連携の窓口」を共通化できる。
© 2025 Crafter, Inc. All rights reserved. しかし、現実は甘くない …
© 2025 Crafter, Inc. All rights reserved. 問題①:公式 MCPサーバーがノラ接続を許可していない 例:Asana
公式のMCPサーバーを提供しているが、 RemoteでOAuth認証するにはAllowlistしか許されていない 連携したいホストは、 Allowlist Requestを送る必要がある ※現在許されているのは CursorとClaudeのみ →超高難易度ゲーム (「無理ゲーを丁寧に言って」と伝えた Crew版表現)
© 2025 Crafter, Inc. All rights reserved. 問題②:詳細なアクセス権限の管理が難しい • ユーザーがMCPサーバーからコールしたデータを取得する際、各ユーザーで細かく権限分けす
ることができない • 組織の情報は取得できるが、それ以外の Metadataの取得と内包が難しい
© 2025 Crafter, Inc. All rights reserved. 解決方法: MCP全体を自社ホストでカスタマイズしよう
© 2025 Crafter, Inc. All rights reserved. Crew MCP Overview
Chat Output Authentication
© 2025 Crafter, Inc. All rights reserved. Crew MCP Overview
© 2025 Crafter, Inc. All rights reserved. 実装前の基本!
© 2025 Crafter, Inc. All rights reserved. MCPクライアントのライフサイクル概要 • Connection
Establishment ◦ MCPクライアントがサーバーへ接続( stdio、HTTP、WebSocketなど) ◦ 双方で機能やプロトコルバージョンを確認・交渉 • Capability Discovery ◦ クライアントがサーバーに利用可能なリソースやツール、プロンプトを問い合わせ ◦ サーバーの提供機能を把握 • Active Communication ◦ クライアントがリソース取得、ツール実行、プロンプト利用などのリクエストを送信 ◦ サーバーがデータ返却や処理を実行 • Resource Management ◦ セッション中にリソースの更新通知を受信 ◦ 永続的な状態や認証トークンの管理 • Graceful Termination ◦ セッション終了時に接続を適切にクローズ ◦ 双方でリソース解放やデータ整合性を確保 https://modelcontextprotocol.io/specification/2025-03-26/basic/lifecycle
© 2025 Crafter, Inc. All rights reserved. MCPクライアントとサーバのホスティング • 通信方法
◦ Stdio ▪ サブプロセスとして起動し、標準入力 /標準出力で通信 ▪ デスクトップアプリ向きだが、クラウド運用には不向き ◦ Streamable HTTP ▪ HTTP経由で通信 ▪ DockerやAWS Lambdaなどサービスとして稼働可能 • 運用方法 ◦ Dockerコンテナ ▪ MCPサーバーごとにDockerイメージを作成 ▪ ローカル/開発環境に適する ▪ 応答速度が速い ◦ AWS Lambda ▪ SAMを使ってデプロイ、Lambda Web AdapterでHTTPサーバー化 ▪ Function URLがストリーミング対応済み ▪ 高いスケーラビリティと低運用コスト
© 2025 Crafter, Inc. All rights reserved. MCPクライアントを 0から作るよりも フレームワークがあるよ!
© 2025 Crafter, Inc. All rights reserved. MCPクライアントのフレームワーク • LangChain
MCP Adapters ◦ LangChainやLangGraphでMCPツールを簡単に利用可能にする公式パッケージ ◦ 複数のMCPサーバーからツールを取得し、エージェントに統合 ◦ 例:計算サーバーや天気サーバーなど、用途ごとにサーバーを分けて接続 • OpenAI Agents SDK with MCP ◦ OpenAI公式のエージェントSDKはMCPをネイティブサポート ◦ MCPサーバーのツールを自動で取得し、エージェントに組み込み ◦ Web検索やコード実行、画像生成などの組み込みツールとも連携可能 ◦ liteLLMを使えば他社LLMも利用可能
© 2025 Crafter, Inc. All rights reserved. 今後やらなきゃいけなさそうなこと • Authentication
◦ OAuth対応、スコープやアクセス権の管理 • Admin Function ◦ MCPサーバー連携時により多くの情報をメタデータに追加する ◦ 追跡や監査ログ • Multi-Server Flow ◦ 複数のMCPサーバーと連動してワークフローを組む ◦ エラーハンドリング対応
© 2025 Crafter, Inc. All rights reserved. まとめ • 公式MCPサーバーはほとんど全てがPoC中!
• 困ったらMCPライフサイクル概要を読むべし! • 便利なフレームワークを使おう • 『企業競争力を高めるための生成AIの教科書』 8月7日刊行!本を買ってね! https://amzn.asia/d/9mZuJzo