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
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
Search
High U
June 27, 2025
Programming
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
High U
June 27, 2025
Other Decks in Programming
See All in Programming
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
130
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
320
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
2
1.6k
不幸な GC
chencmd
0
890
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
260
Foundry Localでエージェント開発
seosoft
0
150
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
160
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
670
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
190
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
410
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
220
Featured
See All Featured
New Earth Scene 8
popppiees
3
2.5k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
First, design no harm
axbom
PRO
2
1.3k
Code Review Best Practice
trishagee
74
20k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
330
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
480
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Transcript
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた ➔ 2025-06-28@
[email protected]
1/22
自己紹介 ➔ 株式会社ウフル 樋口友太 ➔ かつては、Node を作ったり、公式の Git 対応前に Git
で扱いやすくする仕組みを作ったり、 フローのテスト手法など考えたり。 ➔ ここしばらくは、Node-RED から離れていて、LLM と連携させたくなり、再挑戦。 2/22
なんで Node-RED と MCP サーバーを連携させたかったのか ➔ SNS で “n8n で
AI エージェント” 的な話が飛び交う程の n8n (https://n8n.io/) の盛り上がり。 ➔ オレには Node-RED がある!と意気込むも、めぼしい情報は得られず。 ➔ 時を同じくして、MCP サーバー界隈の盛り上がりと、わたし自身の MCP サーバー体験があり、 一旦、AI エージェント自身は置いておいて、LLM と Node-RED をつなげよう!的な。 3/22
気軽に連携したかった ➔ RESTish でつなぐ(HTTP API でゆるく) Node-RED Claude Desktop (例)
MCP Server MCP (STDIO) RESTish 4/22
作成した MCP サーバーのトランスポート対応 ➔ STDIO(標準入出力) ➔ Streamable HTTP(/sse + /messages)
➔ Streamable HTTP(/mcp) 5/22
作成した MCP サーバーの役割 ➔ Node-RED(HTTP API)を LLM からアクセス可能にするためのブリッジ役 ➔ Node-RED
からツール定義を取得し、MCP ツールとして Node-RED 上の機能(HTTP エンドポイント) を登録 6/22
MCP サーバーのソースコード(抜粋) ➔ `/tools` でツール情報を読み込む ➔ ツール情報に従って HTTP リクエストを作成 ➔
ツールに登録 7/22
MCP サーバーのインストール(例) ➔ AUTH_TYPE、API_KEY は Node-RED のフローの エンドポイントで認証する場合のみ 8/22
Node-RED のフロー(例) 9/22
Node-RED の必須エンドポイント ➔ [get] /tools ➔ ツールの定義をレスポンス 10/22
ツール定義(例) ➔ 各ツールのエンドポイントを定義 11/22
ツール処理(例) ➔ [get_time] JSONata で日時取得 ➔ [get_birthday] JS で誕生日生成 ➔
[create_qrcode] QR コード生成ノードで DataURI 生成 ➔ [get_weather] 気象庁の REST API で天気予報取得 ➔ [post_slack] メッセージを Slack API で投稿 レスポンスデータは、どこにも定義していないが、 それっぽい JSON を返せば LLM が解釈する 12/22
デモ動画 ➔ https://www.youtube.com/watch?v=Pyq_GhnydMk 13/22
14/22
公開中 ➔ 良かったら見てください ➔ @high-u/mcp-server-bridge-restish 15/22
作成した MCP サーバーの話はここまで 16/22
OpenAPI 仕様書から MCP サーバーの生成 ➔ OpenAPI 仕様書から専用の MCP サーバーを生成するツールの紹介 ➔
OpenAPI 仕様書ベースなので現在のエコシステムとの相性は良い ➔ そもそも Node-RED と OpenAPI 仕様書の相性が良いかは? ➔ HTTP でブリッジする MCP サーバーという似た位置付けということで 17/22
Postman AI Tool Builder ➔ OpenAPI 仕様から MCP サーバーを生成 ➔
ただし、公開が必須?? 18/22
harsha-iiiv/openapi-mcp-generator ➔ OpenAPI 仕様書から MCP サーバーを生成 (TypeScript) ➔ MCP server
(stdio)、 MCP web server with SSE、 MCP StreamableHTTP server に対応 19/22
Node-RED と MCP の理想の関係は?(主観) 20/22
MCP Server Node ➔ `/mcp` エンドポイントを生やす ➔ 認証認可を良い感じに内包?連携? MCP Server
21/22
ありがとうございました 22/22