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 ✖️ Apps SDKを触ってみた
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
hisuzuya
October 22, 2025
Technology
700
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MCP ✖️ Apps SDKを触ってみた
hisuzuya
October 22, 2025
More Decks by hisuzuya
See All by hisuzuya
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
620
AIが自分でバグを見つけて直す時代が来た
hisuzuya
0
49
git worktree × Claude Code × MCP ~生成AI時代の並列開発フロー~
hisuzuya
1
1.1k
Other Decks in Technology
See All in Technology
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
140
MIRU 2026 チュートリアル
keisuke198619
0
920
第3回しろおびセキュリティスポンサーセッション
log0417
0
200
事業価値と Engineering 2026年度版
recruitengineers
PRO
50
24k
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
860
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
250
関東Kaggler会発表資料
takoi
1
240
その“隠したつもり”が命取り ── 自前と平文をやめて「正解」に委ねる
kuroneko13
0
120
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
4
1.7k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
24
430k
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
290
FORENSIA: ローカルLLMフォレンジックハーネス
sumeshi
2
390
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
510
Designing for Performance
lara
611
70k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
240
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
380
Building AI with AI
inesmontani
PRO
1
1.1k
30 Presentation Tips
portentint
PRO
1
370
Thoughts on Productivity
jonyablonski
76
5.3k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
790
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
470
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
For a Future-Friendly Web
brad_frost
183
10k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Transcript
MCP Apps SDKを触って みた 株式会社RAYVEN 鈴山英寿 1
自己紹介 hisuzuya (鈴山) 経歴 学生時代 プログラミングメンター・受託 開発 大手Web系 (webサービス/生成AI利活用) (現在)
株式会社RAYVEN(CTO) 専門分野 Web開発(特にフロントエンド) AIを活用したソリューションの企画・開発 2
アジェンダ 1. MCPとは - Model Context Protocolの概要 2. Apps SDKとは
- ChatGPT Apps SDKの紹介 3. デモ・実例紹介 - 実際の活用事例 3
MCP について 4
MCPとは Model Context Protocol(モデルコンテキストプロトコル) AIアプリケーションとデータソースを接続するJSON-RPC仕様に基づいた標準化さ れたプロトコル MCPの基本構造 JSON-R MCP Cl
MCP Se ファイルシ データベ AP 5
JSON-RPCとは リモートプロシージャコール(RPC)プロトコル JSON-RPC: JSON形式でリモート関数を呼び出す軽量プロトコル 言語非依存: あらゆるプログラミング言語で実装可能 非同期対応: 複数リクエストの並列処理が可能( id で対応付け)
JSON-RPC の基本構造 リクエスト/レスポンス // Request { "jsonrpc": "2.0", "id": 1, "method": "メソッド名", "params": {...} } // Response { "jsonrpc": "2.0", "id": 1, "result": {...} } 6
MCPの規格整理 主要な4つの要素 要素 役割 具体例 Tools AIが実行できる具体的な機能 計算、API呼び出し Resources AIがアクセスするデータ
ローカルファイル、データベース、API Prompts 定型的な指示テンプレート 「コードレビューして」などの定型文 Sampling AIが別のAIに相談する機能 mcp client 側のLLMへのリクエスト機能 7
MCPのtool呼び出しの通信フロ ー 1. 初期化: プロトコルバージョン確認 2. 機能確認: 利用可能なツール一覧取 得 3.
ツール実行: 実際のデータ取得 4. 結果返却: AIが次のアクションを判 断 8
1. 初期化フェーズ 1/3 Client → Server(initialize request) { "jsonrpc": "2.0",
"id": 0, // リクエストとレスポンスを対応付けるID "method": "initialize", "params": { "protocolVersion": "2024-11-05", "capabilities": { // クライアントがサポートする機能 ... }, "clientInfo": { "name": "mcp", "version": "0.1.0" } } } 9
1. 初期化フェーズ 2/3 Server → Client(initialize response) { "jsonrpc": "2.0",
"id": 0, // リクエストと同じIDを返す "result": { "protocolVersion": "2024-11-05", "capabilities": { // サーバーがサポートする機能 "tools": {} // ツール提供機能 }, "serverInfo": { "name": "secure-filesystem-server", "version": "0.2.0" } } } 10
1. 初期化フェーズ 3/3 Client → Server(準備完了通知) { "jsonrpc": "2.0", "method":
"notifications/initialized" } ※ 通知(notification)には id が不要。一方向の通信のた め 11
2. ツール一覧取得 1/2 Client → Server(tools/list request) { "jsonrpc": "2.0",
"id": 1, "method": "tools/list" } 12
2. ツール一覧取得 2/2 Server → Client(tools/list response) { "jsonrpc": "2.0",
"id": 1, "result": { "tools": [ { "name": "read_file", "description": "ファイルの内容を読み取る", "inputSchema": { "type": "object", "properties": { "path": { "type": "string" } }, "required": ["path"] } } // ... その他のツール ], "_meta": { // ページネーション情報やカーソルなどのメタデータ(オプショナル) } } 13
3. ツール実行 1/2 Client → Server(tools/call request) { "jsonrpc": "2.0",
"id": 3, "method": "tools/call", "params": { "name": "list_directory", "arguments": { "path": "/Users/username/Desktop" } } } 14
3. ツール実行 2/2 Server → Client(tools/call response) { "jsonrpc": "2.0",
"id": 3, "result": { "content": [ { "type": "text", "text": "[FILE] document.pdf\n[DIR] images\n[FILE] readme.txt" } ] } } 15
Apps SDK について 16
Apps SDKとは ChatGPT Apps SDK の概要 提供元: OpenAI 公開日: 2025年10月6日(OpenAI
DevDay 2025で発 表) 利用可能プラン: Pro プラン対応 17
Apps SDK 公式サンプル 0:00 18
Tools定義と連携 (tools/list レスポンス例) { "jsonrpc": "2.0", "id": 1, "result": {
"tools": [ { "name": "add_todo", "description": "新しいタスクを追加", "inputSchema": { // ... }, "_meta": { "openai/outputTemplate": "ui://widget/todo-list.html", // UIリソースとツールの紐付け "openai/toolInvocation/invoking": "Displaying the list of todos", // ツール実行中にChatGPTが表示するメッセージ "openai/toolInvocation/invoked": "Displayed the list of todos" // ツール実行完了後にChatGPTが表示するメッセージ } } ] } } 19
window.openai オブジェクト (参考: Apps SDK Reference) ChatGPTとの通信インタフェース Apps SDK では
window.openai グローバルオブジェクトで機能にアクセス window.openai のメソッド例 // サーバーサイドツールの呼び出し await window.openai.callTool("add_todo", { title: "新しいタスク", completed: false, }); // ウィジェット状態の永続化(4kトークン以下推奨) window.openai.setWidgetState({ todos: updatedTodos, }); 20
実装例:Resources一覧の取得 // Client → Server { "jsonrpc": "2.0", "id": 1,
"method": "resources/list" } // Server → Client { "jsonrpc": "2.0", "id": 1, "result": { "resources": [{ "uri": "ui://widget/todo-list.html", "mimeType": "text/html+skybridge", "name": "Todo List Widget" }] } } 21
実装例: tools/call のリクエスト/レスポンス // Client → Server (ツール実行) { "jsonrpc":
"2.0", "id": 2, "method": "tools/call", "params": { "name": "add_todo", "arguments": { "title": "新しいタスク", "completed": false } } } // Server → Client (レスポンス) { "jsonrpc": "2.0", "id": 2, "result": { "content": [{ "type": "text", "text": "{\"success\": true}" }] } } 22
ウィジェット表示の仕組み _meta の outputTemplate が鍵 1. ツール定義時に設定(tools/list レスポンス) "_meta": {
"openai/outputTemplate": "ui://widget/todo-list.html" } 2. ChatGPTの動作フロー ツール実行( tools/call ) ツールの _meta.outputTemplate を確認 指定されたリソースを resources/read で取得 ウィジェットを表示し、 window.openai.toolOutput に結果を設定→ ツール実行すると、自動的にウィジェットが表示される 23
Apps SDK で遊んでみた Coharu VRM 0:00 24
Coharu Apps SDK連携 カスタムウィジェット実装例 0:00 25
Apps SDK触ってみた感想 良い点 coharu がかわいい 柔軟なUIでインタラクティブな操作が可能 課題点 開発環境の制約: ローカルでのwidget開発・テストができず、ChatGPT上でのみ動 作確認可能
window.openai などの独自のルールを学習する必要がある ウィジェットをclaudeなどでも出てくるなら共通規格にしてほしい、 、 、 。 26
ご清聴ありがとうございました 参考文献 MCP関連 MCP 公式仕様書 - Lifecycle Qiita - MCPの仕組みと通信の詳細
Apps SDK関連 OpenAI Apps SDK - Reference OpenAI Apps SDK - Build Custom UX azukiazusa.dev - ChatGPT Apps SDKを使ってみた 27
28