Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[OutSystems] OutSystems と MCP ~ ODC での利用から O11 ...

[OutSystems] OutSystems と MCP ~ ODC での利用から O11 での実装まで ~

2026-03-24(火) に開催された OutSystems Developer Day Nagoya 2026 のセッション発表で使用したスライドです。

イベント情報:
OutSystems Developer Day Nagoya 2026
https://events.outsystems.com/event/34169b9a-13e7-4c41-adaa-c1aa82752b74/Home

Avatar for moriya.takasi

moriya.takasi

April 22, 2026

More Decks by moriya.takasi

Other Decks in Programming

Transcript

  1. OutSystems と MCP ~ ODC での利用から O11 での実装まで ~ [Developer

    Day Nagoya 2026] 2026-03-24 Tue 守谷 崇(OutSystems MVP) @伊藤忠テクノソリューションズ
  2. 本日のお話 •MCP とは •ODC での MCP 利用 •ODC の Action

    calling •O11 で MCP Server を直接実装
  3. MCP (Model Context Protocol) とは •2024/11 に Anthropic が公開したオープン標準 •外部ツールや外部データを共通方式で

    AI アプリ から扱える •さまざまな AI ツールが対応(Claude / ChatGPT / VS Code など) •コンテキスト浪費が弊害となることも
  4. ODC での MCP 利用 (1) • ODC Portal > Integrate

    > Connections で MCP Server を選択 • 接続先、接続方法、認証を 設定 • 登録項目の Import を開いて、 どのツールを使うかを登録
  5. • ODC Studio で Add public elements から前に Import したアクションを追加

    • エージェントアクションの Action calling に追加したア クションを設定 • MCP アクションを使うシス テムプロンプトを設定 ODC での MCP 利用 (2)
  6. システムプロンプト(BuildMessages で設定) "あなたは、AWS 技術選定アーキテクトです。 AWS に関する質問に対して、必ず、AWS の公式情報を参照することができる次の2つの ツールを使って情報を収集し、公式情報だけを根拠に回答するようにして下さい。 まず aws___search_documentation

    で関連する情報を集め、必要に応じて aws___read_documentation で該当ページを詳しく確認してください。 新機能や最近の仕様変更が関係しそうな場合は、What’s New や関連公式情報も優先して 確認してください。 回答は次の順で返してください。 1. 結論 2. 判断根拠 3. 条件別の選び分け 4. 追加で読むべき公式ページ 推測ではなく、AWS の公式情報で確認できた内容だけを使って回答して下さい。AWS の 公式情報では回答できない質問に対しては、回答できない旨を説明して下さい。"
  7. システムプロンプト(BuildMessages で設定) "あなたは担当者リストの専門エージェントです。提供され たツールを組み合わせて、ユーザーの質問に正確に答えて ください。 ## ツールの特性とヒント - 担当者を特定する必要がある場合は、まず `SearchContacts`

    を使用してください。 - `SearchContacts` の結果だけでは不足している情報(詳 細な連絡先など)が必要な場合のみ、 `GetContactDetail` を使用してください。 - リストの人数を数えたり、特定の条件でフィルタリングし たりする場合は、ツールから得られたデータをもとに、あ なた自身で推論・集計して回答してください。 ## 制約事項 - ツールで得られない情報を、自身の知識で捏造しないでく 担当者リストの名前を 検索して見つかった名 前と Id のリストを返す 指定された Id を持つ担 当者の詳細情報を返す
  8. O11 で直接 MCP サーバー • O11 業務アプリの機能を手元の AI ツールから使える •

    Expose REST API 機能を使って、JSON-RPC を受け 答えするエンドポイントを実装すれば OK • 別途、MCP Server ホストを用意する必要がなく、 O11 だけで完結する • OAuth 認証まで対応するのは難しいので、現時点で は適用範囲は限定的かも
  9. O11 MCP 要対応リクエスト(POST) { "jsonrpc": "2.0", "id": 12, "method": "<メソッド>",

    "params": { "name": "<アクション名>", "arguments": { "<入力パラメーター名>": "<入力パラメーター値>" } } }
  10. O11 MCP 要対応リクエスト(POST) { "jsonrpc": "2.0", "id": 12, "method": "<メソッド>",

    "params": { "name": "<アクション名>", "arguments": { "<入力パラメーター名>": "<入力パラメーター値>" } } } initialize、tools/list、tools/call の3つの POST への対応は必須 この id をレスポンスで返す メソッドが tools/call のときだけ ここを確認
  11. O11 MCP initialize へのレスポンス例 { "jsonrpc": "2.0", "id": 0, "result":

    { "protocolVersion": "2024-11-05", "capabilities": { "tools": {} }, "serverInfo": { "name": "OutSystems-ContactList-Tool", "version": "0.0.1" } } } リクエストの id をレスポンスで返す MCP のプロトコルバージョン このように空で返しても機能する 内容を示すような名前を設定しておく
  12. O11 MCP tools/list へのレスポンス例 { "jsonrpc": "2.0", "id": 1, "result":

    { "tools": [ { "name": "SearchContacts", "description": "提供された文字列を使って、担当者<略>", "inputSchema": { "type": "object", "properties": { "NameContains": { "type": "string", "description": "担当者リストの、<略>"} }, "required": [ "NameContains" ] } }, <実装アクションの数だけ繰り返し> ] } } リクエストの id をレスポンスで返す アクション名・Description 入力パラメーター名 入力パラメーターのデータ型・Description 必須入力パラメーター名のリスト
  13. O11 MCP tools/call リクエスト例 { "jsonrpc": "2.0", "id": 2, "method":

    "tools/call", "params": { "name": "SearchContacts", "arguments": { "NameContains": "米田" } } } ツール使えコマンド アクション名 入力パラメーター名 入力パラメーター値
  14. O11 MCP tools/call リクエスト例 { "jsonrpc": "2.0", "id": 2, "method":

    "tools/call", "params": { "name": "SearchContacts", "arguments": { "NameContains": "米田" } } } ツール使えコマンド アクション名 入力パラメーター名 入力パラメーター値
  15. O11 MCP tools/call へのレスポンス例 { "jsonrpc": "2.0", "id": 2, "result":

    { "content": [ { "type": "text", "text": "検索結果: 1件の担当者が見つかりました。 ¥r¥n詳 細データ(JSON): [{¥"Id¥":495,¥"Name¥":¥"米田 謙信¥"}]" } ] } } リクエストの id をレスポンスで返す JSON Serialize した結果を LLM 向け説明に 埋め込んだテキストを返すので OK (構造体で返す実装も可能)
  16. O11 MCP エラーレスポンス例 { "jsonrpc": "2.0", "id": 4, "error": {

    "code": -32601, "message": "Method not found", "data": { "details": "そのメソッドは実装されていません。" } } } リクエストの id をレスポンスで返す -32601: メソッドが未実装 -32602: 存在しないアクション
  17. まとめ • MCP は AI に各種ツールやデータを使わせる標準プロ トコル • 公開エンドポイントがある MCP

    を ODC で使える • サーバーアクションを MCP 同様に ODC で使える • O11 で直接 MCP Server を実装することもできる 楽しい開発を!