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 Clientを活用するための設計と実装上の工夫
Search
Yudai Hayashi
June 02, 2025
Technology
1
1k
MCP Clientを活用するための設計と実装上の工夫
MCPOps LT大会で発表した内容になります
connpass:
https://mlops.connpass.com/event/352150/
Yudai Hayashi
June 02, 2025
Tweet
Share
More Decks by Yudai Hayashi
See All by Yudai Hayashi
ジョブマッチングプラットフォームにおける推薦アルゴリズムの活用事例
yudai00
0
11
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
560
人とシゴトのマッチングを実現するための機械学習技術
yudai00
1
29
MCPを理解する
yudai00
16
11k
データバリデーションによるFeature Storeデータ品質の担保
yudai00
1
160
「仮説行動」で学んだ、仮説を深め ていくための方法
yudai00
8
1.9k
相互推薦システムでのPseudo Label を活用したマッチ予測精度向上の取り組み
yudai00
1
860
Wantedly Visitにおけるフリーワード検索時の推薦のオンライン化事例紹介
yudai00
1
240
RustとPyTorchで作る推論サーバー
yudai00
12
7.3k
Other Decks in Technology
See All in Technology
インフラ寄りSREの生存戦略
sansantech
PRO
9
3.5k
「Chatwork」のEKS環境を支えるhelmfileを使用したマニフェスト管理術
hanayo04
1
320
ソフトウェアテストのAI活用_ver1.25
fumisuke
1
590
AIエージェントが書くのなら直接CloudFormationを書かせればいいじゃないですか何故AWS CDKを使う必要があるのさ
watany
18
7.4k
QuickSight SPICE の効果的な運用戦略~S3 + Athena 構成での実践ノウハウ~/quicksight-spice-s3-athena-best-practices
emiki
0
280
伴走から自律へ: 形式知へと導くSREイネーブリングによる プロダクトチームの信頼性オーナーシップ向上 / SRE NEXT 2025
visional_engineering_and_design
3
420
United™️ Airlines®️ Customer®️ USA Contact Numbers: Complete 2025 Support Guide
flyunitedguide
0
790
“日本一のM&A企業”を支える、少人数SREの効率化戦略 / SRE NEXT 2025
genda
1
220
ポストコロナ時代の SaaS におけるコスト削減の意義
izzii
1
450
20250708オープンエンドな探索と知識発見
sakana_ai
PRO
4
990
VS CodeとGitHub Copilotで爆速開発!アップデートの波に乗るおさらい会 / Rapid Development with VS Code and GitHub Copilot: Catch the Latest Wave
yamachu
2
430
Deep Security Conference 2025:生成AI時代のセキュリティ監視 /dsc2025-genai-secmon
mizutani
4
1k
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
It's Worth the Effort
3n
185
28k
Docker and Python
trallard
45
3.5k
Why Our Code Smells
bkeepers
PRO
337
57k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Navigating Team Friction
lara
187
15k
The Cost Of JavaScript in 2023
addyosmani
51
8.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
Transcript
© 2025 Wantedly, Inc. MCP Clientを活用するための設計と 実装上の工夫 MCP Ops LT大会
Jun. 2 2025 - Yudai Hayashi
© 2025 Wantedly, Inc. 自己紹介 林 悠大 • 経歴: ◦
2022年に応用物理分野で Ph.D取得 ◦ 2022年にウォンテッドリー株式会社に新卒入社。データサイ エンティストとして推薦システムの開発に従事 @python_walker @Hayashi-Yudai
© 2025 Wantedly, Inc. MCP Client をプロダクト内に実装することによる可能性 Clientを持っておくことで、LLMを “利用して” 価値を提供できる
MCP Server Use プロダクトはLLMに利用される Service w/ MCP Client Use Use MCP Servers プロダクトがLLMを利用する
© 2025 Wantedly, Inc. 今日のメイントピック MCP Clientをチャットアプリに実装した話 • MCP Clientをどのように実装すれば良いのか、その一例を伝えたい
• どういうところが難しくて、工夫が必要だったか紹介したい 今日お話しするコードは ↓の一部です https://github.com/Hayashi-Yudai/aichat 参考資料
© 2025 Wantedly, Inc. アプリケーションの構成 MCP Servers Application LLMs •
ユーザーからリクエストを受け取り、 MCP ServerやLLMとやりとりをする一般的な構成 • MCP ServerからTool一覧を取得してLLMにリ クエストをするときに一緒に渡す • ユーザーメッセージに特定パターンがあるとき に、Promptを呼び出す ◦ e.g. /search が入っていたらある Promptを呼び出す
© 2025 Wantedly, Inc. 実装で工夫する必要があった部分 MCP Servers Application LLMs •
課題 1:MCP Serverとのセッション管理 • 課題 2:複数のMCP Serverの管理
© 2025 Wantedly, Inc. 課題 1:MCP Serverとのセッション管理 Application Front ChatGPT
Gemini … アプリケーションの機能 • ユーザーは何往復もチャットを繰り返すことがで きる • チャットの途中からモデルを切り替えることがで きる チャット継続中に常にセッションを保持しておくのは 大変そう。とは言えリクエストの度にセッションを確 立するのもパフォーマンス的に悪そう ...
© 2025 Wantedly, Inc. 課題 1:MCP Serverとのセッション管理 リクエスト毎に必要な情報はあらかじめ取得しておく • リクエストの度に必要な
Serverの情報は限られている。しかも、それらは普通は静的 ◦ Tools, Prompts, Resourcesの一覧 • Application起動時に全て取得しておけば良さそう • リクエスト処理時には、必要に応じて MCP Serverと接続をする (Tool Call時など) ツールの一覧をインスタンス変数として保持してお く
© 2025 Wantedly, Inc. 課題 2:複数のMCP Serverの管理 • Tool名だけ管理していると、 LLMからTool
Call が来たときに、どのServerに接続すれば良い かわからない ◦ こっちは実はTool一覧をキャッシュするこ とで半分解決している • Tool名に重複があるときに特に問題になる Application Tool 1 を使いたい どのServer?
© 2025 Wantedly, Inc. 課題 2:複数のMCP Serverの管理 Server名とツール名をセットで管理する Server2__Tool 1
を使いたい Tool名の世界 LLMInterface Handler {Server名}__{Tool名}の世界 Server2__Tool 1 Tool 1 Server1__Tool1 Server1__Tool2 … • Handlerを用意、LLMにはツール名を Server__Tool の形式で渡しておく • リクエストが来たら、 Handlerで分解し て適切なServerにリクエスト
© 2025 Wantedly, Inc. まとめ • チャットアプリの中に MCP Clientを実装してみて、工夫が必要だった点をいくつか紹介 •
MCP ServerとのSessionは、アプリ起動時と呼び出しがあるときの 2通りのケースで保持するようにす れば良さそう • 複数のMCP Serverを扱う際には、LLMにリクエストを投げる部分と MCP Serverの間にHandlerを用 意して交通整理をするのが良さそう