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調べてみました! / Exploring MCP
Search
uhzz
April 13, 2025
Programming
2.7k
2
Share
MCP調べてみました! / Exploring MCP
uhzz
April 13, 2025
More Decks by uhzz
See All by uhzz
Goで実現するGraceful Shutdown ~実運用での課題と解決策~ / Go Conference 2025
uhzz
2
1.6k
自動生成されたhttpエンドポイントごとにカスタムミドルウェアを挿入したい話
uhzz
1
2.9k
Enablement Bootcampを終えて -Enablement Bootcamp for Gopherizing 〜業務で使えるGoを学ぼう〜
uhzz
0
330
安全にQAを行える環境が整いました!- Kyash TechTalk #6 - Kyashの開発をチラ見せ
uhzz
0
850
Goのローカル開発をWorkspacesではじめよう
uhzz
1
1.1k
【Go:パッケージ管理】DepからGo Modulesへ
uhzz
0
1.2k
コードレビューで泣かないためのintSize = 32 << (^uint(0) >> 63)
uhzz
0
270
「ウチも、gRPC使えますか?」
uhzz
0
330
「インタフェースデザインの心理学」を読んで話したい3つのこと
uhzz
0
21k
Other Decks in Programming
See All in Programming
Feature Toggle は捨てやすく使おう
gennei
0
560
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
890
「速くなった気がする」をデータで疑う
senleaf24
0
160
存在論的プログラミング: 時間と存在を記述する
koriym
5
860
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
520
Swift Concurrency Type System
inamiy
0
460
安いハードウェアでVulkan
fadis
1
950
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
130
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
240
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
690
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
460
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
190
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
710
Google's AI Overviews - The New Search
badams
0
970
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
110
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.2k
How to Talk to Developers About Accessibility
jct
2
170
Building Applications with DynamoDB
mza
96
7k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
320
The Spectacular Lies of Maps
axbom
PRO
1
690
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
120
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Transcript
MCP調べてみました! reo(@_uhzz_)
自己紹介 Reo Uehara X: @_uhzz_ GitHub: uh-zz Goとサウナが好き
想定する読者 • MCP、最近インターネットでよく見るけどイマイチよくわかってない • MCPをわかった気になりたい • 情報が多すぎて何を参考にすればいいかわからない
ゴール • MCP、なんとなくわかった • すぐ作れそうという気持ちになった • MCP、早く作りたくなってきた
アジェンダ • 最初にまとめ • MCPとは • MCPが動いているところを見よう • MCPのうれしいところ •
MCPって結局なに? • まとめ
最初にまとめ
これだけ分かればOK AIエージェント(e.g. Cline)にむやみやたらに回答させないための仕組み 代表的な機能を3つ押さえておけばOK 機能1:AIエージェントに最新のデータを提供する(Resource) 機能2:AIエージェント向けの機能を提供する(Tools) 機能3:AIエージェントと対話的に使える質問を提供する(Prompts) 最初にまとめ
MCPとは
アーキテクチャはこんなかんじ MCPとは MCPはクライアントサーバモデル AIエージェント(e.g. Cline)がホスト ホストにMCPクライアントをインストールする MCPクライアントサーバ間はJSON-RPC 2.0ベース 引用: https://modelcontextprotocol.io/docs/concepts/architecture
MCPサーバは、AIエージェント(MCPクライアント)に データを提供 推論するための文脈(コンテキスト)を与える 提供するデータはこんなかんじ • ローカルにあるファイル • データベースレコード • APIレスポンス
• スクショとか画像 • ログファイル など APIは以下2つ resources/list: リソースの一覧を取得 resources/read: リソース読み込み AIエージェントに最新のデータを提供する(Resource) MCPとは 引用: https://modelcontextprotocol.io/docs/concepts/architecture
MCPサーバは、AIエージェント(MCPクライアント)の アクションに必要な関数を提供 特徴は3つ MCPクライアントは、利用できるツールをリストアップ (発見) MCPクライアントは、見つけたツールを使うために MCPサーバへリクエスト(呼び出し) MCPサーバは、計算した結果を返す(単純計算も複雑 な処理も柔軟に書ける) APIは以下2つ
tools/list: ツール一覧を取得 tools/call: ツール呼び出し AIエージェント向けの機能を提供する(Tools) MCPとは 引用: https://modelcontextprotocol.io/docs/concepts/architecture
あらかじめ定義された質問テンプレ/ワークフロー Slackのスラッシュコマンドをイメージできれば OK 他にも、以下の特徴がある • 複数のインタラクションをチェーン • 特定のワークフローをガイドする など APIは以下2つ
prompts/list: プロンプト一覧を取得 prompts/get: プロンプトを使う AIエージェントと対話的に使える質問を提供する(Prompts) MCPとは 引用: ショートカットを使用して Slack でアクションを実行する
MCPが動いているところを見よう
チュートリアルをやってみました https://github.com/uh-zz/mcp-tutorial MCPが動いているところを見よう MCPサーバをGoで実装 ClineをMCPクライアントにします
MCPのうれしいところ
ベンダーロックインされない MCPのうれしいところ 引用: https://modelcontextprotocol.io/docs/concepts/architecture MCPはType-Cのようなもの(公式見解) 様々なデータソースやツールのインターフェースを標準 化することで、異なるAIプロバイダー間で利用可能
デザインからコード生成までがよりシームレスに MCPのうれしいところ 引用: https://zenn.dev/ubie_dev/articles/f927aaff02d618 Ubieさんの活用事例 記事から抜粋 1. まず Figma MCP
から Figma の情報を取得 2. 次に Ubie UI MCP が呼び出され、コンポーネント情報 やトークン、アイコン情報を取得 3. Figma の情報をもとに、Ubie UI を使って実装を提案 <中略> テキストベースの指示だけで Ubie UI を使った実装が可能にな ります。例えば 「ユーザー情報入力フォームを Ubie UI で作成して。名前、メー ルアドレス、年齢の入力欄と送信ボタンが必要」 といった指示だけで、デザインシステムに準拠した UI を短時間で 生成できるようになりました
MCPって結局なに?
MCPって結局なに? 「Model Context Protocol(MCP)の動作原理の概要を 掴むための記事」から抜粋 1. クライアントがサーバに対し、JSON-RPCに則ってリクエ ストを送信 2. サーバ側はリクエストに応じてリソース(DB,
API)を操作 3. 結果をクライアントに対し、JSON-RPCに則ってレスポン スを送信 引用: https://modelcontextprotocol.io/docs/concepts/architecture JSON-RPC
まとめ
まとめ AIエージェント(e.g. Cline)にむやみやたらに回答させないための仕組み 代表的な機能を3つ押さえておけばOK 機能1:AIエージェントに最新のデータを提供する(Resource) 機能2:AIエージェント向けの機能を提供する(Tools) 機能3:AIエージェントと対話的に使える質問を提供する(Prompts)
参考 Model Context Protocol Model Context Protocol (MCP) サーバを使ってみた・作ってみた Model
Context Protocol(MCP)の動作原理の概要を掴むための記事 社内デザインシステムをMCPサーバー化したらUI実装が爆速になった GitHub - mark3labs/mcp-go: A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools.