Slide 1

Slide 1 text

Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた ➔ 2025-06-28@[email protected] 1/22

Slide 2

Slide 2 text

自己紹介 ➔ 株式会社ウフル 樋口友太 ➔ かつては、Node を作ったり、公式の Git 対応前に Git で扱いやすくする仕組みを作ったり、 フローのテスト手法など考えたり。 ➔ ここしばらくは、Node-RED から離れていて、LLM と連携させたくなり、再挑戦。 2/22

Slide 3

Slide 3 text

なんで Node-RED と MCP サーバーを連携させたかったのか ➔ SNS で “n8n で AI エージェント” 的な話が飛び交う程の n8n (https://n8n.io/) の盛り上がり。 ➔ オレには Node-RED がある!と意気込むも、めぼしい情報は得られず。 ➔ 時を同じくして、MCP サーバー界隈の盛り上がりと、わたし自身の MCP サーバー体験があり、 一旦、AI エージェント自身は置いておいて、LLM と Node-RED をつなげよう!的な。 3/22

Slide 4

Slide 4 text

気軽に連携したかった ➔ RESTish でつなぐ(HTTP API でゆるく) Node-RED Claude Desktop (例) MCP Server MCP (STDIO) RESTish 4/22

Slide 5

Slide 5 text

作成した MCP サーバーのトランスポート対応 ➔ STDIO(標準入出力) ➔ Streamable HTTP(/sse + /messages) ➔ Streamable HTTP(/mcp) 5/22

Slide 6

Slide 6 text

作成した MCP サーバーの役割 ➔ Node-RED(HTTP API)を LLM からアクセス可能にするためのブリッジ役 ➔ Node-RED からツール定義を取得し、MCP ツールとして Node-RED 上の機能(HTTP エンドポイント) を登録 6/22

Slide 7

Slide 7 text

MCP サーバーのソースコード(抜粋) ➔ `/tools` でツール情報を読み込む ➔ ツール情報に従って HTTP リクエストを作成 ➔ ツールに登録 7/22

Slide 8

Slide 8 text

MCP サーバーのインストール(例) ➔ AUTH_TYPE、API_KEY は Node-RED のフローの エンドポイントで認証する場合のみ 8/22

Slide 9

Slide 9 text

Node-RED のフロー(例) 9/22

Slide 10

Slide 10 text

Node-RED の必須エンドポイント ➔ [get] /tools ➔ ツールの定義をレスポンス 10/22

Slide 11

Slide 11 text

ツール定義(例) ➔ 各ツールのエンドポイントを定義 11/22

Slide 12

Slide 12 text

ツール処理(例) ➔ [get_time] JSONata で日時取得 ➔ [get_birthday] JS で誕生日生成 ➔ [create_qrcode] QR コード生成ノードで DataURI 生成 ➔ [get_weather] 気象庁の REST API で天気予報取得 ➔ [post_slack] メッセージを Slack API で投稿 レスポンスデータは、どこにも定義していないが、 それっぽい JSON を返せば LLM が解釈する 12/22

Slide 13

Slide 13 text

デモ動画 ➔ https://www.youtube.com/watch?v=Pyq_GhnydMk 13/22

Slide 14

Slide 14 text

14/22

Slide 15

Slide 15 text

公開中 ➔ 良かったら見てください ➔ @high-u/mcp-server-bridge-restish 15/22

Slide 16

Slide 16 text

作成した MCP サーバーの話はここまで 16/22

Slide 17

Slide 17 text

OpenAPI 仕様書から MCP サーバーの生成 ➔ OpenAPI 仕様書から専用の MCP サーバーを生成するツールの紹介 ➔ OpenAPI 仕様書ベースなので現在のエコシステムとの相性は良い ➔ そもそも Node-RED と OpenAPI 仕様書の相性が良いかは? ➔ HTTP でブリッジする MCP サーバーという似た位置付けということで 17/22

Slide 18

Slide 18 text

Postman AI Tool Builder ➔ OpenAPI 仕様から MCP サーバーを生成 ➔ ただし、公開が必須?? 18/22

Slide 19

Slide 19 text

harsha-iiiv/openapi-mcp-generator ➔ OpenAPI 仕様書から MCP サーバーを生成 (TypeScript) ➔ MCP server (stdio)、 MCP web server with SSE、 MCP StreamableHTTP server に対応 19/22

Slide 20

Slide 20 text

Node-RED と MCP の理想の関係は?(主観) 20/22

Slide 21

Slide 21 text

MCP Server Node ➔ `/mcp` エンドポイントを生やす ➔ 認証認可を良い感じに内包?連携? MCP Server 21/22

Slide 22

Slide 22 text

ありがとうございました 22/22